diff --git a/282_Jelastic_Criacao_Banco_Dados/Drogaria/.tern-project b/282_Jelastic_Criacao_Banco_Dados/Drogaria/.tern-project new file mode 100644 index 0000000..b6f48dd --- /dev/null +++ b/282_Jelastic_Criacao_Banco_Dados/Drogaria/.tern-project @@ -0,0 +1 @@ +{"ide":{},"libs":["ecma5","browser"],"plugins":{"guess-types":{},"angular":{}}} \ No newline at end of file diff --git a/282_Jelastic_Criacao_Banco_Dados/Drogaria/pom.xml b/282_Jelastic_Criacao_Banco_Dados/Drogaria/pom.xml new file mode 100644 index 0000000..39b1e60 --- /dev/null +++ b/282_Jelastic_Criacao_Banco_Dados/Drogaria/pom.xml @@ -0,0 +1,132 @@ + + 4.0.0 + br.pro.delfino.drogaria + Drogaria + 1.0 + war + + + + UTF-8 + + + + + + Drogaria + + + + + + org.apache.maven.plugins + maven-compiler-plugin + 3.3 + + 1.8 + 1.8 + + + + + + + + + + prime-repo + PrimeFaces Maven Repository + http://repository.primefaces.org + default + + + + + + + + org.hibernate + hibernate-core + 4.3.11.Final + + + + + mysql + mysql-connector-java + 5.1.36 + + + + + junit + junit + 4.12 + + + + + org.glassfish + javax.faces + 2.2.12 + + + + + org.primefaces + primefaces + 5.2 + + + + + org.primefaces.themes + all-themes + 1.0.10 + + + + + org.omnifaces + omnifaces + 1.11 + + + + + javax.servlet + javax.servlet-api + 3.1.0 + + + + + org.glassfish.jersey.containers + jersey-container-servlet + 2.22.1 + + + + + com.google.code.gson + gson + 2.4 + + + + + net.sf.jasperreports + jasperreports + 6.1.1 + + + + + org.apache.shiro + shiro-core + 1.2.4 + + + + \ No newline at end of file diff --git a/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/AutenticacaoBean.java b/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/AutenticacaoBean.java new file mode 100644 index 0000000..5ac52eb --- /dev/null +++ b/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/AutenticacaoBean.java @@ -0,0 +1,42 @@ +package br.pro.delfino.drogaria.bean; + +import java.io.IOException; + +import javax.annotation.PostConstruct; +import javax.faces.bean.ManagedBean; +import javax.faces.bean.SessionScoped; + +import org.omnifaces.util.Faces; +import org.omnifaces.util.Messages; + +import br.pro.delfino.drogaria.domain.Pessoa; +import br.pro.delfino.drogaria.domain.Usuario; + +@ManagedBean +@SessionScoped +public class AutenticacaoBean { + private Usuario usuario; + + public Usuario getUsuario() { + return usuario; + } + + public void setUsuario(Usuario usuario) { + this.usuario = usuario; + } + + @PostConstruct + public void iniciar() { + usuario = new Usuario(); + usuario.setPessoa(new Pessoa()); + } + + public void autenticar() { + try { + Faces.redirect("./pages/principal.xhtml"); + } catch (IOException erro) { + erro.printStackTrace(); + Messages.addGlobalError(erro.getMessage()); + } + } +} diff --git a/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/CidadeBean.java b/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/CidadeBean.java new file mode 100644 index 0000000..4b03075 --- /dev/null +++ b/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/CidadeBean.java @@ -0,0 +1,119 @@ +package br.pro.delfino.drogaria.bean; + +import java.io.Serializable; +import java.util.List; + +import javax.annotation.PostConstruct; +import javax.faces.bean.ManagedBean; +import javax.faces.bean.ViewScoped; +import javax.faces.event.ActionEvent; + +import org.omnifaces.util.Messages; + +import br.pro.delfino.drogaria.dao.CidadeDAO; +import br.pro.delfino.drogaria.dao.EstadoDAO; +import br.pro.delfino.drogaria.domain.Cidade; +import br.pro.delfino.drogaria.domain.Estado; + +@SuppressWarnings("serial") +@ManagedBean +@ViewScoped +public class CidadeBean implements Serializable { + private Cidade cidade; + private List cidades; + private List estados; + + public Cidade getCidade() { + return cidade; + } + + public void setCidade(Cidade cidade) { + this.cidade = cidade; + } + + public List getCidades() { + return cidades; + } + + public void setCidades(List cidades) { + this.cidades = cidades; + } + + public List getEstados() { + return estados; + } + + public void setEstados(List estados) { + this.estados = estados; + } + + @PostConstruct + public void listar() { + try { + CidadeDAO cidadeDAO = new CidadeDAO(); + cidades = cidadeDAO.listar("nome"); + } catch (RuntimeException erro) { + Messages.addFlashGlobalError("Ocorreu um erro ao tentar listar as cidades"); + erro.printStackTrace(); + } + } + + public void novo() { + try { + cidade = new Cidade(); + + EstadoDAO estadoDAO = new EstadoDAO(); + estados = estadoDAO.listar("nome"); + } catch (RuntimeException erro) { + Messages.addFlashGlobalError("Ocorreu um erro ao gerar uma nova cidade"); + erro.printStackTrace(); + } + } + + public void salvar() { + try { + CidadeDAO cidadeDAO = new CidadeDAO(); + cidadeDAO.merge(cidade); + + cidade = new Cidade(); + + EstadoDAO estadoDAO = new EstadoDAO(); + estados = estadoDAO.listar(); + + cidades = cidadeDAO.listar(); + + Messages.addGlobalInfo("Cidade salva com sucesso"); + } catch (RuntimeException erro) { + Messages.addFlashGlobalError("Ocorreu um erro ao tentar salvar uma nova cidade"); + erro.printStackTrace(); + } + } + + public void excluir(ActionEvent evento) { + try { + cidade = (Cidade) evento.getComponent().getAttributes().get("cidadeSelecionada"); + + CidadeDAO cidadeDAO = new CidadeDAO(); + cidadeDAO.excluir(cidade); + + cidades = cidadeDAO.listar(); + + Messages.addGlobalInfo("Cidade removida com sucesso"); + } catch (RuntimeException erro) { + Messages.addFlashGlobalError("Ocorreu um erro ao tentar remover a cidade"); + erro.printStackTrace(); + } + } + + public void editar(ActionEvent evento){ + try { + cidade = (Cidade) evento.getComponent().getAttributes().get("cidadeSelecionada"); + + EstadoDAO estadoDAO = new EstadoDAO(); + estados = estadoDAO.listar(); + } catch (RuntimeException erro) { + Messages.addFlashGlobalError("Ocorreu um erro ao tentar selecionar uma cidade"); + erro.printStackTrace(); + } + } +} diff --git a/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/ClienteBean.java b/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/ClienteBean.java new file mode 100644 index 0000000..c96b115 --- /dev/null +++ b/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/ClienteBean.java @@ -0,0 +1,91 @@ +package br.pro.delfino.drogaria.bean; + +import java.io.Serializable; +import java.util.List; + +import javax.annotation.PostConstruct; +import javax.faces.bean.ManagedBean; +import javax.faces.bean.ViewScoped; + +import org.omnifaces.util.Messages; + +import br.pro.delfino.drogaria.dao.ClienteDAO; +import br.pro.delfino.drogaria.dao.PessoaDAO; +import br.pro.delfino.drogaria.domain.Cliente; +import br.pro.delfino.drogaria.domain.Pessoa; + +@SuppressWarnings("serial") +@ManagedBean +@ViewScoped +public class ClienteBean implements Serializable { + private Cliente cliente; + + private List clientes; + private List pessoas; + + public Cliente getCliente() { + return cliente; + } + + public void setCliente(Cliente cliente) { + this.cliente = cliente; + } + + public List getClientes() { + return clientes; + } + + public void setClientes(List clientes) { + this.clientes = clientes; + } + + public List getPessoas() { + return pessoas; + } + + public void setPessoas(List pessoas) { + this.pessoas = pessoas; + } + + @PostConstruct + public void listar() { + try { + ClienteDAO clienteDAO = new ClienteDAO(); + clientes = clienteDAO.listar("dataCadastro"); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar listar os clientes"); + erro.printStackTrace(); + } + } + + public void novo() { + try { + cliente = new Cliente(); + + PessoaDAO pessoaDAO = new PessoaDAO(); + pessoas = pessoaDAO.listar("nome"); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar criar um novo cliente"); + erro.printStackTrace(); + } + } + + public void salvar() { + try { + ClienteDAO clienteDAO = new ClienteDAO(); + clienteDAO.merge(cliente); + + cliente = new Cliente(); + + clientes = clienteDAO.listar("dataCadastro"); + + PessoaDAO pessoaDAO = new PessoaDAO(); + pessoas = pessoaDAO.listar("nome"); + + Messages.addGlobalInfo("Cliente salvo com sucesso"); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar salvar o cliente"); + erro.printStackTrace(); + } + } +} diff --git a/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/EstadoBean.java b/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/EstadoBean.java new file mode 100644 index 0000000..b4921fe --- /dev/null +++ b/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/EstadoBean.java @@ -0,0 +1,88 @@ +package br.pro.delfino.drogaria.bean; + +import java.io.Serializable; +import java.util.List; + +import javax.annotation.PostConstruct; +import javax.faces.bean.ManagedBean; +import javax.faces.bean.ViewScoped; +import javax.faces.event.ActionEvent; + +import org.omnifaces.util.Messages; + +import br.pro.delfino.drogaria.dao.EstadoDAO; +import br.pro.delfino.drogaria.domain.Estado; + +@SuppressWarnings("serial") +@ManagedBean +@ViewScoped +public class EstadoBean implements Serializable { + private Estado estado; + private List estados; + + public Estado getEstado() { + return estado; + } + + public void setEstado(Estado estado) { + this.estado = estado; + } + + public List getEstados() { + return estados; + } + + public void setEstados(List estados) { + this.estados = estados; + } + + @PostConstruct + public void listar() { + try { + EstadoDAO estadoDAO = new EstadoDAO(); + estados = estadoDAO.listar(); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar listar os estados"); + erro.printStackTrace(); + } + } + + public void novo() { + estado = new Estado(); + } + + public void salvar() { + try { + EstadoDAO estadoDAO = new EstadoDAO(); + estadoDAO.merge(estado); + + estado = new Estado(); + estados = estadoDAO.listar(); + + Messages.addGlobalInfo("Estado salvo com sucesso"); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar salvar o estado"); + erro.printStackTrace(); + } + } + + public void excluir(ActionEvent evento) { + try { + estado = (Estado) evento.getComponent().getAttributes().get("estadoSelecionado"); + + EstadoDAO estadoDAO = new EstadoDAO(); + estadoDAO.excluir(estado); + + estados = estadoDAO.listar(); + + Messages.addGlobalInfo("Estado removido com sucesso"); + } catch (RuntimeException erro) { + Messages.addFlashGlobalError("Ocorreu um erro ao tentar remover o estado"); + erro.printStackTrace(); + } + } + + public void editar(ActionEvent evento) { + estado = (Estado) evento.getComponent().getAttributes().get("estadoSelecionado"); + } +} diff --git a/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/FabricanteBean.java b/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/FabricanteBean.java new file mode 100644 index 0000000..7fddf7d --- /dev/null +++ b/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/FabricanteBean.java @@ -0,0 +1,116 @@ +package br.pro.delfino.drogaria.bean; + +import java.io.Serializable; +import java.util.Arrays; +import java.util.List; + +import javax.annotation.PostConstruct; +import javax.faces.bean.ManagedBean; +import javax.faces.bean.ViewScoped; +import javax.faces.event.ActionEvent; +import javax.ws.rs.client.Client; +import javax.ws.rs.client.ClientBuilder; +import javax.ws.rs.client.Entity; +import javax.ws.rs.client.WebTarget; + +import org.omnifaces.util.Messages; + +import com.google.gson.Gson; + +import br.pro.delfino.drogaria.domain.Fabricante; + +@SuppressWarnings("serial") +@ManagedBean +@ViewScoped +public class FabricanteBean implements Serializable { + private Fabricante fabricante; + private List fabricantes; + + public Fabricante getFabricante() { + return fabricante; + } + + public void setFabricante(Fabricante fabricante) { + this.fabricante = fabricante; + } + + public List getFabricantes() { + return fabricantes; + } + + public void setFabricantes(List fabricantes) { + this.fabricantes = fabricantes; + } + + @PostConstruct + public void listar() { + try { + Client cliente = ClientBuilder.newClient(); + WebTarget caminho = cliente.target("http://127.0.0.1:8080/Drogaria/rest/fabricante"); + String json = caminho.request().get(String.class); + + Gson gson = new Gson(); + Fabricante[] vetor = gson.fromJson(json, Fabricante[].class); + + fabricantes = Arrays.asList(vetor); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar listar os fabricantes"); + erro.printStackTrace(); + } + } + + public void novo() { + fabricante = new Fabricante(); + } + + public void salvar() { + try { + Client cliente = ClientBuilder.newClient(); + WebTarget caminho = cliente.target("http://127.0.0.1:8080/Drogaria/rest/fabricante"); + + Gson gson = new Gson(); + + String json = gson.toJson(fabricante); + caminho.request().post(Entity.json(json)); + + fabricante = new Fabricante(); + + json = caminho.request().get(String.class); + Fabricante[] vetor = gson.fromJson(json, Fabricante[].class); + fabricantes = Arrays.asList(vetor); + + Messages.addGlobalInfo("Fabricante salvo com sucesso"); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar salvar o fabricante"); + erro.printStackTrace(); + } + } + + public void excluir(ActionEvent evento) { + try { + fabricante = (Fabricante) evento.getComponent().getAttributes().get("fabricanteSelecionado"); + + Client cliente = ClientBuilder.newClient(); + + WebTarget caminho = cliente.target("http://127.0.0.1:8080/Drogaria/rest/fabricante"); + WebTarget caminhoExcluir = caminho.path("{codigo}").resolveTemplate("codigo", fabricante.getCodigo()); + + caminhoExcluir.request().delete(); + String json = caminho.request().get(String.class); + + Gson gson = new Gson(); + Fabricante[] vetor = gson.fromJson(json, Fabricante[].class); + + fabricantes = Arrays.asList(vetor); + + Messages.addGlobalInfo("Fabricante removido com sucesso"); + } catch (RuntimeException erro) { + Messages.addFlashGlobalError("Ocorreu um erro ao tentar remover o fabricante"); + erro.printStackTrace(); + } + } + + public void editar(ActionEvent evento) { + fabricante = (Fabricante) evento.getComponent().getAttributes().get("fabricanteSelecionado"); + } +} diff --git a/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/HistoricoBean.java b/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/HistoricoBean.java new file mode 100644 index 0000000..a042b04 --- /dev/null +++ b/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/HistoricoBean.java @@ -0,0 +1,89 @@ +package br.pro.delfino.drogaria.bean; + +import java.io.Serializable; +import java.util.Date; + +import javax.annotation.PostConstruct; +import javax.faces.bean.ManagedBean; +import javax.faces.bean.ViewScoped; + +import org.omnifaces.util.Messages; + +import br.pro.delfino.drogaria.dao.HistoricoDAO; +import br.pro.delfino.drogaria.dao.ProdutoDAO; +import br.pro.delfino.drogaria.domain.Historico; +import br.pro.delfino.drogaria.domain.Produto; + +@SuppressWarnings("serial") +@ManagedBean +@ViewScoped +public class HistoricoBean implements Serializable { + private Produto produto; + private Boolean exibePainelDados; + + private Historico historico; + + public Produto getProduto() { + return produto; + } + + public void setProduto(Produto produto) { + this.produto = produto; + } + + public Boolean getExibePainelDados() { + return exibePainelDados; + } + + public void setExibePainelDados(Boolean exibePainelDados) { + this.exibePainelDados = exibePainelDados; + } + + public Historico getHistorico() { + return historico; + } + + public void setHistorico(Historico historico) { + this.historico = historico; + } + + @PostConstruct + public void novo() { + historico = new Historico(); + produto = new Produto(); + exibePainelDados = false; + } + + public void buscar() { + try { + ProdutoDAO produtoDAO = new ProdutoDAO(); + Produto resultado = produtoDAO.buscar(produto.getCodigo()); + + if (resultado == null) { + exibePainelDados = false; + Messages.addGlobalWarn("Não existe produto cadastrado para o código informado"); + } else { + exibePainelDados = true; + produto = resultado; + } + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar buscar o produto"); + erro.printStackTrace(); + } + } + + public void salvar() { + try { + historico.setHorario(new Date()); + historico.setProduto(produto); + + HistoricoDAO historicoDAO = new HistoricoDAO(); + historicoDAO.salvar(historico); + + Messages.addGlobalInfo("Histórico salvo com sucesso"); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar salvar o histórico"); + erro.printStackTrace(); + } + } +} diff --git a/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/ImagemBean.java b/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/ImagemBean.java new file mode 100644 index 0000000..eb963a8 --- /dev/null +++ b/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/ImagemBean.java @@ -0,0 +1,48 @@ +package br.pro.delfino.drogaria.bean; + +import java.io.IOException; +import java.io.InputStream; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; + +import javax.faces.bean.ManagedBean; +import javax.faces.bean.ManagedProperty; +import javax.faces.bean.RequestScoped; + +import org.primefaces.model.DefaultStreamedContent; +import org.primefaces.model.StreamedContent; + +@ManagedBean +@RequestScoped +public class ImagemBean { + @ManagedProperty("#{param.caminho}") + private String caminho; + + private StreamedContent foto; + + public String getCaminho() { + return caminho; + } + + public void setCaminho(String caminho) { + this.caminho = caminho; + } + + public StreamedContent getFoto() throws IOException { + if(caminho == null || caminho.isEmpty()){ + Path path = Paths.get("C:/Programação Web com Java/Uploads/branco.png"); + InputStream stream = Files.newInputStream(path); + foto = new DefaultStreamedContent(stream); + }else{ + Path path = Paths.get(caminho); + InputStream stream = Files.newInputStream(path); + foto = new DefaultStreamedContent(stream); + } + return foto; + } + + public void setFoto(StreamedContent foto) { + this.foto = foto; + } +} diff --git a/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/PessoaBean.java b/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/PessoaBean.java new file mode 100644 index 0000000..931edf7 --- /dev/null +++ b/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/PessoaBean.java @@ -0,0 +1,156 @@ +package br.pro.delfino.drogaria.bean; + +import java.io.Serializable; +import java.util.ArrayList; +import java.util.List; + +import javax.annotation.PostConstruct; +import javax.faces.bean.ManagedBean; +import javax.faces.bean.ViewScoped; +import javax.faces.event.ActionEvent; + +import org.omnifaces.util.Messages; + +import br.pro.delfino.drogaria.dao.CidadeDAO; +import br.pro.delfino.drogaria.dao.EstadoDAO; +import br.pro.delfino.drogaria.dao.PessoaDAO; +import br.pro.delfino.drogaria.domain.Cidade; +import br.pro.delfino.drogaria.domain.Estado; +import br.pro.delfino.drogaria.domain.Pessoa; + +@SuppressWarnings("serial") +@ManagedBean +@ViewScoped +public class PessoaBean implements Serializable { + private Pessoa pessoa; + private List pessoas; + + private Estado estado; + private List estados; + + private List cidades; + + public Pessoa getPessoa() { + return pessoa; + } + + public void setPessoa(Pessoa pessoa) { + this.pessoa = pessoa; + } + + public List getPessoas() { + return pessoas; + } + + public void setPessoas(List pessoas) { + this.pessoas = pessoas; + } + + public Estado getEstado() { + return estado; + } + + public void setEstado(Estado estado) { + this.estado = estado; + } + + public List getEstados() { + return estados; + } + + public void setEstados(List estados) { + this.estados = estados; + } + + public List getCidades() { + return cidades; + } + + public void setCidades(List cidades) { + this.cidades = cidades; + } + + @PostConstruct + public void listar() { + try { + PessoaDAO pessoaDAO = new PessoaDAO(); + pessoas = pessoaDAO.listar("nome"); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar listar as pessoas"); + erro.printStackTrace(); + } + } + + public void novo() { + try { + pessoa = new Pessoa(); + + estado = new Estado(); + + EstadoDAO estadoDAO = new EstadoDAO(); + estados = estadoDAO.listar("nome"); + + cidades = new ArrayList<>(); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar gerar uma nova pessoa"); + erro.printStackTrace(); + } + } + + public void editar(ActionEvent evento) { + try{ + pessoa = (Pessoa) evento.getComponent().getAttributes().get("pessoaSelecionada"); + + estado = pessoa.getCidade().getEstado(); + + EstadoDAO estadoDAO = new EstadoDAO(); + estados = estadoDAO.listar("nome"); + + CidadeDAO cidadeDAO = new CidadeDAO(); + cidades = cidadeDAO.buscarPorEstado(estado.getCodigo()); + }catch(RuntimeException erro){ + Messages.addGlobalError("Ocorreu um erro ao tentar selecionar uma pessoa"); + } + } + + public void salvar() { + try { + PessoaDAO pessoaDAO = new PessoaDAO(); + pessoaDAO.merge(pessoa); + + pessoas = pessoaDAO.listar("nome"); + + pessoa = new Pessoa(); + + estado = new Estado(); + + EstadoDAO estadoDAO = new EstadoDAO(); + estados = estadoDAO.listar("nome"); + + cidades = new ArrayList<>(); + + Messages.addGlobalInfo("Pessoa salva com sucesso"); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar salvar a pessoa"); + erro.printStackTrace(); + } + } + + public void excluir(ActionEvent evento) { + + } + + public void popular() { + try { + if (estado != null) { + CidadeDAO cidadeDAO = new CidadeDAO(); + cidades = cidadeDAO.buscarPorEstado(estado.getCodigo()); + } else { + cidades = new ArrayList<>(); + } + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar filtrar as cidades"); + erro.printStackTrace(); + } + } +} diff --git a/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/ProdutoBean.java b/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/ProdutoBean.java new file mode 100644 index 0000000..e48e0d1 --- /dev/null +++ b/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/ProdutoBean.java @@ -0,0 +1,196 @@ +package br.pro.delfino.drogaria.bean; + +import java.io.IOException; +import java.io.Serializable; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; +import java.nio.file.StandardCopyOption; +import java.sql.Connection; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import javax.annotation.PostConstruct; +import javax.faces.bean.ManagedBean; +import javax.faces.bean.ViewScoped; +import javax.faces.event.ActionEvent; + +import org.omnifaces.util.Faces; +import org.omnifaces.util.Messages; +import org.primefaces.component.datatable.DataTable; +import org.primefaces.event.FileUploadEvent; +import org.primefaces.model.UploadedFile; + +import br.pro.delfino.drogaria.dao.FabricanteDAO; +import br.pro.delfino.drogaria.dao.ProdutoDAO; +import br.pro.delfino.drogaria.domain.Fabricante; +import br.pro.delfino.drogaria.domain.Produto; +import br.pro.delfino.drogaria.util.HibernateUtil; +import net.sf.jasperreports.engine.JRException; +import net.sf.jasperreports.engine.JasperFillManager; +import net.sf.jasperreports.engine.JasperPrint; +import net.sf.jasperreports.engine.JasperPrintManager; + +@SuppressWarnings("serial") +@ManagedBean +@ViewScoped +public class ProdutoBean implements Serializable { + private Produto produto; + private List produtos; + private List fabricantes; + + public Produto getProduto() { + return produto; + } + + public void setProduto(Produto produto) { + this.produto = produto; + } + + public List getProdutos() { + return produtos; + } + + public void setProdutos(List produtos) { + this.produtos = produtos; + } + + public List getFabricantes() { + return fabricantes; + } + + public void setFabricantes(List fabricantes) { + this.fabricantes = fabricantes; + } + + @PostConstruct + public void listar() { + try { + ProdutoDAO produtoDAO = new ProdutoDAO(); + produtos = produtoDAO.listar("descricao"); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar listar os produtos"); + erro.printStackTrace(); + } + } + + public void novo() { + try { + produto = new Produto(); + + FabricanteDAO fabricanteDAO = new FabricanteDAO(); + fabricantes = fabricanteDAO.listar("descricao"); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar gerar um novo produto"); + erro.printStackTrace(); + } + } + + public void editar(ActionEvent evento) { + try { + produto = (Produto) evento.getComponent().getAttributes().get("produtoSelecionado"); + produto.setCaminho("C:/Programação Web com Java/Uploads/" + produto.getCodigo() + ".png"); + + FabricanteDAO fabricanteDAO = new FabricanteDAO(); + fabricantes = fabricanteDAO.listar(); + } catch (RuntimeException erro) { + Messages.addFlashGlobalError("Ocorreu um erro ao tentar selecionar um produto"); + erro.printStackTrace(); + } + } + + public void salvar() { + try { + if (produto.getCaminho() == null) { + Messages.addGlobalError("O campo foto é obrigatório"); + return; + } + + ProdutoDAO produtoDAO = new ProdutoDAO(); + Produto produtoRetorno = produtoDAO.merge(produto); + + Path origem = Paths.get(produto.getCaminho()); + Path destino = Paths.get("C:/Programação Web com Java/Uploads/" + produtoRetorno.getCodigo() + ".png"); + Files.copy(origem, destino, StandardCopyOption.REPLACE_EXISTING); + + produto = new Produto(); + + FabricanteDAO fabricanteDAO = new FabricanteDAO(); + fabricantes = fabricanteDAO.listar(); + + produtos = produtoDAO.listar(); + + Messages.addGlobalInfo("Produto salvo com sucesso"); + } catch (RuntimeException | IOException erro) { + Messages.addFlashGlobalError("Ocorreu um erro ao tentar salvar o produto"); + erro.printStackTrace(); + } + } + + public void excluir(ActionEvent evento) { + try { + produto = (Produto) evento.getComponent().getAttributes().get("produtoSelecionado"); + + ProdutoDAO produtoDAO = new ProdutoDAO(); + produtoDAO.excluir(produto); + + Path arquivo = Paths.get("C:/Programação Web com Java/Uploads/" + produto.getCodigo() + ".png"); + Files.deleteIfExists(arquivo); + + produtos = produtoDAO.listar(); + + Messages.addGlobalInfo("Produto removido com sucesso"); + } catch (RuntimeException | IOException erro) { + Messages.addFlashGlobalError("Ocorreu um erro ao tentar remover o produto"); + erro.printStackTrace(); + } + } + + public void upload(FileUploadEvent evento) { + try { + UploadedFile arquivoUpload = evento.getFile(); + Path arquivoTemp = Files.createTempFile(null, null); + Files.copy(arquivoUpload.getInputstream(), arquivoTemp, StandardCopyOption.REPLACE_EXISTING); + produto.setCaminho(arquivoTemp.toString()); + + Messages.addGlobalInfo("Upload realizado com sucesso"); + } catch (IOException erro) { + Messages.addGlobalInfo("Ocorreu um erro ao tentar realizar o upload de arquivo"); + erro.printStackTrace(); + } + } + + public void imprimir() { + try { + DataTable tabela = (DataTable) Faces.getViewRoot().findComponent("formListagem:tabela"); + Map filtros = tabela.getFilters(); + + String proDescricao = (String) filtros.get("descricao"); + String fabDescricao = (String) filtros.get("fabricante.descricao"); + + String caminho = Faces.getRealPath("/reports/produtos.jasper"); + + Map parametros = new HashMap<>(); + if (proDescricao == null) { + parametros.put("PRODUTO_DESCRICAO", "%%"); + } else { + parametros.put("PRODUTO_DESCRICAO", "%" + proDescricao + "%"); + } + if (fabDescricao == null) { + parametros.put("FABRICANTE_DESCRICAO", "%%"); + } else { + parametros.put("FABRICANTE_DESCRICAO", "%" + fabDescricao + "%"); + } + + Connection conexao = HibernateUtil.getConexao(); + + JasperPrint relatorio = JasperFillManager.fillReport(caminho, parametros, conexao); + + JasperPrintManager.printReport(relatorio, true); + } catch (JRException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar gerar o relatório"); + erro.printStackTrace(); + } + } +} diff --git a/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/UsuarioBean.java b/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/UsuarioBean.java new file mode 100644 index 0000000..f526df8 --- /dev/null +++ b/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/UsuarioBean.java @@ -0,0 +1,90 @@ +package br.pro.delfino.drogaria.bean; + +import java.io.Serializable; +import java.util.List; + +import javax.annotation.PostConstruct; +import javax.faces.bean.ManagedBean; +import javax.faces.bean.ViewScoped; + +import org.omnifaces.util.Messages; + +import br.pro.delfino.drogaria.dao.PessoaDAO; +import br.pro.delfino.drogaria.dao.UsuarioDAO; +import br.pro.delfino.drogaria.domain.Pessoa; +import br.pro.delfino.drogaria.domain.Usuario; + +@SuppressWarnings("serial") +@ManagedBean +@ViewScoped +public class UsuarioBean implements Serializable { + private Usuario usuario; + + private List pessoas; + private List usuarios; + + public Usuario getUsuario() { + return usuario; + } + + public void setUsuario(Usuario usuario) { + this.usuario = usuario; + } + + public List getPessoas() { + return pessoas; + } + + public void setPessoas(List pessoas) { + this.pessoas = pessoas; + } + + public List getUsuarios() { + return usuarios; + } + + public void setUsuarios(List usuarios) { + this.usuarios = usuarios; + } + + @PostConstruct + public void listar(){ + try{ + UsuarioDAO usuarioDAO = new UsuarioDAO(); + usuarios = usuarioDAO.listar("tipo"); + }catch(RuntimeException erro){ + Messages.addGlobalError("Ocorreu um erro ao tentar listar os usuários"); + erro.printStackTrace(); + } + } + + public void novo() { + try { + usuario = new Usuario(); + + PessoaDAO pessoaDAO = new PessoaDAO(); + pessoas = pessoaDAO.listar("nome"); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar criar um novo usuário"); + erro.printStackTrace(); + } + } + + public void salvar() { + try { + UsuarioDAO usuarioDAO = new UsuarioDAO(); + usuarioDAO.merge(usuario); + + usuario = new Usuario(); + usuarios = usuarioDAO.listar("tipo"); + + PessoaDAO pessoaDAO = new PessoaDAO(); + pessoas = pessoaDAO.listar("nome"); + + Messages.addGlobalInfo("Usuário salvo com sucesso"); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar salvar o usuário"); + erro.printStackTrace(); + } + } +} diff --git a/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/VendaBean.java b/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/VendaBean.java new file mode 100644 index 0000000..ada8ff2 --- /dev/null +++ b/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/VendaBean.java @@ -0,0 +1,186 @@ +package br.pro.delfino.drogaria.bean; + +import java.io.Serializable; +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +import javax.annotation.PostConstruct; +import javax.faces.bean.ManagedBean; +import javax.faces.bean.ViewScoped; +import javax.faces.event.ActionEvent; + +import org.omnifaces.util.Messages; + +import br.pro.delfino.drogaria.dao.ClienteDAO; +import br.pro.delfino.drogaria.dao.FuncionarioDAO; +import br.pro.delfino.drogaria.dao.ProdutoDAO; +import br.pro.delfino.drogaria.dao.VendaDAO; +import br.pro.delfino.drogaria.domain.Cliente; +import br.pro.delfino.drogaria.domain.Funcionario; +import br.pro.delfino.drogaria.domain.ItemVenda; +import br.pro.delfino.drogaria.domain.Produto; +import br.pro.delfino.drogaria.domain.Venda; + +@SuppressWarnings("serial") +@ManagedBean +@ViewScoped +public class VendaBean implements Serializable { + private Venda venda; + + private List produtos; + private List itensVenda; + private List clientes; + private List funcionarios; + + public Venda getVenda() { + return venda; + } + + public void setVenda(Venda venda) { + this.venda = venda; + } + + public List getProdutos() { + return produtos; + } + + public void setProdutos(List produtos) { + this.produtos = produtos; + } + + public List getItensVenda() { + return itensVenda; + } + + public void setItensVenda(List itensVenda) { + this.itensVenda = itensVenda; + } + + public List getClientes() { + return clientes; + } + + public void setClientes(List clientes) { + this.clientes = clientes; + } + + public List getFuncionarios() { + return funcionarios; + } + + public void setFuncionarios(List funcionarios) { + this.funcionarios = funcionarios; + } + + @PostConstruct + public void novo() { + try { + venda = new Venda(); + venda.setPrecoTotal(new BigDecimal("0.00")); + + ProdutoDAO produtoDAO = new ProdutoDAO(); + produtos = produtoDAO.listar("descricao"); + + itensVenda = new ArrayList<>(); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar carregar a tela de vendas"); + erro.printStackTrace(); + } + } + + public void adicionar(ActionEvent evento) { + Produto produto = (Produto) evento.getComponent().getAttributes().get("produtoSelecionado"); + + int achou = -1; + for (int posicao = 0; posicao < itensVenda.size(); posicao++) { + if (itensVenda.get(posicao).getProduto().equals(produto)) { + achou = posicao; + } + } + + if (achou < 0) { + ItemVenda itemVenda = new ItemVenda(); + itemVenda.setPrecoParcial(produto.getPreco()); + itemVenda.setProduto(produto); + itemVenda.setQuantidade(new Short("1")); + + itensVenda.add(itemVenda); + } else { + ItemVenda itemVenda = itensVenda.get(achou); + itemVenda.setQuantidade(new Short(itemVenda.getQuantidade() + 1 + "")); + itemVenda.setPrecoParcial(produto.getPreco().multiply(new BigDecimal(itemVenda.getQuantidade()))); + } + + calcular(); + } + + public void remover(ActionEvent evento) { + ItemVenda itemVenda = (ItemVenda) evento.getComponent().getAttributes().get("itemSelecionado"); + + int achou = -1; + for (int posicao = 0; posicao < itensVenda.size(); posicao++) { + if (itensVenda.get(posicao).getProduto().equals(itemVenda.getProduto())) { + achou = posicao; + } + } + + if (achou > -1) { + itensVenda.remove(achou); + } + + calcular(); + } + + public void calcular() { + venda.setPrecoTotal(new BigDecimal("0.00")); + + for (int posicao = 0; posicao < itensVenda.size(); posicao++) { + ItemVenda itemVenda = itensVenda.get(posicao); + venda.setPrecoTotal(venda.getPrecoTotal().add(itemVenda.getPrecoParcial())); + } + } + + public void finalizar() { + try { + venda.setHorario(new Date()); + venda.setCliente(null); + venda.setFuncionario(null); + + FuncionarioDAO funcionarioDAO = new FuncionarioDAO(); + funcionarios = funcionarioDAO.listarOrdenado(); + + ClienteDAO clienteDAO = new ClienteDAO(); + clientes = clienteDAO.listarOrdenado(); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar finalizar a venda"); + erro.printStackTrace(); + } + } + + public void salvar() { + try { + if(venda.getPrecoTotal().signum() == 0){ + Messages.addGlobalError("Informe pelo menos um item para a venda"); + return; + } + + VendaDAO vendaDAO = new VendaDAO(); + vendaDAO.salvar(venda, itensVenda); + + venda = new Venda(); + venda.setPrecoTotal(new BigDecimal("0.00")); + + ProdutoDAO produtoDAO = new ProdutoDAO(); + produtos = produtoDAO.listar("descricao"); + + itensVenda = new ArrayList<>(); + + Messages.addGlobalInfo("Venda realizada com sucesso"); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar salvar a venda"); + erro.printStackTrace(); + } + } +} diff --git a/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/java/br/pro/delfino/drogaria/converter/UpperCaseConverter.java b/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/java/br/pro/delfino/drogaria/converter/UpperCaseConverter.java new file mode 100644 index 0000000..8a5d259 --- /dev/null +++ b/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/java/br/pro/delfino/drogaria/converter/UpperCaseConverter.java @@ -0,0 +1,28 @@ +package br.pro.delfino.drogaria.converter; + +import javax.faces.component.UIComponent; +import javax.faces.context.FacesContext; +import javax.faces.convert.Converter; +import javax.faces.convert.FacesConverter; + +@FacesConverter("upperCaseConverter") +public class UpperCaseConverter implements Converter { + + @Override + public Object getAsObject(FacesContext context, UIComponent component, String value) { + if (value == null) { + return null; + } else { + return value.toUpperCase(); + } + } + + @Override + public String getAsString(FacesContext context, UIComponent component, Object value) { + if (value == null) { + return ""; + } else { + return value.toString(); + } + } +} diff --git a/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/CaixaDAO.java b/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/CaixaDAO.java new file mode 100644 index 0000000..fd8acd7 --- /dev/null +++ b/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/CaixaDAO.java @@ -0,0 +1,26 @@ +package br.pro.delfino.drogaria.dao; + +import java.util.Date; + +import org.hibernate.Criteria; +import org.hibernate.Session; +import org.hibernate.criterion.Restrictions; + +import br.pro.delfino.drogaria.domain.Caixa; +import br.pro.delfino.drogaria.util.HibernateUtil; + +public class CaixaDAO extends GenericDAO { + public Caixa buscar(Date dataAbertura) { + Session sessao = HibernateUtil.getFabricaDeSessoes().openSession(); + try { + Criteria consulta = sessao.createCriteria(Caixa.class); + consulta.add(Restrictions.eq("dataAbertura", dataAbertura)); + Caixa resultado = (Caixa) consulta.uniqueResult(); + return resultado; + } catch (RuntimeException erro) { + throw erro; + } finally { + sessao.close(); + } + } +} diff --git a/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/CidadeDAO.java b/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/CidadeDAO.java new file mode 100644 index 0000000..e685e93 --- /dev/null +++ b/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/CidadeDAO.java @@ -0,0 +1,29 @@ +package br.pro.delfino.drogaria.dao; + +import java.util.List; + +import org.hibernate.Criteria; +import org.hibernate.Session; +import org.hibernate.criterion.Order; +import org.hibernate.criterion.Restrictions; + +import br.pro.delfino.drogaria.domain.Cidade; +import br.pro.delfino.drogaria.util.HibernateUtil; + +public class CidadeDAO extends GenericDAO { + @SuppressWarnings("unchecked") + public List buscarPorEstado(Long estadoCodigo) { + Session sessao = HibernateUtil.getFabricaDeSessoes().openSession(); + try { + Criteria consulta = sessao.createCriteria(Cidade.class); + consulta.add(Restrictions.eq("estado.codigo", estadoCodigo)); + consulta.addOrder(Order.asc("nome")); + List resultado = consulta.list(); + return resultado; + } catch (RuntimeException erro) { + throw erro; + } finally { + sessao.close(); + } + } +} \ No newline at end of file diff --git a/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/ClienteDAO.java b/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/ClienteDAO.java new file mode 100644 index 0000000..e9796b5 --- /dev/null +++ b/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/ClienteDAO.java @@ -0,0 +1,28 @@ +package br.pro.delfino.drogaria.dao; + +import java.util.List; + +import org.hibernate.Criteria; +import org.hibernate.Session; +import org.hibernate.criterion.Order; + +import br.pro.delfino.drogaria.domain.Cliente; +import br.pro.delfino.drogaria.util.HibernateUtil; + +public class ClienteDAO extends GenericDAO { + @SuppressWarnings("unchecked") + public List listarOrdenado() { + Session sessao = HibernateUtil.getFabricaDeSessoes().openSession(); + try { + Criteria consulta = sessao.createCriteria(Cliente.class); + consulta.createAlias("pessoa", "p"); + consulta.addOrder(Order.asc("p.nome")); + List resultado = consulta.list(); + return resultado; + } catch (RuntimeException erro) { + throw erro; + } finally { + sessao.close(); + } + } +} diff --git a/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/EstadoDAO.java b/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/EstadoDAO.java new file mode 100644 index 0000000..32b4a79 --- /dev/null +++ b/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/EstadoDAO.java @@ -0,0 +1,7 @@ +package br.pro.delfino.drogaria.dao; + +import br.pro.delfino.drogaria.domain.Estado; + +public class EstadoDAO extends GenericDAO { + +} diff --git a/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/FabricanteDAO.java b/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/FabricanteDAO.java new file mode 100644 index 0000000..8b7f946 --- /dev/null +++ b/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/FabricanteDAO.java @@ -0,0 +1,7 @@ +package br.pro.delfino.drogaria.dao; + +import br.pro.delfino.drogaria.domain.Fabricante; + +public class FabricanteDAO extends GenericDAO { + +} diff --git a/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/FuncionarioDAO.java b/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/FuncionarioDAO.java new file mode 100644 index 0000000..2b3114d --- /dev/null +++ b/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/FuncionarioDAO.java @@ -0,0 +1,28 @@ +package br.pro.delfino.drogaria.dao; + +import java.util.List; + +import org.hibernate.Criteria; +import org.hibernate.Session; +import org.hibernate.criterion.Order; + +import br.pro.delfino.drogaria.domain.Funcionario; +import br.pro.delfino.drogaria.util.HibernateUtil; + +public class FuncionarioDAO extends GenericDAO{ + @SuppressWarnings("unchecked") + public List listarOrdenado() { + Session sessao = HibernateUtil.getFabricaDeSessoes().openSession(); + try { + Criteria consulta = sessao.createCriteria(Funcionario.class); + consulta.createAlias("pessoa", "p"); + consulta.addOrder(Order.asc("p.nome")); + List resultado = consulta.list(); + return resultado; + } catch (RuntimeException erro) { + throw erro; + } finally { + sessao.close(); + } + } +} diff --git a/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/GenericDAO.java b/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/GenericDAO.java new file mode 100644 index 0000000..b505cd3 --- /dev/null +++ b/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/GenericDAO.java @@ -0,0 +1,140 @@ +package br.pro.delfino.drogaria.dao; + +import java.lang.reflect.ParameterizedType; +import java.util.List; + +import org.hibernate.Criteria; +import org.hibernate.Session; +import org.hibernate.Transaction; +import org.hibernate.criterion.Order; +import org.hibernate.criterion.Restrictions; + +import br.pro.delfino.drogaria.util.HibernateUtil; + +public class GenericDAO { + private Class classe; + + @SuppressWarnings("unchecked") + public GenericDAO() { + this.classe = (Class) ((ParameterizedType) getClass().getGenericSuperclass()) + .getActualTypeArguments()[0]; + } + + public void salvar(Entidade entidade) { + Session sessao = HibernateUtil.getFabricaDeSessoes().openSession(); + Transaction transacao = null; + + try { + transacao = sessao.beginTransaction(); + sessao.save(entidade); + transacao.commit(); + } catch (RuntimeException erro) { + if (transacao != null) { + transacao.rollback(); + } + throw erro; + } finally { + sessao.close(); + } + } + + @SuppressWarnings("unchecked") + public List listar() { + Session sessao = HibernateUtil.getFabricaDeSessoes().openSession(); + try { + Criteria consulta = sessao.createCriteria(classe); + List resultado = consulta.list(); + return resultado; + } catch (RuntimeException erro) { + throw erro; + } finally { + sessao.close(); + } + } + + @SuppressWarnings("unchecked") + public List listar(String campoOrdenacao) { + Session sessao = HibernateUtil.getFabricaDeSessoes().openSession(); + try { + Criteria consulta = sessao.createCriteria(classe); + consulta.addOrder(Order.asc(campoOrdenacao)); + List resultado = consulta.list(); + return resultado; + } catch (RuntimeException erro) { + throw erro; + } finally { + sessao.close(); + } + } + + @SuppressWarnings("unchecked") + public Entidade buscar(Long codigo) { + Session sessao = HibernateUtil.getFabricaDeSessoes().openSession(); + try { + Criteria consulta = sessao.createCriteria(classe); + consulta.add(Restrictions.idEq(codigo)); + Entidade resultado = (Entidade) consulta.uniqueResult(); + return resultado; + } catch (RuntimeException erro) { + throw erro; + } finally { + sessao.close(); + } + } + + public void excluir(Entidade entidade) { + Session sessao = HibernateUtil.getFabricaDeSessoes().openSession(); + Transaction transacao = null; + + try { + transacao = sessao.beginTransaction(); + sessao.delete(entidade); + transacao.commit(); + } catch (RuntimeException erro) { + if (transacao != null) { + transacao.rollback(); + } + throw erro; + } finally { + sessao.close(); + } + } + + public void editar(Entidade entidade) { + Session sessao = HibernateUtil.getFabricaDeSessoes().openSession(); + Transaction transacao = null; + + try { + transacao = sessao.beginTransaction(); + sessao.update(entidade); + transacao.commit(); + } catch (RuntimeException erro) { + if (transacao != null) { + transacao.rollback(); + } + throw erro; + } finally { + sessao.close(); + } + } + + @SuppressWarnings("unchecked") + public Entidade merge(Entidade entidade) { + Session sessao = HibernateUtil.getFabricaDeSessoes().openSession(); + Transaction transacao = null; + + try { + transacao = sessao.beginTransaction(); + Entidade retorno = (Entidade) sessao.merge(entidade); + transacao.commit(); + return retorno; + } catch (RuntimeException erro) { + if (transacao != null) { + transacao.rollback(); + } + throw erro; + } finally { + sessao.close(); + } + } +} diff --git a/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/HistoricoDAO.java b/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/HistoricoDAO.java new file mode 100644 index 0000000..7b30017 --- /dev/null +++ b/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/HistoricoDAO.java @@ -0,0 +1,7 @@ +package br.pro.delfino.drogaria.dao; + +import br.pro.delfino.drogaria.domain.Historico; + +public class HistoricoDAO extends GenericDAO { + +} diff --git a/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/MovimentacaoDAO.java b/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/MovimentacaoDAO.java new file mode 100644 index 0000000..b6560e2 --- /dev/null +++ b/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/MovimentacaoDAO.java @@ -0,0 +1,7 @@ +package br.pro.delfino.drogaria.dao; + +import br.pro.delfino.drogaria.domain.Movimentacao; + +public class MovimentacaoDAO extends GenericDAO { + +} diff --git a/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/PessoaDAO.java b/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/PessoaDAO.java new file mode 100644 index 0000000..bbd116b --- /dev/null +++ b/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/PessoaDAO.java @@ -0,0 +1,7 @@ +package br.pro.delfino.drogaria.dao; + +import br.pro.delfino.drogaria.domain.Pessoa; + +public class PessoaDAO extends GenericDAO { + +} diff --git a/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/ProdutoDAO.java b/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/ProdutoDAO.java new file mode 100644 index 0000000..4c1e751 --- /dev/null +++ b/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/ProdutoDAO.java @@ -0,0 +1,7 @@ +package br.pro.delfino.drogaria.dao; + +import br.pro.delfino.drogaria.domain.Produto; + +public class ProdutoDAO extends GenericDAO { + +} diff --git a/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/UsuarioDAO.java b/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/UsuarioDAO.java new file mode 100644 index 0000000..b4bf524 --- /dev/null +++ b/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/UsuarioDAO.java @@ -0,0 +1,33 @@ +package br.pro.delfino.drogaria.dao; + +import org.apache.shiro.crypto.hash.SimpleHash; +import org.hibernate.Criteria; +import org.hibernate.Session; +import org.hibernate.criterion.Restrictions; + +import br.pro.delfino.drogaria.domain.Usuario; +import br.pro.delfino.drogaria.util.HibernateUtil; + +public class UsuarioDAO extends GenericDAO { + public Usuario autenticar(String cpf, String senha) { + Session sessao = HibernateUtil.getFabricaDeSessoes().openSession(); + + try{ + Criteria consulta = sessao.createCriteria(Usuario.class); + consulta.createAlias("pessoa", "p"); + + consulta.add(Restrictions.eq("p.cpf", cpf)); + + SimpleHash hash = new SimpleHash("md5", senha); + consulta.add(Restrictions.eq("senha", hash.toHex())); + + Usuario resultado = (Usuario) consulta.uniqueResult(); + + return resultado; + } catch (RuntimeException erro) { + throw erro; + } finally { + sessao.close(); + } + } +} diff --git a/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/VendaDAO.java b/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/VendaDAO.java new file mode 100644 index 0000000..3428939 --- /dev/null +++ b/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/VendaDAO.java @@ -0,0 +1,49 @@ +package br.pro.delfino.drogaria.dao; + +import java.util.List; + +import org.hibernate.Session; +import org.hibernate.Transaction; + +import br.pro.delfino.drogaria.domain.ItemVenda; +import br.pro.delfino.drogaria.domain.Produto; +import br.pro.delfino.drogaria.domain.Venda; +import br.pro.delfino.drogaria.util.HibernateUtil; + +public class VendaDAO extends GenericDAO { + public void salvar(Venda venda, List itensVenda) { + Session sessao = HibernateUtil.getFabricaDeSessoes().openSession(); + Transaction transacao = null; + + try { + transacao = sessao.beginTransaction(); + + sessao.save(venda); + + for (int posicao = 0; posicao < itensVenda.size(); posicao++) { + ItemVenda itemVenda = itensVenda.get(posicao); + itemVenda.setVenda(venda); + + sessao.save(itemVenda); + + Produto produto = itemVenda.getProduto(); + int quantidade = produto.getQuantidade() - itemVenda.getQuantidade(); + if (quantidade >= 0) { + produto.setQuantidade(new Short(quantidade + "")); + sessao.update(produto); + } else { + throw new RuntimeException("Quantidade insuficiente em estoque"); + } + } + + transacao.commit(); + } catch (RuntimeException erro) { + if (transacao != null) { + transacao.rollback(); + } + throw erro; + } finally { + sessao.close(); + } + } +} diff --git a/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Caixa.java b/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Caixa.java new file mode 100644 index 0000000..43b07c4 --- /dev/null +++ b/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Caixa.java @@ -0,0 +1,48 @@ +package br.pro.delfino.drogaria.domain; + +import java.math.BigDecimal; +import java.util.Date; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.Temporal; +import javax.persistence.TemporalType; + +@SuppressWarnings("serial") +@Entity +public class Caixa extends GenericDomain { + @Column(nullable = false, unique = true) + @Temporal(TemporalType.DATE) + private Date dataAbertura; + + @Column(nullable = true) + @Temporal(TemporalType.DATE) + private Date dataFechamento; + + @Column(nullable = false, precision = 7, scale = 2) + private BigDecimal valorAbertura; + + public Date getDataAbertura() { + return dataAbertura; + } + + public void setDataAbertura(Date dataAbertura) { + this.dataAbertura = dataAbertura; + } + + public Date getDataFechamento() { + return dataFechamento; + } + + public void setDataFechamento(Date dataFechamento) { + this.dataFechamento = dataFechamento; + } + + public BigDecimal getValorAbertura() { + return valorAbertura; + } + + public void setValorAbertura(BigDecimal valorAbertura) { + this.valorAbertura = valorAbertura; + } +} diff --git a/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Cidade.java b/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Cidade.java new file mode 100644 index 0000000..cf94ede --- /dev/null +++ b/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Cidade.java @@ -0,0 +1,33 @@ +package br.pro.delfino.drogaria.domain; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.JoinColumn; +import javax.persistence.ManyToOne; + +@SuppressWarnings("serial") +@Entity +public class Cidade extends GenericDomain { + @Column(length = 50, nullable = false) + private String nome; + + @ManyToOne + @JoinColumn(nullable = false) + private Estado estado; + + public String getNome() { + return nome; + } + + public void setNome(String nome) { + this.nome = nome; + } + + public Estado getEstado() { + return estado; + } + + public void setEstado(Estado estado) { + this.estado = estado; + } +} diff --git a/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Cliente.java b/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Cliente.java new file mode 100644 index 0000000..6ace9b9 --- /dev/null +++ b/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Cliente.java @@ -0,0 +1,49 @@ +package br.pro.delfino.drogaria.domain; + +import java.util.Date; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.JoinColumn; +import javax.persistence.OneToOne; +import javax.persistence.Temporal; +import javax.persistence.TemporalType; + +@SuppressWarnings("serial") +@Entity +public class Cliente extends GenericDomain { + @Column(nullable = false) + @Temporal(TemporalType.DATE) + private Date dataCadastro; + + @Column(nullable = false) + private Boolean liberado; + + @OneToOne + @JoinColumn(nullable = false) + private Pessoa pessoa; + + public Date getDataCadastro() { + return dataCadastro; + } + + public void setDataCadastro(Date dataCadastro) { + this.dataCadastro = dataCadastro; + } + + public Boolean getLiberado() { + return liberado; + } + + public void setLiberado(Boolean liberado) { + this.liberado = liberado; + } + + public Pessoa getPessoa() { + return pessoa; + } + + public void setPessoa(Pessoa pessoa) { + this.pessoa = pessoa; + } +} diff --git a/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Estado.java b/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Estado.java new file mode 100644 index 0000000..1c06b98 --- /dev/null +++ b/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Estado.java @@ -0,0 +1,30 @@ +package br.pro.delfino.drogaria.domain; + +import javax.persistence.Column; +import javax.persistence.Entity; + +@SuppressWarnings("serial") +@Entity +public class Estado extends GenericDomain { + @Column(length = 2, nullable = false) + private String sigla; + + @Column(length = 50, nullable = false) + private String nome; + + public String getSigla() { + return sigla; + } + + public void setSigla(String sigla) { + this.sigla = sigla; + } + + public String getNome() { + return nome; + } + + public void setNome(String nome) { + this.nome = nome; + } +} diff --git a/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Fabricante.java b/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Fabricante.java new file mode 100644 index 0000000..02eab8c --- /dev/null +++ b/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Fabricante.java @@ -0,0 +1,19 @@ +package br.pro.delfino.drogaria.domain; + +import javax.persistence.Column; +import javax.persistence.Entity; + +@SuppressWarnings("serial") +@Entity +public class Fabricante extends GenericDomain { + @Column(length = 50, nullable = false) + private String descricao; + + public String getDescricao() { + return descricao; + } + + public void setDescricao(String descricao) { + this.descricao = descricao; + } +} diff --git a/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Funcionario.java b/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Funcionario.java new file mode 100644 index 0000000..dec9378 --- /dev/null +++ b/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Funcionario.java @@ -0,0 +1,49 @@ +package br.pro.delfino.drogaria.domain; + +import java.util.Date; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.JoinColumn; +import javax.persistence.OneToOne; +import javax.persistence.Temporal; +import javax.persistence.TemporalType; + +@SuppressWarnings("serial") +@Entity +public class Funcionario extends GenericDomain { + @Column(length = 15, nullable = false) + private String carteiraTrabalho; + + @Column(nullable = false) + @Temporal(TemporalType.DATE) + private Date dataAdmissao; + + @OneToOne + @JoinColumn(nullable = false) + private Pessoa pessoa; + + public String getCarteiraTrabalho() { + return carteiraTrabalho; + } + + public void setCarteiraTrabalho(String carteiraTrabalho) { + this.carteiraTrabalho = carteiraTrabalho; + } + + public Date getDataAdmissao() { + return dataAdmissao; + } + + public void setDataAdmissao(Date dataAdmissao) { + this.dataAdmissao = dataAdmissao; + } + + public Pessoa getPessoa() { + return pessoa; + } + + public void setPessoa(Pessoa pessoa) { + this.pessoa = pessoa; + } +} diff --git a/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/GenericDomain.java b/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/GenericDomain.java new file mode 100644 index 0000000..f37efea --- /dev/null +++ b/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/GenericDomain.java @@ -0,0 +1,54 @@ +package br.pro.delfino.drogaria.domain; + +import java.io.Serializable; + +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Id; +import javax.persistence.MappedSuperclass; + +@SuppressWarnings("serial") +@MappedSuperclass +public class GenericDomain implements Serializable { + @Id + @GeneratedValue(strategy = GenerationType.AUTO) + private Long codigo; + + public Long getCodigo() { + return codigo; + } + + public void setCodigo(Long codigo) { + this.codigo = codigo; + } + + @Override + public String toString() { + return String.format("%s[codigo=%d]", getClass().getSimpleName(), getCodigo()); + } + + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + ((codigo == null) ? 0 : codigo.hashCode()); + return result; + } + + @Override + public boolean equals(Object obj) { + if (this == obj) + return true; + if (obj == null) + return false; + if (getClass() != obj.getClass()) + return false; + GenericDomain other = (GenericDomain) obj; + if (codigo == null) { + if (other.codigo != null) + return false; + } else if (!codigo.equals(other.codigo)) + return false; + return true; + } +} diff --git a/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Historico.java b/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Historico.java new file mode 100644 index 0000000..dafdaeb --- /dev/null +++ b/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Historico.java @@ -0,0 +1,49 @@ +package br.pro.delfino.drogaria.domain; + +import java.util.Date; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.JoinColumn; +import javax.persistence.ManyToOne; +import javax.persistence.Temporal; +import javax.persistence.TemporalType; + +@SuppressWarnings("serial") +@Entity +public class Historico extends GenericDomain { + @Column(nullable = false) + @Temporal(TemporalType.TIMESTAMP) + private Date horario; + + @Column(nullable = false, length = 500) + private String observacoes; + + @ManyToOne + @JoinColumn(nullable = false) + private Produto produto; + + public Date getHorario() { + return horario; + } + + public void setHorario(Date horario) { + this.horario = horario; + } + + public String getObservacoes() { + return observacoes; + } + + public void setObservacoes(String observacoes) { + this.observacoes = observacoes; + } + + public Produto getProduto() { + return produto; + } + + public void setProduto(Produto produto) { + this.produto = produto; + } +} diff --git a/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/ItemVenda.java b/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/ItemVenda.java new file mode 100644 index 0000000..590ab26 --- /dev/null +++ b/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/ItemVenda.java @@ -0,0 +1,58 @@ +package br.pro.delfino.drogaria.domain; + +import java.math.BigDecimal; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.JoinColumn; +import javax.persistence.ManyToOne; + +@SuppressWarnings("serial") +@Entity +public class ItemVenda extends GenericDomain { + @Column(nullable = false) + private Short quantidade; + + @Column(nullable = false, precision = 7, scale = 2) + private BigDecimal precoParcial; + + @ManyToOne + @JoinColumn(nullable = false) + private Produto produto; + + @ManyToOne + @JoinColumn(nullable = false) + private Venda venda; + + public Short getQuantidade() { + return quantidade; + } + + public void setQuantidade(Short quantidade) { + this.quantidade = quantidade; + } + + public BigDecimal getPrecoParcial() { + return precoParcial; + } + + public void setPrecoParcial(BigDecimal precoParcial) { + this.precoParcial = precoParcial; + } + + public Produto getProduto() { + return produto; + } + + public void setProduto(Produto produto) { + this.produto = produto; + } + + public Venda getVenda() { + return venda; + } + + public void setVenda(Venda venda) { + this.venda = venda; + } +} diff --git a/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Movimentacao.java b/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Movimentacao.java new file mode 100644 index 0000000..c3d6319 --- /dev/null +++ b/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Movimentacao.java @@ -0,0 +1,50 @@ +package br.pro.delfino.drogaria.domain; + +import java.math.BigDecimal; +import java.util.Date; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.JoinColumn; +import javax.persistence.ManyToOne; +import javax.persistence.Temporal; +import javax.persistence.TemporalType; + +@SuppressWarnings("serial") +@Entity +public class Movimentacao extends GenericDomain { + @Column(nullable = false) + @Temporal(TemporalType.TIMESTAMP) + private Date horario; + + @Column(nullable = false, precision = 7, scale = 2) + private BigDecimal valor; + + @ManyToOne + @JoinColumn(nullable = false) + private Caixa caixa; + + public Date getHorario() { + return horario; + } + + public void setHorario(Date horario) { + this.horario = horario; + } + + public BigDecimal getValor() { + return valor; + } + + public void setValor(BigDecimal valor) { + this.valor = valor; + } + + public Caixa getCaixa() { + return caixa; + } + + public void setCaixa(Caixa caixa) { + this.caixa = caixa; + } +} diff --git a/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Pessoa.java b/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Pessoa.java new file mode 100644 index 0000000..f354001 --- /dev/null +++ b/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Pessoa.java @@ -0,0 +1,143 @@ +package br.pro.delfino.drogaria.domain; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.JoinColumn; +import javax.persistence.ManyToOne; + +@SuppressWarnings("serial") +@Entity +public class Pessoa extends GenericDomain { + @Column(length = 50, nullable = false) + private String nome; + + @Column(length = 14, nullable = false) + private String cpf; + + @Column(length = 12, nullable = false) + private String rg; + + @Column(length = 100, nullable = false) + private String rua; + + @Column(nullable = false) + private Short numero; + + @Column(length = 30, nullable = false) + private String bairro; + + @Column(length = 10, nullable = false) + private String cep; + + @Column(length = 10) + private String complemento; + + @Column(length = 13, nullable = false) + private String telefone; + + @Column(length = 14, nullable = false) + private String celular; + + @Column(length = 100, nullable = false) + private String email; + + @ManyToOne + @JoinColumn(nullable = false) + private Cidade cidade; + + public String getNome() { + return nome; + } + + public void setNome(String nome) { + this.nome = nome; + } + + public String getCpf() { + return cpf; + } + + public void setCpf(String cpf) { + this.cpf = cpf; + } + + public String getRg() { + return rg; + } + + public void setRg(String rg) { + this.rg = rg; + } + + public String getRua() { + return rua; + } + + public void setRua(String rua) { + this.rua = rua; + } + + public Short getNumero() { + return numero; + } + + public void setNumero(Short numero) { + this.numero = numero; + } + + public String getBairro() { + return bairro; + } + + public void setBairro(String bairro) { + this.bairro = bairro; + } + + public String getCep() { + return cep; + } + + public void setCep(String cep) { + this.cep = cep; + } + + public String getComplemento() { + return complemento; + } + + public void setComplemento(String complemento) { + this.complemento = complemento; + } + + public String getTelefone() { + return telefone; + } + + public void setTelefone(String telefone) { + this.telefone = telefone; + } + + public String getCelular() { + return celular; + } + + public void setCelular(String celular) { + this.celular = celular; + } + + public String getEmail() { + return email; + } + + public void setEmail(String email) { + this.email = email; + } + + public Cidade getCidade() { + return cidade; + } + + public void setCidade(Cidade cidade) { + this.cidade = cidade; + } +} diff --git a/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Produto.java b/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Produto.java new file mode 100644 index 0000000..82049b0 --- /dev/null +++ b/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Produto.java @@ -0,0 +1,69 @@ +package br.pro.delfino.drogaria.domain; + +import java.math.BigDecimal; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.JoinColumn; +import javax.persistence.ManyToOne; +import javax.persistence.Transient; + +@SuppressWarnings("serial") +@Entity +public class Produto extends GenericDomain { + @Column(length = 80, nullable = false) + private String descricao; + + @Column(nullable = false) + private Short quantidade; + + @Column(nullable = false, precision = 6, scale = 2) + private BigDecimal preco; + + @ManyToOne + @JoinColumn(nullable = false) + private Fabricante fabricante; + + @Transient + private String caminho; + + public String getDescricao() { + return descricao; + } + + public void setDescricao(String descricao) { + this.descricao = descricao; + } + + public Short getQuantidade() { + return quantidade; + } + + public void setQuantidade(Short quantidade) { + this.quantidade = quantidade; + } + + public BigDecimal getPreco() { + return preco; + } + + public void setPreco(BigDecimal preco) { + this.preco = preco; + } + + public Fabricante getFabricante() { + return fabricante; + } + + public void setFabricante(Fabricante fabricante) { + this.fabricante = fabricante; + } + + public String getCaminho() { + return caminho; + } + + public void setCaminho(String caminho) { + this.caminho = caminho; + } +} diff --git a/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Usuario.java b/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Usuario.java new file mode 100644 index 0000000..ae51941 --- /dev/null +++ b/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Usuario.java @@ -0,0 +1,93 @@ +package br.pro.delfino.drogaria.domain; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.JoinColumn; +import javax.persistence.OneToOne; +import javax.persistence.Transient; + +@SuppressWarnings("serial") +@Entity +public class Usuario extends GenericDomain { + @Column(length = 32, nullable = false) + private String senha; + + @Transient + private String senhaSemCriptografia; + + @Column(nullable = false) + private Character tipo; + + @Column(nullable = false) + private Boolean ativo; + + @OneToOne + @JoinColumn(nullable = false) + private Pessoa pessoa; + + public String getSenha() { + return senha; + } + + public void setSenha(String senha) { + this.senha = senha; + } + + public String getSenhaSemCriptografia() { + return senhaSemCriptografia; + } + + public void setSenhaSemCriptografia(String senhaSemCriptografia) { + this.senhaSemCriptografia = senhaSemCriptografia; + } + + public Character getTipo() { + return tipo; + } + + @Transient + public String getTipoFormatado() { + String tipoFormatado = null; + + if (tipo == 'A') { + tipoFormatado = "Administrador"; + } else if (tipo == 'B') { + tipoFormatado = "Balconista"; + } else if (tipo == 'G') { + tipoFormatado = "Gerente"; + } + + return tipoFormatado; + } + + public void setTipo(Character tipo) { + this.tipo = tipo; + } + + public Boolean getAtivo() { + return ativo; + } + + @Transient + public String getAtivoFormatado(){ + String ativoFormatado = "Não"; + + if(ativo){ + ativoFormatado = "Sim"; + } + + return ativoFormatado; + } + + public void setAtivo(Boolean ativo) { + this.ativo = ativo; + } + + public Pessoa getPessoa() { + return pessoa; + } + + public void setPessoa(Pessoa pessoa) { + this.pessoa = pessoa; + } +} diff --git a/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Venda.java b/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Venda.java new file mode 100644 index 0000000..3f4c226 --- /dev/null +++ b/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Venda.java @@ -0,0 +1,61 @@ +package br.pro.delfino.drogaria.domain; + +import java.math.BigDecimal; +import java.util.Date; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.JoinColumn; +import javax.persistence.ManyToOne; +import javax.persistence.Temporal; +import javax.persistence.TemporalType; + +@SuppressWarnings("serial") +@Entity +public class Venda extends GenericDomain { + @Column(nullable = false) + @Temporal(TemporalType.TIMESTAMP) + private Date horario; + + @Column(nullable = false, precision = 7, scale = 2) + private BigDecimal precoTotal; + + @ManyToOne + private Cliente cliente; + + @ManyToOne + @JoinColumn(nullable = false) + private Funcionario funcionario; + + public Date getHorario() { + return horario; + } + + public void setHorario(Date horario) { + this.horario = horario; + } + + public BigDecimal getPrecoTotal() { + return precoTotal; + } + + public void setPrecoTotal(BigDecimal precoTotal) { + this.precoTotal = precoTotal; + } + + public Cliente getCliente() { + return cliente; + } + + public void setCliente(Cliente cliente) { + this.cliente = cliente; + } + + public Funcionario getFuncionario() { + return funcionario; + } + + public void setFuncionario(Funcionario funcionario) { + this.funcionario = funcionario; + } +} diff --git a/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/java/br/pro/delfino/drogaria/service/DrogariaService.java b/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/java/br/pro/delfino/drogaria/service/DrogariaService.java new file mode 100644 index 0000000..fbb1f2b --- /dev/null +++ b/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/java/br/pro/delfino/drogaria/service/DrogariaService.java @@ -0,0 +1,13 @@ +package br.pro.delfino.drogaria.service; + +import javax.ws.rs.GET; +import javax.ws.rs.Path; + +// http://localhost:8080/Drogaria/rest/drogaria +@Path("drogaria") +public class DrogariaService { + @GET + public String exibir(){ + return "Curso de Java"; + } +} diff --git a/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/java/br/pro/delfino/drogaria/service/FabricanteService.java b/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/java/br/pro/delfino/drogaria/service/FabricanteService.java new file mode 100644 index 0000000..1dbc0d1 --- /dev/null +++ b/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/java/br/pro/delfino/drogaria/service/FabricanteService.java @@ -0,0 +1,85 @@ +package br.pro.delfino.drogaria.service; + +import java.util.List; + +import javax.ws.rs.DELETE; +import javax.ws.rs.GET; +import javax.ws.rs.POST; +import javax.ws.rs.PUT; +import javax.ws.rs.Path; +import javax.ws.rs.PathParam; + +import com.google.gson.Gson; + +import br.pro.delfino.drogaria.dao.FabricanteDAO; +import br.pro.delfino.drogaria.domain.Fabricante; + +@Path("fabricante") +public class FabricanteService { + // http://127.0.0.1:8080/Drogaria/rest/fabricante + @GET + public String listar() { + FabricanteDAO fabricanteDAO = new FabricanteDAO(); + List fabricantes = fabricanteDAO.listar("descricao"); + + Gson gson = new Gson(); + String json = gson.toJson(fabricantes); + + return json; + } + + // http://127.0.0.1:8080/Drogaria/rest/fabricante/{codigo} + // http://127.0.0.1:8080/Drogaria/rest/fabricante/10 + @GET + @Path("{codigo}") + public String buscar(@PathParam("codigo") Long codigo) { + FabricanteDAO fabricanteDAO = new FabricanteDAO(); + Fabricante fabricante = fabricanteDAO.buscar(codigo); + + Gson gson = new Gson(); + String json = gson.toJson(fabricante); + + return json; + } + + // http://127.0.0.1:8080/Drogaria/rest/fabricante + @POST + public String salvar(String json) { + Gson gson = new Gson(); + Fabricante fabricante = gson.fromJson(json, Fabricante.class); + + FabricanteDAO fabricanteDAO = new FabricanteDAO(); + fabricanteDAO.merge(fabricante); + + String jsonSaida = gson.toJson(fabricante); + return jsonSaida; + } + + // http://127.0.0.1:8080/Drogaria/rest/fabricante + @PUT + public String editar(String json) { + Gson gson = new Gson(); + Fabricante fabricante = gson.fromJson(json, Fabricante.class); + + FabricanteDAO fabricanteDAO = new FabricanteDAO(); + fabricanteDAO.editar(fabricante); + + String jsonSaida = gson.toJson(fabricante); + return jsonSaida; + } + + // http://127.0.0.1:8080/Drogaria/rest/fabricante/{codigo} + // http://127.0.0.1:8080/Drogaria/rest/fabricante/10 + @DELETE + @Path("{codigo}") + public String excluir(@PathParam("codigo") Long codigo){ + FabricanteDAO fabricanteDAO = new FabricanteDAO(); + + Fabricante fabricante = fabricanteDAO.buscar(codigo); + fabricanteDAO.excluir(fabricante); + + Gson gson = new Gson(); + String saida = gson.toJson(fabricante); + return saida; + } +} diff --git a/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/java/br/pro/delfino/drogaria/service/ProdutoService.java b/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/java/br/pro/delfino/drogaria/service/ProdutoService.java new file mode 100644 index 0000000..4dfdf40 --- /dev/null +++ b/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/java/br/pro/delfino/drogaria/service/ProdutoService.java @@ -0,0 +1,39 @@ +package br.pro.delfino.drogaria.service; + +import java.util.List; + +import javax.ws.rs.GET; +import javax.ws.rs.POST; +import javax.ws.rs.Path; + +import com.google.gson.Gson; + +import br.pro.delfino.drogaria.dao.ProdutoDAO; +import br.pro.delfino.drogaria.domain.Produto; + +// http://127.0.0.1:8080/Drogaria/rest/produto +@Path("produto") +public class ProdutoService { + @GET + public String listar(){ + ProdutoDAO produtoDAO = new ProdutoDAO(); + List produtos = produtoDAO.listar("descricao"); + + Gson gson = new Gson(); + String json = gson.toJson(produtos); + + return json; + } + + @POST + public String salvar (String json){ + Gson gson = new Gson(); + Produto produto = gson.fromJson(json, Produto.class); + + ProdutoDAO produtoDAO = new ProdutoDAO(); + produto = produtoDAO.merge(produto); + + String jsonSaida = gson.toJson(produto); + return jsonSaida; + } +} diff --git a/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/java/br/pro/delfino/drogaria/util/DrogariaResourceConfig.java b/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/java/br/pro/delfino/drogaria/util/DrogariaResourceConfig.java new file mode 100644 index 0000000..2c997a9 --- /dev/null +++ b/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/java/br/pro/delfino/drogaria/util/DrogariaResourceConfig.java @@ -0,0 +1,13 @@ +package br.pro.delfino.drogaria.util; + +import javax.ws.rs.ApplicationPath; + +import org.glassfish.jersey.server.ResourceConfig; + +//http://localhost:8080/Drogaria/rest +@ApplicationPath("rest") +public class DrogariaResourceConfig extends ResourceConfig { + public DrogariaResourceConfig(){ + packages("br.pro.delfino.drogaria.service"); + } +} diff --git a/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/java/br/pro/delfino/drogaria/util/HibernateContexto.java b/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/java/br/pro/delfino/drogaria/util/HibernateContexto.java new file mode 100644 index 0000000..71869d7 --- /dev/null +++ b/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/java/br/pro/delfino/drogaria/util/HibernateContexto.java @@ -0,0 +1,18 @@ +package br.pro.delfino.drogaria.util; + +import javax.servlet.ServletContextEvent; +import javax.servlet.ServletContextListener; + +public class HibernateContexto implements ServletContextListener { + + @Override + public void contextDestroyed(ServletContextEvent event) { + HibernateUtil.getFabricaDeSessoes().close(); + } + + @Override + public void contextInitialized(ServletContextEvent event) { + HibernateUtil.getFabricaDeSessoes(); + } + +} diff --git a/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/java/br/pro/delfino/drogaria/util/HibernateUtil.java b/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/java/br/pro/delfino/drogaria/util/HibernateUtil.java new file mode 100644 index 0000000..693551b --- /dev/null +++ b/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/java/br/pro/delfino/drogaria/util/HibernateUtil.java @@ -0,0 +1,47 @@ +package br.pro.delfino.drogaria.util; + +import java.sql.Connection; +import java.sql.SQLException; + +import org.hibernate.Session; +import org.hibernate.SessionFactory; +import org.hibernate.boot.registry.StandardServiceRegistryBuilder; +import org.hibernate.cfg.Configuration; +import org.hibernate.jdbc.ReturningWork; +import org.hibernate.service.ServiceRegistry; + +public class HibernateUtil { + private static SessionFactory fabricaDeSessoes = criarFabricaDeSessoes(); + + public static SessionFactory getFabricaDeSessoes() { + return fabricaDeSessoes; + } + + public static Connection getConexao(){ + Session sessao = fabricaDeSessoes.openSession(); + + Connection conexao = sessao.doReturningWork(new ReturningWork() { + @Override + public Connection execute(Connection conn) throws SQLException { + return conn; + } + }); + + return conexao; + } + + private static SessionFactory criarFabricaDeSessoes() { + try { + Configuration configuracao = new Configuration().configure(); + + ServiceRegistry registro = new StandardServiceRegistryBuilder().applySettings(configuracao.getProperties()).build(); + + SessionFactory fabrica = configuracao.buildSessionFactory(registro); + + return fabrica; + } catch (Throwable ex) { + System.err.println("A fábrica de sessões não pode ser criada." + ex); + throw new ExceptionInInitializerError(ex); + } + } +} diff --git a/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/resources/hibernate.cfg.xml b/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/resources/hibernate.cfg.xml new file mode 100644 index 0000000..e67323a --- /dev/null +++ b/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/resources/hibernate.cfg.xml @@ -0,0 +1,51 @@ + + + + + + + + + + com.mysql.jdbc.Driver + jdbc:mysql://node87281-drogaria.jelasticlw.com.br/drogaria + root + ADVibc98587 + + + 1 + + + org.hibernate.dialect.MySQL5InnoDBDialect + + + thread + + + org.hibernate.cache.internal.NoCacheProvider + + + true + + + update + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/webapp/WEB-INF/springsecurity.taglib.xml b/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/webapp/WEB-INF/springsecurity.taglib.xml new file mode 100644 index 0000000..9d6938c --- /dev/null +++ b/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/webapp/WEB-INF/springsecurity.taglib.xml @@ -0,0 +1,32 @@ + + + + http://www.springframework.org/security/tags + + authorize + org.springframework.faces.security.FaceletsAuthorizeTagHandler + + + areAllGranted + org.springframework.faces.security.FaceletsAuthorizeTagUtils + boolean areAllGranted(java.lang.String) + + + areAnyGranted + org.springframework.faces.security.FaceletsAuthorizeTagUtils + boolean areAnyGranted(java.lang.String) + + + areNotGranted + org.springframework.faces.security.FaceletsAuthorizeTagUtils + boolean areNotGranted(java.lang.String) + + + isAllowed + org.springframework.faces.security.FaceletsAuthorizeTagUtils + boolean isAllowed(java.lang.String, + java.lang.String) + + \ No newline at end of file diff --git a/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/webapp/WEB-INF/web.xml b/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/webapp/WEB-INF/web.xml new file mode 100644 index 0000000..6b0cf5d --- /dev/null +++ b/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/webapp/WEB-INF/web.xml @@ -0,0 +1,48 @@ + + + + + Drogaria + + + + pages/principal.xhtml + + + + + javax.faces.PROJECT_STAGE + Development + + + + + primefaces.THEME + blitzer + + + + + primefaces.UPLOADER + native + + + + + Faces Servlet + javax.faces.webapp.FacesServlet + 1 + + + Faces Servlet + *.xhtml + + + + + br.pro.delfino.drogaria.util.HibernateContexto + + \ No newline at end of file diff --git a/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/webapp/pages/autenticacao.xhtml b/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/webapp/pages/autenticacao.xhtml new file mode 100644 index 0000000..e41a833 --- /dev/null +++ b/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/webapp/pages/autenticacao.xhtml @@ -0,0 +1,36 @@ + + + + + + Autenticação + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/webapp/pages/cidades.xhtml b/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/webapp/pages/cidades.xhtml new file mode 100644 index 0000000..504f3a3 --- /dev/null +++ b/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/webapp/pages/cidades.xhtml @@ -0,0 +1,100 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/webapp/pages/clientes.xhtml b/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/webapp/pages/clientes.xhtml new file mode 100644 index 0000000..4e3cfb5 --- /dev/null +++ b/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/webapp/pages/clientes.xhtml @@ -0,0 +1,94 @@ + + + + + + Clientes + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/webapp/pages/estados.xhtml b/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/webapp/pages/estados.xhtml new file mode 100644 index 0000000..1d441f1 --- /dev/null +++ b/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/webapp/pages/estados.xhtml @@ -0,0 +1,84 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/webapp/pages/fabricantes.xhtml b/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/webapp/pages/fabricantes.xhtml new file mode 100644 index 0000000..3904db0 --- /dev/null +++ b/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/webapp/pages/fabricantes.xhtml @@ -0,0 +1,78 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/webapp/pages/historico.xhtml b/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/webapp/pages/historico.xhtml new file mode 100644 index 0000000..184a864 --- /dev/null +++ b/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/webapp/pages/historico.xhtml @@ -0,0 +1,64 @@ + + + + + + Histórico + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/webapp/pages/pessoas.xhtml b/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/webapp/pages/pessoas.xhtml new file mode 100644 index 0000000..7d68e8c --- /dev/null +++ b/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/webapp/pages/pessoas.xhtml @@ -0,0 +1,162 @@ + + + + + + Pessoas + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/webapp/pages/principal.xhtml b/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/webapp/pages/principal.xhtml new file mode 100644 index 0000000..c05ed85 --- /dev/null +++ b/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/webapp/pages/principal.xhtml @@ -0,0 +1,14 @@ + + + + + + + + + \ No newline at end of file diff --git a/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/webapp/pages/produtos.xhtml b/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/webapp/pages/produtos.xhtml new file mode 100644 index 0000000..56c5db4 --- /dev/null +++ b/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/webapp/pages/produtos.xhtml @@ -0,0 +1,141 @@ + + + + + + Produtos + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/webapp/pages/testeJSF.xhtml b/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/webapp/pages/testeJSF.xhtml new file mode 100644 index 0000000..c20659b --- /dev/null +++ b/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/webapp/pages/testeJSF.xhtml @@ -0,0 +1,12 @@ + + + + + + Teste JSF + + + + + \ No newline at end of file diff --git a/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/webapp/pages/testePrimeFaces.xhtml b/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/webapp/pages/testePrimeFaces.xhtml new file mode 100644 index 0000000..6c4d434 --- /dev/null +++ b/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/webapp/pages/testePrimeFaces.xhtml @@ -0,0 +1,14 @@ + + + + + + Teste PrimeFaces + + + + + \ No newline at end of file diff --git a/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/webapp/pages/usuarios.xhtml b/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/webapp/pages/usuarios.xhtml new file mode 100644 index 0000000..45dd761 --- /dev/null +++ b/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/webapp/pages/usuarios.xhtml @@ -0,0 +1,97 @@ + + + + + + Usuários + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/webapp/pages/vendas.xhtml b/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/webapp/pages/vendas.xhtml new file mode 100644 index 0000000..4485892 --- /dev/null +++ b/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/webapp/pages/vendas.xhtml @@ -0,0 +1,156 @@ + + + + + + Vendas + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/webapp/reports/estados.jasper b/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/webapp/reports/estados.jasper new file mode 100644 index 0000000..96a1278 Binary files /dev/null and b/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/webapp/reports/estados.jasper differ diff --git a/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/webapp/reports/estados.jrxml b/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/webapp/reports/estados.jrxml new file mode 100644 index 0000000..76da981 --- /dev/null +++ b/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/webapp/reports/estados.jrxml @@ -0,0 +1,102 @@ + + + + + + + + + + + + + + + + + + + + <band height="80" splitType="Stretch"> + <image hAlign="Center" vAlign="Middle"> + <reportElement x="0" y="0" width="555" height="80" uuid="6f3208e9-d291-48b3-b13d-3ec9ef72cd3e"> + <property name="com.jaspersoft.studio.unit.width" value="pixel"/> + </reportElement> + <imageExpression><![CDATA["C:/Programação Web com Java/Workspace/Drogaria/src/main/webapp/resources/images/banner.jpg"]]></imageExpression> + </image> + </band> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/webapp/reports/produtos.jasper b/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/webapp/reports/produtos.jasper new file mode 100644 index 0000000..ad55e5f Binary files /dev/null and b/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/webapp/reports/produtos.jasper differ diff --git a/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/webapp/reports/produtos.jrxml b/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/webapp/reports/produtos.jrxml new file mode 100644 index 0000000..800aed0 --- /dev/null +++ b/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/webapp/reports/produtos.jrxml @@ -0,0 +1,130 @@ + + + + + + + + + + + + + + + + + + + + + <band height="79" splitType="Stretch"> + <image hAlign="Center"> + <reportElement x="0" y="0" width="555" height="79" uuid="727feda0-73ba-4c27-aa2c-a431492bd3d6"> + <property name="com.jaspersoft.studio.unit.width" value="pixel"/> + </reportElement> + <imageExpression><![CDATA["C:/Programação Web com Java/Workspace/Drogaria/src/main/webapp/resources/images/banner.jpg"]]></imageExpression> + </image> + </band> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/webapp/resources/css/estilos.css b/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/webapp/resources/css/estilos.css new file mode 100644 index 0000000..4acdd7f --- /dev/null +++ b/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/webapp/resources/css/estilos.css @@ -0,0 +1,19 @@ +@CHARSET "UTF-8"; + +.imagemCentralizada { + display: block; + margin-left: auto; + margin-right: auto; +} + +.divTopo { + padding-bottom: 5px; +} + +.divCabecalho { + padding-bottom: 5px; +} + +.ui-widget, .ui-widget .ui-widget { + font-size: 100% !important; +} \ No newline at end of file diff --git a/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/webapp/resources/images/banner.jpg b/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/webapp/resources/images/banner.jpg new file mode 100644 index 0000000..f58cc21 Binary files /dev/null and b/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/webapp/resources/images/banner.jpg differ diff --git a/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/webapp/resources/js/scripts.js b/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/webapp/resources/js/scripts.js new file mode 100644 index 0000000..e39ad9b --- /dev/null +++ b/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/webapp/resources/js/scripts.js @@ -0,0 +1,26 @@ +PrimeFaces.locales['pt_BR'] = { + closeText: 'Fechar', + prevText: 'Anterior', + nextText: 'Próximo', + currentText: 'Começo', + monthNames: ['Janeiro','Fevereiro','Março','Abril','Maio','Junho','Julho','Agosto','Setembro','Outubro','Novembro','Dezembro'], + monthNamesShort: ['Jan','Fev','Mar','Abr','Mai','Jun', 'Jul','Ago','Set','Out','Nov','Dez'], + dayNames: ['Domingo','Segunda','Terça','Quarta','Quinta','Sexta','Sábado'], + dayNamesShort: ['Dom','Seg','Ter','Qua','Qui','Sex','Sáb'], + dayNamesMin: ['D','S','T','Q','Q','S','S'], + weekHeader: 'Semana', + firstDay: 0, + isRTL: false, + showMonthAfterYear: false, + yearSuffix: '', + timeOnlyTitle: 'Só Horas', + timeText: 'Tempo', + hourText: 'Hora', + minuteText: 'Minuto', + secondText: 'Segundo', + ampm: false, + month: 'Mês', + week: 'Semana', + day: 'Dia', + allDayText : 'Todo o Dia' +}; \ No newline at end of file diff --git a/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/webapp/templates/modelo.xhtml b/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/webapp/templates/modelo.xhtml new file mode 100644 index 0000000..62d3d1c --- /dev/null +++ b/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/webapp/templates/modelo.xhtml @@ -0,0 +1,55 @@ + + + + + + SiGDro + + + + + +
+
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+
+ \ No newline at end of file diff --git a/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/CaixaDAOTest.java b/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/CaixaDAOTest.java new file mode 100644 index 0000000..b5e6156 --- /dev/null +++ b/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/CaixaDAOTest.java @@ -0,0 +1,33 @@ +package br.pro.delfino.drogaria.dao; + +import java.math.BigDecimal; +import java.text.ParseException; +import java.text.SimpleDateFormat; + +import org.junit.Assert; +import org.junit.Ignore; +import org.junit.Test; + +import br.pro.delfino.drogaria.domain.Caixa; + +public class CaixaDAOTest { + @Test + @Ignore + public void salvar() throws ParseException { + Caixa caixa = new Caixa(); + caixa.setDataAbertura(new SimpleDateFormat("dd/MM/yyyy").parse("14/12/2015")); + caixa.setValorAbertura(new BigDecimal("100.00")); + + CaixaDAO caixaDAO = new CaixaDAO(); + caixaDAO.salvar(caixa); + } + + @Test + @Ignore + public void buscar() throws ParseException { + CaixaDAO caixaDAO = new CaixaDAO(); + Caixa caixa = caixaDAO.buscar(new SimpleDateFormat("dd/MM/yyyy").parse("13/12/2015")); + System.out.println(caixa); + Assert.assertNull(caixa); + } +} diff --git a/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/CidadeDAOTest.java b/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/CidadeDAOTest.java new file mode 100644 index 0000000..ec59599 --- /dev/null +++ b/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/CidadeDAOTest.java @@ -0,0 +1,130 @@ +package br.pro.delfino.drogaria.dao; + +import java.util.List; + +import org.junit.Ignore; +import org.junit.Test; + +import br.pro.delfino.drogaria.domain.Cidade; +import br.pro.delfino.drogaria.domain.Estado; + +public class CidadeDAOTest { + @Test + @Ignore + public void salvar() { + Long codigoEstado = 1L; + + EstadoDAO estadoDAO = new EstadoDAO(); + + Estado estado = estadoDAO.buscar(codigoEstado); + + Cidade cidade = new Cidade(); + cidade.setNome("Marília"); + cidade.setEstado(estado); + + CidadeDAO cidadeDAO = new CidadeDAO(); + cidadeDAO.salvar(cidade); + } + + @Test + @Ignore + public void listar() { + CidadeDAO cidadeDAO = new CidadeDAO(); + List resultado = cidadeDAO.listar(); + + for (Cidade cidade : resultado) { + System.out.println("Código da Cidade: " + cidade.getCodigo()); + System.out.println("Nome da Cidade: " + cidade.getNome()); + System.out.println("Código do Estado: " + cidade.getEstado().getCodigo()); + System.out.println("Sigla do Estado: " + cidade.getEstado().getSigla()); + System.out.println("Nome do Estado: " + cidade.getEstado().getNome()); + System.out.println(); + } + } + + @Test + @Ignore + public void buscar(){ + Long codigo = 7L; + + CidadeDAO cidadeDAO = new CidadeDAO(); + Cidade cidade = cidadeDAO.buscar(codigo); + + System.out.println("Código da Cidade: " + cidade.getCodigo()); + System.out.println("Nome da Cidade: " + cidade.getNome()); + System.out.println("Código do Estado: " + cidade.getEstado().getCodigo()); + System.out.println("Sigla do Estado: " + cidade.getEstado().getSigla()); + System.out.println("Nome do Estado: " + cidade.getEstado().getNome()); + } + + @Test + @Ignore + public void excluir(){ + Long codigo = 7L; + + CidadeDAO cidadeDAO = new CidadeDAO(); + Cidade cidade = cidadeDAO.buscar(codigo); + + cidadeDAO.excluir(cidade); + + System.out.println("Cidade Removida"); + System.out.println("Código da Cidade: " + cidade.getCodigo()); + System.out.println("Nome da Cidade: " + cidade.getNome()); + System.out.println("Código do Estado: " + cidade.getEstado().getCodigo()); + System.out.println("Sigla do Estado: " + cidade.getEstado().getSigla()); + System.out.println("Nome do Estado: " + cidade.getEstado().getNome()); + } + + @Test + @Ignore + public void editar(){ + Long codigoCidade = 6L; + Long codigoEstado = 11L; + + EstadoDAO estadoDAO = new EstadoDAO(); + Estado estado = estadoDAO.buscar(codigoEstado); + + System.out.println("Código do Estado: " + estado.getCodigo()); + System.out.println("Sigla do Estado: " + estado.getSigla()); + System.out.println("Nome do Estado: " + estado.getNome()); + + CidadeDAO cidadeDAO = new CidadeDAO(); + Cidade cidade = cidadeDAO.buscar(codigoCidade); + + System.out.println("Cidade A Ser Editada"); + System.out.println("Código da Cidade: " + cidade.getCodigo()); + System.out.println("Nome da Cidade: " + cidade.getNome()); + System.out.println("Código do Estado: " + cidade.getEstado().getCodigo()); + System.out.println("Sigla do Estado: " + cidade.getEstado().getSigla()); + System.out.println("Nome do Estado: " + cidade.getEstado().getNome()); + + cidade.setNome("Guarapuava"); + cidade.setEstado(estado); + + cidadeDAO.editar(cidade); + + System.out.println("Cidade Editada"); + System.out.println("Código da Cidade: " + cidade.getCodigo()); + System.out.println("Nome da Cidade: " + cidade.getNome()); + System.out.println("Código do Estado: " + cidade.getEstado().getCodigo()); + System.out.println("Sigla do Estado: " + cidade.getEstado().getSigla()); + System.out.println("Nome do Estado: " + cidade.getEstado().getNome()); + } + + @Test + public void buscarPorEstado() { + Long estadoCodigo = 3L; + + CidadeDAO cidadeDAO = new CidadeDAO(); + List resultado = cidadeDAO.buscarPorEstado(estadoCodigo); + + for (Cidade cidade : resultado) { + System.out.println("Código da Cidade: " + cidade.getCodigo()); + System.out.println("Nome da Cidade: " + cidade.getNome()); + System.out.println("Código do Estado: " + cidade.getEstado().getCodigo()); + System.out.println("Sigla do Estado: " + cidade.getEstado().getSigla()); + System.out.println("Nome do Estado: " + cidade.getEstado().getNome()); + System.out.println(); + } + } +} diff --git a/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/ClienteDAOTest.java b/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/ClienteDAOTest.java new file mode 100644 index 0000000..4d557d9 --- /dev/null +++ b/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/ClienteDAOTest.java @@ -0,0 +1,29 @@ +package br.pro.delfino.drogaria.dao; + +import java.text.ParseException; +import java.text.SimpleDateFormat; + +import org.junit.Ignore; +import org.junit.Test; + +import br.pro.delfino.drogaria.domain.Cliente; +import br.pro.delfino.drogaria.domain.Pessoa; + +public class ClienteDAOTest { + @Test + @Ignore + public void salvar() throws ParseException { + PessoaDAO pessoaDAO = new PessoaDAO(); + Pessoa pessoa = pessoaDAO.buscar(2L); + + Cliente cliente = new Cliente(); + cliente.setDataCadastro(new SimpleDateFormat("dd/MM/yyyy").parse("09/06/2015")); + cliente.setLiberado(false); + cliente.setPessoa(pessoa); + + ClienteDAO clienteDAO = new ClienteDAO(); + clienteDAO.salvar(cliente); + + System.out.println("Cliente salvo com sucesso."); + } +} diff --git a/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/EstadoDAOTest.java b/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/EstadoDAOTest.java new file mode 100644 index 0000000..f84a086 --- /dev/null +++ b/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/EstadoDAOTest.java @@ -0,0 +1,88 @@ +package br.pro.delfino.drogaria.dao; + +import java.util.List; + +import org.junit.Ignore; +import org.junit.Test; + +import br.pro.delfino.drogaria.domain.Estado; + +public class EstadoDAOTest { + @Test + @Ignore + public void salvar() { + Estado estado = new Estado(); + estado.setNome("Rio Grande do Sul"); + estado.setSigla("RS"); + + EstadoDAO estadoDAO = new EstadoDAO(); + estadoDAO.salvar(estado); + } + + @Test + @Ignore + public void listar() { + EstadoDAO estadoDAO = new EstadoDAO(); + List resultado = estadoDAO.listar(); + + System.out.println("Total de Registros Encontrados: " + resultado.size()); + + for (Estado estado : resultado) { + System.out.println(estado.getCodigo() + " - " + estado.getSigla() + " - " + estado.getNome()); + } + } + + @Test + @Ignore + public void buscar(){ + Long codigo = 3L; + + EstadoDAO estadoDAO = new EstadoDAO(); + Estado estado = estadoDAO.buscar(codigo); + + if(estado == null){ + System.out.println("Nenhum registro encontrado"); + }else{ + System.out.println("Registro encontrado:"); + System.out.println(estado.getCodigo() + " - " + estado.getSigla() + " - " + estado.getNome()); + } + } + + @Test + @Ignore + public void excluir(){ + Long codigo = 1L; + EstadoDAO estadoDAO = new EstadoDAO(); + Estado estado = estadoDAO.buscar(codigo); + + if(estado == null){ + System.out.println("Nenhum registro encontrado"); + }else{ + estadoDAO.excluir(estado); + System.out.println("Registro removido:"); + System.out.println(estado.getCodigo() + " - " + estado.getSigla() + " - " + estado.getNome()); + } + } + + @Test + @Ignore + public void editar(){ + Long codigo = 10L; + EstadoDAO estadoDAO = new EstadoDAO(); + Estado estado = estadoDAO.buscar(codigo); + + if(estado == null){ + System.out.println("Nenhum registro encontrado"); + }else{ + System.out.println("Registro editado - Antes:"); + System.out.println(estado.getCodigo() + " - " + estado.getSigla() + " - " + estado.getNome()); + + estado.setNome("Santa Catarina"); + estado.setSigla("SC"); + estadoDAO.editar(estado); + + System.out.println("Registro editado - Depois:"); + System.out.println(estado.getCodigo() + " - " + estado.getSigla() + " - " + estado.getNome()); + } + } +} diff --git a/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/FabricanteDAOTest.java b/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/FabricanteDAOTest.java new file mode 100644 index 0000000..56fb124 --- /dev/null +++ b/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/FabricanteDAOTest.java @@ -0,0 +1,63 @@ +package br.pro.delfino.drogaria.dao; + +import java.util.List; + +import org.junit.Ignore; +import org.junit.Test; + +import br.pro.delfino.drogaria.domain.Fabricante; + +public class FabricanteDAOTest { + @Test + @Ignore + public void salvar() { + Fabricante fabricante = new Fabricante(); + fabricante.setDescricao("Aché"); + + FabricanteDAO fabricanteDAO = new FabricanteDAO(); + fabricanteDAO.salvar(fabricante); + } + + @Test + @Ignore + public void listar() { + FabricanteDAO FabricanteDAO = new FabricanteDAO(); + List resultado = FabricanteDAO.listar(); + + System.out.println("Total de Registros Encontrados: " + resultado.size()); + + for (Fabricante fabricante : resultado) { + System.out.println(fabricante.getCodigo() + " - " + fabricante.getDescricao()); + } + } + + @Test + @Ignore + public void buscar(){ + Long codigo = 3L; + + FabricanteDAO fabricanteDAO = new FabricanteDAO(); + Fabricante fabricante = fabricanteDAO.buscar(codigo); + + if(fabricante == null){ + System.out.println("Nenhum registro encontrado"); + }else{ + System.out.println("Registro encontrado:"); + System.out.println(fabricante.getCodigo() + " - " + fabricante.getDescricao()); + } + } + + @Test + @Ignore + public void merge() { + //Fabricante fabricante = new Fabricante(); + //fabricante.setDescricao("Fabricante A"); + //FabricanteDAO fabricanteDAO = new FabricanteDAO(); + //fabricanteDAO.merge(fabricante); + + FabricanteDAO fabricanteDAO = new FabricanteDAO(); + Fabricante fabricante = fabricanteDAO.buscar(5L); + fabricante.setDescricao("Fabricante B"); + fabricanteDAO.merge(fabricante); + } +} diff --git a/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/FuncionarioDAOTest.java b/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/FuncionarioDAOTest.java new file mode 100644 index 0000000..06cfff7 --- /dev/null +++ b/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/FuncionarioDAOTest.java @@ -0,0 +1,5 @@ +package br.pro.delfino.drogaria.dao; + +public class FuncionarioDAOTest { + +} diff --git a/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/ProdutoDAOTest.java b/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/ProdutoDAOTest.java new file mode 100644 index 0000000..36f8563 --- /dev/null +++ b/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/ProdutoDAOTest.java @@ -0,0 +1,29 @@ +package br.pro.delfino.drogaria.dao; + +import java.math.BigDecimal; + +import org.junit.Ignore; +import org.junit.Test; + +import br.pro.delfino.drogaria.domain.Fabricante; +import br.pro.delfino.drogaria.domain.Produto; + +public class ProdutoDAOTest { + @Test + @Ignore + public void salvar(){ + FabricanteDAO fabricanteDAO = new FabricanteDAO(); + Fabricante fabricante = fabricanteDAO.buscar(new Long("3")); + + Produto produto = new Produto(); + produto.setDescricao("Cataflan 50mg com 20 Comprimidos"); + produto.setFabricante(fabricante); + produto.setPreco(new BigDecimal("13.70")); + produto.setQuantidade(new Short("7")); + + ProdutoDAO produtoDAO = new ProdutoDAO(); + produtoDAO.salvar(produto); + + System.out.println("Produto salvo com sucesso"); + } +} diff --git a/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/UsuarioDAOTest.java b/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/UsuarioDAOTest.java new file mode 100644 index 0000000..c567ec8 --- /dev/null +++ b/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/UsuarioDAOTest.java @@ -0,0 +1,47 @@ +package br.pro.delfino.drogaria.dao; + +import org.apache.shiro.crypto.hash.SimpleHash; +import org.junit.Ignore; +import org.junit.Test; + +import br.pro.delfino.drogaria.domain.Pessoa; +import br.pro.delfino.drogaria.domain.Usuario; + +public class UsuarioDAOTest { + @Test + @Ignore + public void salvar(){ + PessoaDAO pessoaDAO = new PessoaDAO(); + Pessoa pessoa = pessoaDAO.buscar(3L); + + System.out.println("Pessoa Encontrada"); + System.out.println("Nome: " + pessoa.getNome()); + System.out.println("CPF: " + pessoa.getCpf()); + + Usuario usuario = new Usuario(); + usuario.setAtivo(true); + usuario.setPessoa(pessoa); + usuario.setSenhaSemCriptografia("q1w2e3r4"); + + SimpleHash hash = new SimpleHash("md5", usuario.getSenhaSemCriptografia()); + usuario.setSenha(hash.toHex()); + + usuario.setTipo('B'); + + UsuarioDAO usuarioDAO = new UsuarioDAO(); + usuarioDAO.salvar(usuario); + + System.out.println("Usuário salvo com sucesso."); + } + + @Test + public void autenticar(){ + String cpf = "999.999.999-99"; + String senha = "12345678"; + + UsuarioDAO usuarioDAO = new UsuarioDAO(); + Usuario usuario = usuarioDAO.autenticar(cpf, senha); + + System.out.println("Usuário autentica: " + usuario); + } +} diff --git a/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/test/java/br/pro/delfino/drogaria/util/HibernateUtilTest.java b/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/test/java/br/pro/delfino/drogaria/util/HibernateUtilTest.java new file mode 100644 index 0000000..75776e0 --- /dev/null +++ b/282_Jelastic_Criacao_Banco_Dados/Drogaria/src/test/java/br/pro/delfino/drogaria/util/HibernateUtilTest.java @@ -0,0 +1,13 @@ +package br.pro.delfino.drogaria.util; + +import org.hibernate.Session; +import org.junit.Test; + +public class HibernateUtilTest { + @Test + public void conectar(){ + Session sessao = HibernateUtil.getFabricaDeSessoes().openSession(); + sessao.close(); + HibernateUtil.getFabricaDeSessoes().close(); + } +} diff --git a/284_Autenticacao_ManagedBean_Parte2/Drogaria/.tern-project b/284_Autenticacao_ManagedBean_Parte2/Drogaria/.tern-project new file mode 100644 index 0000000..b6f48dd --- /dev/null +++ b/284_Autenticacao_ManagedBean_Parte2/Drogaria/.tern-project @@ -0,0 +1 @@ +{"ide":{},"libs":["ecma5","browser"],"plugins":{"guess-types":{},"angular":{}}} \ No newline at end of file diff --git a/284_Autenticacao_ManagedBean_Parte2/Drogaria/pom.xml b/284_Autenticacao_ManagedBean_Parte2/Drogaria/pom.xml new file mode 100644 index 0000000..39b1e60 --- /dev/null +++ b/284_Autenticacao_ManagedBean_Parte2/Drogaria/pom.xml @@ -0,0 +1,132 @@ + + 4.0.0 + br.pro.delfino.drogaria + Drogaria + 1.0 + war + + + + UTF-8 + + + + + + Drogaria + + + + + + org.apache.maven.plugins + maven-compiler-plugin + 3.3 + + 1.8 + 1.8 + + + + + + + + + + prime-repo + PrimeFaces Maven Repository + http://repository.primefaces.org + default + + + + + + + + org.hibernate + hibernate-core + 4.3.11.Final + + + + + mysql + mysql-connector-java + 5.1.36 + + + + + junit + junit + 4.12 + + + + + org.glassfish + javax.faces + 2.2.12 + + + + + org.primefaces + primefaces + 5.2 + + + + + org.primefaces.themes + all-themes + 1.0.10 + + + + + org.omnifaces + omnifaces + 1.11 + + + + + javax.servlet + javax.servlet-api + 3.1.0 + + + + + org.glassfish.jersey.containers + jersey-container-servlet + 2.22.1 + + + + + com.google.code.gson + gson + 2.4 + + + + + net.sf.jasperreports + jasperreports + 6.1.1 + + + + + org.apache.shiro + shiro-core + 1.2.4 + + + + \ No newline at end of file diff --git a/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/AutenticacaoBean.java b/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/AutenticacaoBean.java new file mode 100644 index 0000000..7e86b0d --- /dev/null +++ b/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/AutenticacaoBean.java @@ -0,0 +1,60 @@ +package br.pro.delfino.drogaria.bean; + +import java.io.IOException; + +import javax.annotation.PostConstruct; +import javax.faces.bean.ManagedBean; +import javax.faces.bean.SessionScoped; + +import org.omnifaces.util.Faces; +import org.omnifaces.util.Messages; + +import br.pro.delfino.drogaria.dao.UsuarioDAO; +import br.pro.delfino.drogaria.domain.Pessoa; +import br.pro.delfino.drogaria.domain.Usuario; + +@ManagedBean +@SessionScoped +public class AutenticacaoBean { + private Usuario usuario; + private Usuario usuarioLogado; + + public Usuario getUsuario() { + return usuario; + } + + public void setUsuario(Usuario usuario) { + this.usuario = usuario; + } + + public Usuario getUsuarioLogado() { + return usuarioLogado; + } + + public void setUsuarioLogado(Usuario usuarioLogado) { + this.usuarioLogado = usuarioLogado; + } + + @PostConstruct + public void iniciar() { + usuario = new Usuario(); + usuario.setPessoa(new Pessoa()); + } + + public void autenticar() { + try { + UsuarioDAO usuarioDAO = new UsuarioDAO(); + usuarioLogado = usuarioDAO.autenticar(usuario.getPessoa().getCpf(), usuario.getSenha()); + + if(usuarioLogado == null){ + Messages.addGlobalError("CPF e/ou senha incorretos"); + return; + } + + Faces.redirect("./pages/principal.xhtml"); + } catch (IOException erro) { + erro.printStackTrace(); + Messages.addGlobalError(erro.getMessage()); + } + } +} diff --git a/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/CidadeBean.java b/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/CidadeBean.java new file mode 100644 index 0000000..4b03075 --- /dev/null +++ b/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/CidadeBean.java @@ -0,0 +1,119 @@ +package br.pro.delfino.drogaria.bean; + +import java.io.Serializable; +import java.util.List; + +import javax.annotation.PostConstruct; +import javax.faces.bean.ManagedBean; +import javax.faces.bean.ViewScoped; +import javax.faces.event.ActionEvent; + +import org.omnifaces.util.Messages; + +import br.pro.delfino.drogaria.dao.CidadeDAO; +import br.pro.delfino.drogaria.dao.EstadoDAO; +import br.pro.delfino.drogaria.domain.Cidade; +import br.pro.delfino.drogaria.domain.Estado; + +@SuppressWarnings("serial") +@ManagedBean +@ViewScoped +public class CidadeBean implements Serializable { + private Cidade cidade; + private List cidades; + private List estados; + + public Cidade getCidade() { + return cidade; + } + + public void setCidade(Cidade cidade) { + this.cidade = cidade; + } + + public List getCidades() { + return cidades; + } + + public void setCidades(List cidades) { + this.cidades = cidades; + } + + public List getEstados() { + return estados; + } + + public void setEstados(List estados) { + this.estados = estados; + } + + @PostConstruct + public void listar() { + try { + CidadeDAO cidadeDAO = new CidadeDAO(); + cidades = cidadeDAO.listar("nome"); + } catch (RuntimeException erro) { + Messages.addFlashGlobalError("Ocorreu um erro ao tentar listar as cidades"); + erro.printStackTrace(); + } + } + + public void novo() { + try { + cidade = new Cidade(); + + EstadoDAO estadoDAO = new EstadoDAO(); + estados = estadoDAO.listar("nome"); + } catch (RuntimeException erro) { + Messages.addFlashGlobalError("Ocorreu um erro ao gerar uma nova cidade"); + erro.printStackTrace(); + } + } + + public void salvar() { + try { + CidadeDAO cidadeDAO = new CidadeDAO(); + cidadeDAO.merge(cidade); + + cidade = new Cidade(); + + EstadoDAO estadoDAO = new EstadoDAO(); + estados = estadoDAO.listar(); + + cidades = cidadeDAO.listar(); + + Messages.addGlobalInfo("Cidade salva com sucesso"); + } catch (RuntimeException erro) { + Messages.addFlashGlobalError("Ocorreu um erro ao tentar salvar uma nova cidade"); + erro.printStackTrace(); + } + } + + public void excluir(ActionEvent evento) { + try { + cidade = (Cidade) evento.getComponent().getAttributes().get("cidadeSelecionada"); + + CidadeDAO cidadeDAO = new CidadeDAO(); + cidadeDAO.excluir(cidade); + + cidades = cidadeDAO.listar(); + + Messages.addGlobalInfo("Cidade removida com sucesso"); + } catch (RuntimeException erro) { + Messages.addFlashGlobalError("Ocorreu um erro ao tentar remover a cidade"); + erro.printStackTrace(); + } + } + + public void editar(ActionEvent evento){ + try { + cidade = (Cidade) evento.getComponent().getAttributes().get("cidadeSelecionada"); + + EstadoDAO estadoDAO = new EstadoDAO(); + estados = estadoDAO.listar(); + } catch (RuntimeException erro) { + Messages.addFlashGlobalError("Ocorreu um erro ao tentar selecionar uma cidade"); + erro.printStackTrace(); + } + } +} diff --git a/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/ClienteBean.java b/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/ClienteBean.java new file mode 100644 index 0000000..c96b115 --- /dev/null +++ b/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/ClienteBean.java @@ -0,0 +1,91 @@ +package br.pro.delfino.drogaria.bean; + +import java.io.Serializable; +import java.util.List; + +import javax.annotation.PostConstruct; +import javax.faces.bean.ManagedBean; +import javax.faces.bean.ViewScoped; + +import org.omnifaces.util.Messages; + +import br.pro.delfino.drogaria.dao.ClienteDAO; +import br.pro.delfino.drogaria.dao.PessoaDAO; +import br.pro.delfino.drogaria.domain.Cliente; +import br.pro.delfino.drogaria.domain.Pessoa; + +@SuppressWarnings("serial") +@ManagedBean +@ViewScoped +public class ClienteBean implements Serializable { + private Cliente cliente; + + private List clientes; + private List pessoas; + + public Cliente getCliente() { + return cliente; + } + + public void setCliente(Cliente cliente) { + this.cliente = cliente; + } + + public List getClientes() { + return clientes; + } + + public void setClientes(List clientes) { + this.clientes = clientes; + } + + public List getPessoas() { + return pessoas; + } + + public void setPessoas(List pessoas) { + this.pessoas = pessoas; + } + + @PostConstruct + public void listar() { + try { + ClienteDAO clienteDAO = new ClienteDAO(); + clientes = clienteDAO.listar("dataCadastro"); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar listar os clientes"); + erro.printStackTrace(); + } + } + + public void novo() { + try { + cliente = new Cliente(); + + PessoaDAO pessoaDAO = new PessoaDAO(); + pessoas = pessoaDAO.listar("nome"); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar criar um novo cliente"); + erro.printStackTrace(); + } + } + + public void salvar() { + try { + ClienteDAO clienteDAO = new ClienteDAO(); + clienteDAO.merge(cliente); + + cliente = new Cliente(); + + clientes = clienteDAO.listar("dataCadastro"); + + PessoaDAO pessoaDAO = new PessoaDAO(); + pessoas = pessoaDAO.listar("nome"); + + Messages.addGlobalInfo("Cliente salvo com sucesso"); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar salvar o cliente"); + erro.printStackTrace(); + } + } +} diff --git a/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/EstadoBean.java b/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/EstadoBean.java new file mode 100644 index 0000000..b4921fe --- /dev/null +++ b/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/EstadoBean.java @@ -0,0 +1,88 @@ +package br.pro.delfino.drogaria.bean; + +import java.io.Serializable; +import java.util.List; + +import javax.annotation.PostConstruct; +import javax.faces.bean.ManagedBean; +import javax.faces.bean.ViewScoped; +import javax.faces.event.ActionEvent; + +import org.omnifaces.util.Messages; + +import br.pro.delfino.drogaria.dao.EstadoDAO; +import br.pro.delfino.drogaria.domain.Estado; + +@SuppressWarnings("serial") +@ManagedBean +@ViewScoped +public class EstadoBean implements Serializable { + private Estado estado; + private List estados; + + public Estado getEstado() { + return estado; + } + + public void setEstado(Estado estado) { + this.estado = estado; + } + + public List getEstados() { + return estados; + } + + public void setEstados(List estados) { + this.estados = estados; + } + + @PostConstruct + public void listar() { + try { + EstadoDAO estadoDAO = new EstadoDAO(); + estados = estadoDAO.listar(); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar listar os estados"); + erro.printStackTrace(); + } + } + + public void novo() { + estado = new Estado(); + } + + public void salvar() { + try { + EstadoDAO estadoDAO = new EstadoDAO(); + estadoDAO.merge(estado); + + estado = new Estado(); + estados = estadoDAO.listar(); + + Messages.addGlobalInfo("Estado salvo com sucesso"); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar salvar o estado"); + erro.printStackTrace(); + } + } + + public void excluir(ActionEvent evento) { + try { + estado = (Estado) evento.getComponent().getAttributes().get("estadoSelecionado"); + + EstadoDAO estadoDAO = new EstadoDAO(); + estadoDAO.excluir(estado); + + estados = estadoDAO.listar(); + + Messages.addGlobalInfo("Estado removido com sucesso"); + } catch (RuntimeException erro) { + Messages.addFlashGlobalError("Ocorreu um erro ao tentar remover o estado"); + erro.printStackTrace(); + } + } + + public void editar(ActionEvent evento) { + estado = (Estado) evento.getComponent().getAttributes().get("estadoSelecionado"); + } +} diff --git a/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/FabricanteBean.java b/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/FabricanteBean.java new file mode 100644 index 0000000..7fddf7d --- /dev/null +++ b/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/FabricanteBean.java @@ -0,0 +1,116 @@ +package br.pro.delfino.drogaria.bean; + +import java.io.Serializable; +import java.util.Arrays; +import java.util.List; + +import javax.annotation.PostConstruct; +import javax.faces.bean.ManagedBean; +import javax.faces.bean.ViewScoped; +import javax.faces.event.ActionEvent; +import javax.ws.rs.client.Client; +import javax.ws.rs.client.ClientBuilder; +import javax.ws.rs.client.Entity; +import javax.ws.rs.client.WebTarget; + +import org.omnifaces.util.Messages; + +import com.google.gson.Gson; + +import br.pro.delfino.drogaria.domain.Fabricante; + +@SuppressWarnings("serial") +@ManagedBean +@ViewScoped +public class FabricanteBean implements Serializable { + private Fabricante fabricante; + private List fabricantes; + + public Fabricante getFabricante() { + return fabricante; + } + + public void setFabricante(Fabricante fabricante) { + this.fabricante = fabricante; + } + + public List getFabricantes() { + return fabricantes; + } + + public void setFabricantes(List fabricantes) { + this.fabricantes = fabricantes; + } + + @PostConstruct + public void listar() { + try { + Client cliente = ClientBuilder.newClient(); + WebTarget caminho = cliente.target("http://127.0.0.1:8080/Drogaria/rest/fabricante"); + String json = caminho.request().get(String.class); + + Gson gson = new Gson(); + Fabricante[] vetor = gson.fromJson(json, Fabricante[].class); + + fabricantes = Arrays.asList(vetor); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar listar os fabricantes"); + erro.printStackTrace(); + } + } + + public void novo() { + fabricante = new Fabricante(); + } + + public void salvar() { + try { + Client cliente = ClientBuilder.newClient(); + WebTarget caminho = cliente.target("http://127.0.0.1:8080/Drogaria/rest/fabricante"); + + Gson gson = new Gson(); + + String json = gson.toJson(fabricante); + caminho.request().post(Entity.json(json)); + + fabricante = new Fabricante(); + + json = caminho.request().get(String.class); + Fabricante[] vetor = gson.fromJson(json, Fabricante[].class); + fabricantes = Arrays.asList(vetor); + + Messages.addGlobalInfo("Fabricante salvo com sucesso"); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar salvar o fabricante"); + erro.printStackTrace(); + } + } + + public void excluir(ActionEvent evento) { + try { + fabricante = (Fabricante) evento.getComponent().getAttributes().get("fabricanteSelecionado"); + + Client cliente = ClientBuilder.newClient(); + + WebTarget caminho = cliente.target("http://127.0.0.1:8080/Drogaria/rest/fabricante"); + WebTarget caminhoExcluir = caminho.path("{codigo}").resolveTemplate("codigo", fabricante.getCodigo()); + + caminhoExcluir.request().delete(); + String json = caminho.request().get(String.class); + + Gson gson = new Gson(); + Fabricante[] vetor = gson.fromJson(json, Fabricante[].class); + + fabricantes = Arrays.asList(vetor); + + Messages.addGlobalInfo("Fabricante removido com sucesso"); + } catch (RuntimeException erro) { + Messages.addFlashGlobalError("Ocorreu um erro ao tentar remover o fabricante"); + erro.printStackTrace(); + } + } + + public void editar(ActionEvent evento) { + fabricante = (Fabricante) evento.getComponent().getAttributes().get("fabricanteSelecionado"); + } +} diff --git a/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/HistoricoBean.java b/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/HistoricoBean.java new file mode 100644 index 0000000..a042b04 --- /dev/null +++ b/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/HistoricoBean.java @@ -0,0 +1,89 @@ +package br.pro.delfino.drogaria.bean; + +import java.io.Serializable; +import java.util.Date; + +import javax.annotation.PostConstruct; +import javax.faces.bean.ManagedBean; +import javax.faces.bean.ViewScoped; + +import org.omnifaces.util.Messages; + +import br.pro.delfino.drogaria.dao.HistoricoDAO; +import br.pro.delfino.drogaria.dao.ProdutoDAO; +import br.pro.delfino.drogaria.domain.Historico; +import br.pro.delfino.drogaria.domain.Produto; + +@SuppressWarnings("serial") +@ManagedBean +@ViewScoped +public class HistoricoBean implements Serializable { + private Produto produto; + private Boolean exibePainelDados; + + private Historico historico; + + public Produto getProduto() { + return produto; + } + + public void setProduto(Produto produto) { + this.produto = produto; + } + + public Boolean getExibePainelDados() { + return exibePainelDados; + } + + public void setExibePainelDados(Boolean exibePainelDados) { + this.exibePainelDados = exibePainelDados; + } + + public Historico getHistorico() { + return historico; + } + + public void setHistorico(Historico historico) { + this.historico = historico; + } + + @PostConstruct + public void novo() { + historico = new Historico(); + produto = new Produto(); + exibePainelDados = false; + } + + public void buscar() { + try { + ProdutoDAO produtoDAO = new ProdutoDAO(); + Produto resultado = produtoDAO.buscar(produto.getCodigo()); + + if (resultado == null) { + exibePainelDados = false; + Messages.addGlobalWarn("Não existe produto cadastrado para o código informado"); + } else { + exibePainelDados = true; + produto = resultado; + } + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar buscar o produto"); + erro.printStackTrace(); + } + } + + public void salvar() { + try { + historico.setHorario(new Date()); + historico.setProduto(produto); + + HistoricoDAO historicoDAO = new HistoricoDAO(); + historicoDAO.salvar(historico); + + Messages.addGlobalInfo("Histórico salvo com sucesso"); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar salvar o histórico"); + erro.printStackTrace(); + } + } +} diff --git a/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/ImagemBean.java b/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/ImagemBean.java new file mode 100644 index 0000000..eb963a8 --- /dev/null +++ b/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/ImagemBean.java @@ -0,0 +1,48 @@ +package br.pro.delfino.drogaria.bean; + +import java.io.IOException; +import java.io.InputStream; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; + +import javax.faces.bean.ManagedBean; +import javax.faces.bean.ManagedProperty; +import javax.faces.bean.RequestScoped; + +import org.primefaces.model.DefaultStreamedContent; +import org.primefaces.model.StreamedContent; + +@ManagedBean +@RequestScoped +public class ImagemBean { + @ManagedProperty("#{param.caminho}") + private String caminho; + + private StreamedContent foto; + + public String getCaminho() { + return caminho; + } + + public void setCaminho(String caminho) { + this.caminho = caminho; + } + + public StreamedContent getFoto() throws IOException { + if(caminho == null || caminho.isEmpty()){ + Path path = Paths.get("C:/Programação Web com Java/Uploads/branco.png"); + InputStream stream = Files.newInputStream(path); + foto = new DefaultStreamedContent(stream); + }else{ + Path path = Paths.get(caminho); + InputStream stream = Files.newInputStream(path); + foto = new DefaultStreamedContent(stream); + } + return foto; + } + + public void setFoto(StreamedContent foto) { + this.foto = foto; + } +} diff --git a/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/PessoaBean.java b/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/PessoaBean.java new file mode 100644 index 0000000..931edf7 --- /dev/null +++ b/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/PessoaBean.java @@ -0,0 +1,156 @@ +package br.pro.delfino.drogaria.bean; + +import java.io.Serializable; +import java.util.ArrayList; +import java.util.List; + +import javax.annotation.PostConstruct; +import javax.faces.bean.ManagedBean; +import javax.faces.bean.ViewScoped; +import javax.faces.event.ActionEvent; + +import org.omnifaces.util.Messages; + +import br.pro.delfino.drogaria.dao.CidadeDAO; +import br.pro.delfino.drogaria.dao.EstadoDAO; +import br.pro.delfino.drogaria.dao.PessoaDAO; +import br.pro.delfino.drogaria.domain.Cidade; +import br.pro.delfino.drogaria.domain.Estado; +import br.pro.delfino.drogaria.domain.Pessoa; + +@SuppressWarnings("serial") +@ManagedBean +@ViewScoped +public class PessoaBean implements Serializable { + private Pessoa pessoa; + private List pessoas; + + private Estado estado; + private List estados; + + private List cidades; + + public Pessoa getPessoa() { + return pessoa; + } + + public void setPessoa(Pessoa pessoa) { + this.pessoa = pessoa; + } + + public List getPessoas() { + return pessoas; + } + + public void setPessoas(List pessoas) { + this.pessoas = pessoas; + } + + public Estado getEstado() { + return estado; + } + + public void setEstado(Estado estado) { + this.estado = estado; + } + + public List getEstados() { + return estados; + } + + public void setEstados(List estados) { + this.estados = estados; + } + + public List getCidades() { + return cidades; + } + + public void setCidades(List cidades) { + this.cidades = cidades; + } + + @PostConstruct + public void listar() { + try { + PessoaDAO pessoaDAO = new PessoaDAO(); + pessoas = pessoaDAO.listar("nome"); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar listar as pessoas"); + erro.printStackTrace(); + } + } + + public void novo() { + try { + pessoa = new Pessoa(); + + estado = new Estado(); + + EstadoDAO estadoDAO = new EstadoDAO(); + estados = estadoDAO.listar("nome"); + + cidades = new ArrayList<>(); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar gerar uma nova pessoa"); + erro.printStackTrace(); + } + } + + public void editar(ActionEvent evento) { + try{ + pessoa = (Pessoa) evento.getComponent().getAttributes().get("pessoaSelecionada"); + + estado = pessoa.getCidade().getEstado(); + + EstadoDAO estadoDAO = new EstadoDAO(); + estados = estadoDAO.listar("nome"); + + CidadeDAO cidadeDAO = new CidadeDAO(); + cidades = cidadeDAO.buscarPorEstado(estado.getCodigo()); + }catch(RuntimeException erro){ + Messages.addGlobalError("Ocorreu um erro ao tentar selecionar uma pessoa"); + } + } + + public void salvar() { + try { + PessoaDAO pessoaDAO = new PessoaDAO(); + pessoaDAO.merge(pessoa); + + pessoas = pessoaDAO.listar("nome"); + + pessoa = new Pessoa(); + + estado = new Estado(); + + EstadoDAO estadoDAO = new EstadoDAO(); + estados = estadoDAO.listar("nome"); + + cidades = new ArrayList<>(); + + Messages.addGlobalInfo("Pessoa salva com sucesso"); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar salvar a pessoa"); + erro.printStackTrace(); + } + } + + public void excluir(ActionEvent evento) { + + } + + public void popular() { + try { + if (estado != null) { + CidadeDAO cidadeDAO = new CidadeDAO(); + cidades = cidadeDAO.buscarPorEstado(estado.getCodigo()); + } else { + cidades = new ArrayList<>(); + } + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar filtrar as cidades"); + erro.printStackTrace(); + } + } +} diff --git a/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/ProdutoBean.java b/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/ProdutoBean.java new file mode 100644 index 0000000..e48e0d1 --- /dev/null +++ b/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/ProdutoBean.java @@ -0,0 +1,196 @@ +package br.pro.delfino.drogaria.bean; + +import java.io.IOException; +import java.io.Serializable; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; +import java.nio.file.StandardCopyOption; +import java.sql.Connection; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import javax.annotation.PostConstruct; +import javax.faces.bean.ManagedBean; +import javax.faces.bean.ViewScoped; +import javax.faces.event.ActionEvent; + +import org.omnifaces.util.Faces; +import org.omnifaces.util.Messages; +import org.primefaces.component.datatable.DataTable; +import org.primefaces.event.FileUploadEvent; +import org.primefaces.model.UploadedFile; + +import br.pro.delfino.drogaria.dao.FabricanteDAO; +import br.pro.delfino.drogaria.dao.ProdutoDAO; +import br.pro.delfino.drogaria.domain.Fabricante; +import br.pro.delfino.drogaria.domain.Produto; +import br.pro.delfino.drogaria.util.HibernateUtil; +import net.sf.jasperreports.engine.JRException; +import net.sf.jasperreports.engine.JasperFillManager; +import net.sf.jasperreports.engine.JasperPrint; +import net.sf.jasperreports.engine.JasperPrintManager; + +@SuppressWarnings("serial") +@ManagedBean +@ViewScoped +public class ProdutoBean implements Serializable { + private Produto produto; + private List produtos; + private List fabricantes; + + public Produto getProduto() { + return produto; + } + + public void setProduto(Produto produto) { + this.produto = produto; + } + + public List getProdutos() { + return produtos; + } + + public void setProdutos(List produtos) { + this.produtos = produtos; + } + + public List getFabricantes() { + return fabricantes; + } + + public void setFabricantes(List fabricantes) { + this.fabricantes = fabricantes; + } + + @PostConstruct + public void listar() { + try { + ProdutoDAO produtoDAO = new ProdutoDAO(); + produtos = produtoDAO.listar("descricao"); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar listar os produtos"); + erro.printStackTrace(); + } + } + + public void novo() { + try { + produto = new Produto(); + + FabricanteDAO fabricanteDAO = new FabricanteDAO(); + fabricantes = fabricanteDAO.listar("descricao"); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar gerar um novo produto"); + erro.printStackTrace(); + } + } + + public void editar(ActionEvent evento) { + try { + produto = (Produto) evento.getComponent().getAttributes().get("produtoSelecionado"); + produto.setCaminho("C:/Programação Web com Java/Uploads/" + produto.getCodigo() + ".png"); + + FabricanteDAO fabricanteDAO = new FabricanteDAO(); + fabricantes = fabricanteDAO.listar(); + } catch (RuntimeException erro) { + Messages.addFlashGlobalError("Ocorreu um erro ao tentar selecionar um produto"); + erro.printStackTrace(); + } + } + + public void salvar() { + try { + if (produto.getCaminho() == null) { + Messages.addGlobalError("O campo foto é obrigatório"); + return; + } + + ProdutoDAO produtoDAO = new ProdutoDAO(); + Produto produtoRetorno = produtoDAO.merge(produto); + + Path origem = Paths.get(produto.getCaminho()); + Path destino = Paths.get("C:/Programação Web com Java/Uploads/" + produtoRetorno.getCodigo() + ".png"); + Files.copy(origem, destino, StandardCopyOption.REPLACE_EXISTING); + + produto = new Produto(); + + FabricanteDAO fabricanteDAO = new FabricanteDAO(); + fabricantes = fabricanteDAO.listar(); + + produtos = produtoDAO.listar(); + + Messages.addGlobalInfo("Produto salvo com sucesso"); + } catch (RuntimeException | IOException erro) { + Messages.addFlashGlobalError("Ocorreu um erro ao tentar salvar o produto"); + erro.printStackTrace(); + } + } + + public void excluir(ActionEvent evento) { + try { + produto = (Produto) evento.getComponent().getAttributes().get("produtoSelecionado"); + + ProdutoDAO produtoDAO = new ProdutoDAO(); + produtoDAO.excluir(produto); + + Path arquivo = Paths.get("C:/Programação Web com Java/Uploads/" + produto.getCodigo() + ".png"); + Files.deleteIfExists(arquivo); + + produtos = produtoDAO.listar(); + + Messages.addGlobalInfo("Produto removido com sucesso"); + } catch (RuntimeException | IOException erro) { + Messages.addFlashGlobalError("Ocorreu um erro ao tentar remover o produto"); + erro.printStackTrace(); + } + } + + public void upload(FileUploadEvent evento) { + try { + UploadedFile arquivoUpload = evento.getFile(); + Path arquivoTemp = Files.createTempFile(null, null); + Files.copy(arquivoUpload.getInputstream(), arquivoTemp, StandardCopyOption.REPLACE_EXISTING); + produto.setCaminho(arquivoTemp.toString()); + + Messages.addGlobalInfo("Upload realizado com sucesso"); + } catch (IOException erro) { + Messages.addGlobalInfo("Ocorreu um erro ao tentar realizar o upload de arquivo"); + erro.printStackTrace(); + } + } + + public void imprimir() { + try { + DataTable tabela = (DataTable) Faces.getViewRoot().findComponent("formListagem:tabela"); + Map filtros = tabela.getFilters(); + + String proDescricao = (String) filtros.get("descricao"); + String fabDescricao = (String) filtros.get("fabricante.descricao"); + + String caminho = Faces.getRealPath("/reports/produtos.jasper"); + + Map parametros = new HashMap<>(); + if (proDescricao == null) { + parametros.put("PRODUTO_DESCRICAO", "%%"); + } else { + parametros.put("PRODUTO_DESCRICAO", "%" + proDescricao + "%"); + } + if (fabDescricao == null) { + parametros.put("FABRICANTE_DESCRICAO", "%%"); + } else { + parametros.put("FABRICANTE_DESCRICAO", "%" + fabDescricao + "%"); + } + + Connection conexao = HibernateUtil.getConexao(); + + JasperPrint relatorio = JasperFillManager.fillReport(caminho, parametros, conexao); + + JasperPrintManager.printReport(relatorio, true); + } catch (JRException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar gerar o relatório"); + erro.printStackTrace(); + } + } +} diff --git a/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/UsuarioBean.java b/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/UsuarioBean.java new file mode 100644 index 0000000..f526df8 --- /dev/null +++ b/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/UsuarioBean.java @@ -0,0 +1,90 @@ +package br.pro.delfino.drogaria.bean; + +import java.io.Serializable; +import java.util.List; + +import javax.annotation.PostConstruct; +import javax.faces.bean.ManagedBean; +import javax.faces.bean.ViewScoped; + +import org.omnifaces.util.Messages; + +import br.pro.delfino.drogaria.dao.PessoaDAO; +import br.pro.delfino.drogaria.dao.UsuarioDAO; +import br.pro.delfino.drogaria.domain.Pessoa; +import br.pro.delfino.drogaria.domain.Usuario; + +@SuppressWarnings("serial") +@ManagedBean +@ViewScoped +public class UsuarioBean implements Serializable { + private Usuario usuario; + + private List pessoas; + private List usuarios; + + public Usuario getUsuario() { + return usuario; + } + + public void setUsuario(Usuario usuario) { + this.usuario = usuario; + } + + public List getPessoas() { + return pessoas; + } + + public void setPessoas(List pessoas) { + this.pessoas = pessoas; + } + + public List getUsuarios() { + return usuarios; + } + + public void setUsuarios(List usuarios) { + this.usuarios = usuarios; + } + + @PostConstruct + public void listar(){ + try{ + UsuarioDAO usuarioDAO = new UsuarioDAO(); + usuarios = usuarioDAO.listar("tipo"); + }catch(RuntimeException erro){ + Messages.addGlobalError("Ocorreu um erro ao tentar listar os usuários"); + erro.printStackTrace(); + } + } + + public void novo() { + try { + usuario = new Usuario(); + + PessoaDAO pessoaDAO = new PessoaDAO(); + pessoas = pessoaDAO.listar("nome"); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar criar um novo usuário"); + erro.printStackTrace(); + } + } + + public void salvar() { + try { + UsuarioDAO usuarioDAO = new UsuarioDAO(); + usuarioDAO.merge(usuario); + + usuario = new Usuario(); + usuarios = usuarioDAO.listar("tipo"); + + PessoaDAO pessoaDAO = new PessoaDAO(); + pessoas = pessoaDAO.listar("nome"); + + Messages.addGlobalInfo("Usuário salvo com sucesso"); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar salvar o usuário"); + erro.printStackTrace(); + } + } +} diff --git a/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/VendaBean.java b/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/VendaBean.java new file mode 100644 index 0000000..ada8ff2 --- /dev/null +++ b/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/VendaBean.java @@ -0,0 +1,186 @@ +package br.pro.delfino.drogaria.bean; + +import java.io.Serializable; +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +import javax.annotation.PostConstruct; +import javax.faces.bean.ManagedBean; +import javax.faces.bean.ViewScoped; +import javax.faces.event.ActionEvent; + +import org.omnifaces.util.Messages; + +import br.pro.delfino.drogaria.dao.ClienteDAO; +import br.pro.delfino.drogaria.dao.FuncionarioDAO; +import br.pro.delfino.drogaria.dao.ProdutoDAO; +import br.pro.delfino.drogaria.dao.VendaDAO; +import br.pro.delfino.drogaria.domain.Cliente; +import br.pro.delfino.drogaria.domain.Funcionario; +import br.pro.delfino.drogaria.domain.ItemVenda; +import br.pro.delfino.drogaria.domain.Produto; +import br.pro.delfino.drogaria.domain.Venda; + +@SuppressWarnings("serial") +@ManagedBean +@ViewScoped +public class VendaBean implements Serializable { + private Venda venda; + + private List produtos; + private List itensVenda; + private List clientes; + private List funcionarios; + + public Venda getVenda() { + return venda; + } + + public void setVenda(Venda venda) { + this.venda = venda; + } + + public List getProdutos() { + return produtos; + } + + public void setProdutos(List produtos) { + this.produtos = produtos; + } + + public List getItensVenda() { + return itensVenda; + } + + public void setItensVenda(List itensVenda) { + this.itensVenda = itensVenda; + } + + public List getClientes() { + return clientes; + } + + public void setClientes(List clientes) { + this.clientes = clientes; + } + + public List getFuncionarios() { + return funcionarios; + } + + public void setFuncionarios(List funcionarios) { + this.funcionarios = funcionarios; + } + + @PostConstruct + public void novo() { + try { + venda = new Venda(); + venda.setPrecoTotal(new BigDecimal("0.00")); + + ProdutoDAO produtoDAO = new ProdutoDAO(); + produtos = produtoDAO.listar("descricao"); + + itensVenda = new ArrayList<>(); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar carregar a tela de vendas"); + erro.printStackTrace(); + } + } + + public void adicionar(ActionEvent evento) { + Produto produto = (Produto) evento.getComponent().getAttributes().get("produtoSelecionado"); + + int achou = -1; + for (int posicao = 0; posicao < itensVenda.size(); posicao++) { + if (itensVenda.get(posicao).getProduto().equals(produto)) { + achou = posicao; + } + } + + if (achou < 0) { + ItemVenda itemVenda = new ItemVenda(); + itemVenda.setPrecoParcial(produto.getPreco()); + itemVenda.setProduto(produto); + itemVenda.setQuantidade(new Short("1")); + + itensVenda.add(itemVenda); + } else { + ItemVenda itemVenda = itensVenda.get(achou); + itemVenda.setQuantidade(new Short(itemVenda.getQuantidade() + 1 + "")); + itemVenda.setPrecoParcial(produto.getPreco().multiply(new BigDecimal(itemVenda.getQuantidade()))); + } + + calcular(); + } + + public void remover(ActionEvent evento) { + ItemVenda itemVenda = (ItemVenda) evento.getComponent().getAttributes().get("itemSelecionado"); + + int achou = -1; + for (int posicao = 0; posicao < itensVenda.size(); posicao++) { + if (itensVenda.get(posicao).getProduto().equals(itemVenda.getProduto())) { + achou = posicao; + } + } + + if (achou > -1) { + itensVenda.remove(achou); + } + + calcular(); + } + + public void calcular() { + venda.setPrecoTotal(new BigDecimal("0.00")); + + for (int posicao = 0; posicao < itensVenda.size(); posicao++) { + ItemVenda itemVenda = itensVenda.get(posicao); + venda.setPrecoTotal(venda.getPrecoTotal().add(itemVenda.getPrecoParcial())); + } + } + + public void finalizar() { + try { + venda.setHorario(new Date()); + venda.setCliente(null); + venda.setFuncionario(null); + + FuncionarioDAO funcionarioDAO = new FuncionarioDAO(); + funcionarios = funcionarioDAO.listarOrdenado(); + + ClienteDAO clienteDAO = new ClienteDAO(); + clientes = clienteDAO.listarOrdenado(); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar finalizar a venda"); + erro.printStackTrace(); + } + } + + public void salvar() { + try { + if(venda.getPrecoTotal().signum() == 0){ + Messages.addGlobalError("Informe pelo menos um item para a venda"); + return; + } + + VendaDAO vendaDAO = new VendaDAO(); + vendaDAO.salvar(venda, itensVenda); + + venda = new Venda(); + venda.setPrecoTotal(new BigDecimal("0.00")); + + ProdutoDAO produtoDAO = new ProdutoDAO(); + produtos = produtoDAO.listar("descricao"); + + itensVenda = new ArrayList<>(); + + Messages.addGlobalInfo("Venda realizada com sucesso"); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar salvar a venda"); + erro.printStackTrace(); + } + } +} diff --git a/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/java/br/pro/delfino/drogaria/converter/UpperCaseConverter.java b/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/java/br/pro/delfino/drogaria/converter/UpperCaseConverter.java new file mode 100644 index 0000000..8a5d259 --- /dev/null +++ b/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/java/br/pro/delfino/drogaria/converter/UpperCaseConverter.java @@ -0,0 +1,28 @@ +package br.pro.delfino.drogaria.converter; + +import javax.faces.component.UIComponent; +import javax.faces.context.FacesContext; +import javax.faces.convert.Converter; +import javax.faces.convert.FacesConverter; + +@FacesConverter("upperCaseConverter") +public class UpperCaseConverter implements Converter { + + @Override + public Object getAsObject(FacesContext context, UIComponent component, String value) { + if (value == null) { + return null; + } else { + return value.toUpperCase(); + } + } + + @Override + public String getAsString(FacesContext context, UIComponent component, Object value) { + if (value == null) { + return ""; + } else { + return value.toString(); + } + } +} diff --git a/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/CaixaDAO.java b/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/CaixaDAO.java new file mode 100644 index 0000000..fd8acd7 --- /dev/null +++ b/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/CaixaDAO.java @@ -0,0 +1,26 @@ +package br.pro.delfino.drogaria.dao; + +import java.util.Date; + +import org.hibernate.Criteria; +import org.hibernate.Session; +import org.hibernate.criterion.Restrictions; + +import br.pro.delfino.drogaria.domain.Caixa; +import br.pro.delfino.drogaria.util.HibernateUtil; + +public class CaixaDAO extends GenericDAO { + public Caixa buscar(Date dataAbertura) { + Session sessao = HibernateUtil.getFabricaDeSessoes().openSession(); + try { + Criteria consulta = sessao.createCriteria(Caixa.class); + consulta.add(Restrictions.eq("dataAbertura", dataAbertura)); + Caixa resultado = (Caixa) consulta.uniqueResult(); + return resultado; + } catch (RuntimeException erro) { + throw erro; + } finally { + sessao.close(); + } + } +} diff --git a/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/CidadeDAO.java b/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/CidadeDAO.java new file mode 100644 index 0000000..e685e93 --- /dev/null +++ b/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/CidadeDAO.java @@ -0,0 +1,29 @@ +package br.pro.delfino.drogaria.dao; + +import java.util.List; + +import org.hibernate.Criteria; +import org.hibernate.Session; +import org.hibernate.criterion.Order; +import org.hibernate.criterion.Restrictions; + +import br.pro.delfino.drogaria.domain.Cidade; +import br.pro.delfino.drogaria.util.HibernateUtil; + +public class CidadeDAO extends GenericDAO { + @SuppressWarnings("unchecked") + public List buscarPorEstado(Long estadoCodigo) { + Session sessao = HibernateUtil.getFabricaDeSessoes().openSession(); + try { + Criteria consulta = sessao.createCriteria(Cidade.class); + consulta.add(Restrictions.eq("estado.codigo", estadoCodigo)); + consulta.addOrder(Order.asc("nome")); + List resultado = consulta.list(); + return resultado; + } catch (RuntimeException erro) { + throw erro; + } finally { + sessao.close(); + } + } +} \ No newline at end of file diff --git a/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/ClienteDAO.java b/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/ClienteDAO.java new file mode 100644 index 0000000..e9796b5 --- /dev/null +++ b/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/ClienteDAO.java @@ -0,0 +1,28 @@ +package br.pro.delfino.drogaria.dao; + +import java.util.List; + +import org.hibernate.Criteria; +import org.hibernate.Session; +import org.hibernate.criterion.Order; + +import br.pro.delfino.drogaria.domain.Cliente; +import br.pro.delfino.drogaria.util.HibernateUtil; + +public class ClienteDAO extends GenericDAO { + @SuppressWarnings("unchecked") + public List listarOrdenado() { + Session sessao = HibernateUtil.getFabricaDeSessoes().openSession(); + try { + Criteria consulta = sessao.createCriteria(Cliente.class); + consulta.createAlias("pessoa", "p"); + consulta.addOrder(Order.asc("p.nome")); + List resultado = consulta.list(); + return resultado; + } catch (RuntimeException erro) { + throw erro; + } finally { + sessao.close(); + } + } +} diff --git a/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/EstadoDAO.java b/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/EstadoDAO.java new file mode 100644 index 0000000..32b4a79 --- /dev/null +++ b/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/EstadoDAO.java @@ -0,0 +1,7 @@ +package br.pro.delfino.drogaria.dao; + +import br.pro.delfino.drogaria.domain.Estado; + +public class EstadoDAO extends GenericDAO { + +} diff --git a/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/FabricanteDAO.java b/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/FabricanteDAO.java new file mode 100644 index 0000000..8b7f946 --- /dev/null +++ b/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/FabricanteDAO.java @@ -0,0 +1,7 @@ +package br.pro.delfino.drogaria.dao; + +import br.pro.delfino.drogaria.domain.Fabricante; + +public class FabricanteDAO extends GenericDAO { + +} diff --git a/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/FuncionarioDAO.java b/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/FuncionarioDAO.java new file mode 100644 index 0000000..2b3114d --- /dev/null +++ b/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/FuncionarioDAO.java @@ -0,0 +1,28 @@ +package br.pro.delfino.drogaria.dao; + +import java.util.List; + +import org.hibernate.Criteria; +import org.hibernate.Session; +import org.hibernate.criterion.Order; + +import br.pro.delfino.drogaria.domain.Funcionario; +import br.pro.delfino.drogaria.util.HibernateUtil; + +public class FuncionarioDAO extends GenericDAO{ + @SuppressWarnings("unchecked") + public List listarOrdenado() { + Session sessao = HibernateUtil.getFabricaDeSessoes().openSession(); + try { + Criteria consulta = sessao.createCriteria(Funcionario.class); + consulta.createAlias("pessoa", "p"); + consulta.addOrder(Order.asc("p.nome")); + List resultado = consulta.list(); + return resultado; + } catch (RuntimeException erro) { + throw erro; + } finally { + sessao.close(); + } + } +} diff --git a/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/GenericDAO.java b/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/GenericDAO.java new file mode 100644 index 0000000..b505cd3 --- /dev/null +++ b/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/GenericDAO.java @@ -0,0 +1,140 @@ +package br.pro.delfino.drogaria.dao; + +import java.lang.reflect.ParameterizedType; +import java.util.List; + +import org.hibernate.Criteria; +import org.hibernate.Session; +import org.hibernate.Transaction; +import org.hibernate.criterion.Order; +import org.hibernate.criterion.Restrictions; + +import br.pro.delfino.drogaria.util.HibernateUtil; + +public class GenericDAO { + private Class classe; + + @SuppressWarnings("unchecked") + public GenericDAO() { + this.classe = (Class) ((ParameterizedType) getClass().getGenericSuperclass()) + .getActualTypeArguments()[0]; + } + + public void salvar(Entidade entidade) { + Session sessao = HibernateUtil.getFabricaDeSessoes().openSession(); + Transaction transacao = null; + + try { + transacao = sessao.beginTransaction(); + sessao.save(entidade); + transacao.commit(); + } catch (RuntimeException erro) { + if (transacao != null) { + transacao.rollback(); + } + throw erro; + } finally { + sessao.close(); + } + } + + @SuppressWarnings("unchecked") + public List listar() { + Session sessao = HibernateUtil.getFabricaDeSessoes().openSession(); + try { + Criteria consulta = sessao.createCriteria(classe); + List resultado = consulta.list(); + return resultado; + } catch (RuntimeException erro) { + throw erro; + } finally { + sessao.close(); + } + } + + @SuppressWarnings("unchecked") + public List listar(String campoOrdenacao) { + Session sessao = HibernateUtil.getFabricaDeSessoes().openSession(); + try { + Criteria consulta = sessao.createCriteria(classe); + consulta.addOrder(Order.asc(campoOrdenacao)); + List resultado = consulta.list(); + return resultado; + } catch (RuntimeException erro) { + throw erro; + } finally { + sessao.close(); + } + } + + @SuppressWarnings("unchecked") + public Entidade buscar(Long codigo) { + Session sessao = HibernateUtil.getFabricaDeSessoes().openSession(); + try { + Criteria consulta = sessao.createCriteria(classe); + consulta.add(Restrictions.idEq(codigo)); + Entidade resultado = (Entidade) consulta.uniqueResult(); + return resultado; + } catch (RuntimeException erro) { + throw erro; + } finally { + sessao.close(); + } + } + + public void excluir(Entidade entidade) { + Session sessao = HibernateUtil.getFabricaDeSessoes().openSession(); + Transaction transacao = null; + + try { + transacao = sessao.beginTransaction(); + sessao.delete(entidade); + transacao.commit(); + } catch (RuntimeException erro) { + if (transacao != null) { + transacao.rollback(); + } + throw erro; + } finally { + sessao.close(); + } + } + + public void editar(Entidade entidade) { + Session sessao = HibernateUtil.getFabricaDeSessoes().openSession(); + Transaction transacao = null; + + try { + transacao = sessao.beginTransaction(); + sessao.update(entidade); + transacao.commit(); + } catch (RuntimeException erro) { + if (transacao != null) { + transacao.rollback(); + } + throw erro; + } finally { + sessao.close(); + } + } + + @SuppressWarnings("unchecked") + public Entidade merge(Entidade entidade) { + Session sessao = HibernateUtil.getFabricaDeSessoes().openSession(); + Transaction transacao = null; + + try { + transacao = sessao.beginTransaction(); + Entidade retorno = (Entidade) sessao.merge(entidade); + transacao.commit(); + return retorno; + } catch (RuntimeException erro) { + if (transacao != null) { + transacao.rollback(); + } + throw erro; + } finally { + sessao.close(); + } + } +} diff --git a/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/HistoricoDAO.java b/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/HistoricoDAO.java new file mode 100644 index 0000000..7b30017 --- /dev/null +++ b/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/HistoricoDAO.java @@ -0,0 +1,7 @@ +package br.pro.delfino.drogaria.dao; + +import br.pro.delfino.drogaria.domain.Historico; + +public class HistoricoDAO extends GenericDAO { + +} diff --git a/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/MovimentacaoDAO.java b/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/MovimentacaoDAO.java new file mode 100644 index 0000000..b6560e2 --- /dev/null +++ b/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/MovimentacaoDAO.java @@ -0,0 +1,7 @@ +package br.pro.delfino.drogaria.dao; + +import br.pro.delfino.drogaria.domain.Movimentacao; + +public class MovimentacaoDAO extends GenericDAO { + +} diff --git a/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/PessoaDAO.java b/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/PessoaDAO.java new file mode 100644 index 0000000..bbd116b --- /dev/null +++ b/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/PessoaDAO.java @@ -0,0 +1,7 @@ +package br.pro.delfino.drogaria.dao; + +import br.pro.delfino.drogaria.domain.Pessoa; + +public class PessoaDAO extends GenericDAO { + +} diff --git a/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/ProdutoDAO.java b/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/ProdutoDAO.java new file mode 100644 index 0000000..4c1e751 --- /dev/null +++ b/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/ProdutoDAO.java @@ -0,0 +1,7 @@ +package br.pro.delfino.drogaria.dao; + +import br.pro.delfino.drogaria.domain.Produto; + +public class ProdutoDAO extends GenericDAO { + +} diff --git a/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/UsuarioDAO.java b/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/UsuarioDAO.java new file mode 100644 index 0000000..b4bf524 --- /dev/null +++ b/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/UsuarioDAO.java @@ -0,0 +1,33 @@ +package br.pro.delfino.drogaria.dao; + +import org.apache.shiro.crypto.hash.SimpleHash; +import org.hibernate.Criteria; +import org.hibernate.Session; +import org.hibernate.criterion.Restrictions; + +import br.pro.delfino.drogaria.domain.Usuario; +import br.pro.delfino.drogaria.util.HibernateUtil; + +public class UsuarioDAO extends GenericDAO { + public Usuario autenticar(String cpf, String senha) { + Session sessao = HibernateUtil.getFabricaDeSessoes().openSession(); + + try{ + Criteria consulta = sessao.createCriteria(Usuario.class); + consulta.createAlias("pessoa", "p"); + + consulta.add(Restrictions.eq("p.cpf", cpf)); + + SimpleHash hash = new SimpleHash("md5", senha); + consulta.add(Restrictions.eq("senha", hash.toHex())); + + Usuario resultado = (Usuario) consulta.uniqueResult(); + + return resultado; + } catch (RuntimeException erro) { + throw erro; + } finally { + sessao.close(); + } + } +} diff --git a/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/VendaDAO.java b/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/VendaDAO.java new file mode 100644 index 0000000..3428939 --- /dev/null +++ b/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/VendaDAO.java @@ -0,0 +1,49 @@ +package br.pro.delfino.drogaria.dao; + +import java.util.List; + +import org.hibernate.Session; +import org.hibernate.Transaction; + +import br.pro.delfino.drogaria.domain.ItemVenda; +import br.pro.delfino.drogaria.domain.Produto; +import br.pro.delfino.drogaria.domain.Venda; +import br.pro.delfino.drogaria.util.HibernateUtil; + +public class VendaDAO extends GenericDAO { + public void salvar(Venda venda, List itensVenda) { + Session sessao = HibernateUtil.getFabricaDeSessoes().openSession(); + Transaction transacao = null; + + try { + transacao = sessao.beginTransaction(); + + sessao.save(venda); + + for (int posicao = 0; posicao < itensVenda.size(); posicao++) { + ItemVenda itemVenda = itensVenda.get(posicao); + itemVenda.setVenda(venda); + + sessao.save(itemVenda); + + Produto produto = itemVenda.getProduto(); + int quantidade = produto.getQuantidade() - itemVenda.getQuantidade(); + if (quantidade >= 0) { + produto.setQuantidade(new Short(quantidade + "")); + sessao.update(produto); + } else { + throw new RuntimeException("Quantidade insuficiente em estoque"); + } + } + + transacao.commit(); + } catch (RuntimeException erro) { + if (transacao != null) { + transacao.rollback(); + } + throw erro; + } finally { + sessao.close(); + } + } +} diff --git a/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Caixa.java b/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Caixa.java new file mode 100644 index 0000000..43b07c4 --- /dev/null +++ b/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Caixa.java @@ -0,0 +1,48 @@ +package br.pro.delfino.drogaria.domain; + +import java.math.BigDecimal; +import java.util.Date; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.Temporal; +import javax.persistence.TemporalType; + +@SuppressWarnings("serial") +@Entity +public class Caixa extends GenericDomain { + @Column(nullable = false, unique = true) + @Temporal(TemporalType.DATE) + private Date dataAbertura; + + @Column(nullable = true) + @Temporal(TemporalType.DATE) + private Date dataFechamento; + + @Column(nullable = false, precision = 7, scale = 2) + private BigDecimal valorAbertura; + + public Date getDataAbertura() { + return dataAbertura; + } + + public void setDataAbertura(Date dataAbertura) { + this.dataAbertura = dataAbertura; + } + + public Date getDataFechamento() { + return dataFechamento; + } + + public void setDataFechamento(Date dataFechamento) { + this.dataFechamento = dataFechamento; + } + + public BigDecimal getValorAbertura() { + return valorAbertura; + } + + public void setValorAbertura(BigDecimal valorAbertura) { + this.valorAbertura = valorAbertura; + } +} diff --git a/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Cidade.java b/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Cidade.java new file mode 100644 index 0000000..cf94ede --- /dev/null +++ b/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Cidade.java @@ -0,0 +1,33 @@ +package br.pro.delfino.drogaria.domain; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.JoinColumn; +import javax.persistence.ManyToOne; + +@SuppressWarnings("serial") +@Entity +public class Cidade extends GenericDomain { + @Column(length = 50, nullable = false) + private String nome; + + @ManyToOne + @JoinColumn(nullable = false) + private Estado estado; + + public String getNome() { + return nome; + } + + public void setNome(String nome) { + this.nome = nome; + } + + public Estado getEstado() { + return estado; + } + + public void setEstado(Estado estado) { + this.estado = estado; + } +} diff --git a/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Cliente.java b/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Cliente.java new file mode 100644 index 0000000..6ace9b9 --- /dev/null +++ b/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Cliente.java @@ -0,0 +1,49 @@ +package br.pro.delfino.drogaria.domain; + +import java.util.Date; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.JoinColumn; +import javax.persistence.OneToOne; +import javax.persistence.Temporal; +import javax.persistence.TemporalType; + +@SuppressWarnings("serial") +@Entity +public class Cliente extends GenericDomain { + @Column(nullable = false) + @Temporal(TemporalType.DATE) + private Date dataCadastro; + + @Column(nullable = false) + private Boolean liberado; + + @OneToOne + @JoinColumn(nullable = false) + private Pessoa pessoa; + + public Date getDataCadastro() { + return dataCadastro; + } + + public void setDataCadastro(Date dataCadastro) { + this.dataCadastro = dataCadastro; + } + + public Boolean getLiberado() { + return liberado; + } + + public void setLiberado(Boolean liberado) { + this.liberado = liberado; + } + + public Pessoa getPessoa() { + return pessoa; + } + + public void setPessoa(Pessoa pessoa) { + this.pessoa = pessoa; + } +} diff --git a/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Estado.java b/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Estado.java new file mode 100644 index 0000000..1c06b98 --- /dev/null +++ b/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Estado.java @@ -0,0 +1,30 @@ +package br.pro.delfino.drogaria.domain; + +import javax.persistence.Column; +import javax.persistence.Entity; + +@SuppressWarnings("serial") +@Entity +public class Estado extends GenericDomain { + @Column(length = 2, nullable = false) + private String sigla; + + @Column(length = 50, nullable = false) + private String nome; + + public String getSigla() { + return sigla; + } + + public void setSigla(String sigla) { + this.sigla = sigla; + } + + public String getNome() { + return nome; + } + + public void setNome(String nome) { + this.nome = nome; + } +} diff --git a/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Fabricante.java b/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Fabricante.java new file mode 100644 index 0000000..02eab8c --- /dev/null +++ b/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Fabricante.java @@ -0,0 +1,19 @@ +package br.pro.delfino.drogaria.domain; + +import javax.persistence.Column; +import javax.persistence.Entity; + +@SuppressWarnings("serial") +@Entity +public class Fabricante extends GenericDomain { + @Column(length = 50, nullable = false) + private String descricao; + + public String getDescricao() { + return descricao; + } + + public void setDescricao(String descricao) { + this.descricao = descricao; + } +} diff --git a/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Funcionario.java b/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Funcionario.java new file mode 100644 index 0000000..dec9378 --- /dev/null +++ b/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Funcionario.java @@ -0,0 +1,49 @@ +package br.pro.delfino.drogaria.domain; + +import java.util.Date; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.JoinColumn; +import javax.persistence.OneToOne; +import javax.persistence.Temporal; +import javax.persistence.TemporalType; + +@SuppressWarnings("serial") +@Entity +public class Funcionario extends GenericDomain { + @Column(length = 15, nullable = false) + private String carteiraTrabalho; + + @Column(nullable = false) + @Temporal(TemporalType.DATE) + private Date dataAdmissao; + + @OneToOne + @JoinColumn(nullable = false) + private Pessoa pessoa; + + public String getCarteiraTrabalho() { + return carteiraTrabalho; + } + + public void setCarteiraTrabalho(String carteiraTrabalho) { + this.carteiraTrabalho = carteiraTrabalho; + } + + public Date getDataAdmissao() { + return dataAdmissao; + } + + public void setDataAdmissao(Date dataAdmissao) { + this.dataAdmissao = dataAdmissao; + } + + public Pessoa getPessoa() { + return pessoa; + } + + public void setPessoa(Pessoa pessoa) { + this.pessoa = pessoa; + } +} diff --git a/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/GenericDomain.java b/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/GenericDomain.java new file mode 100644 index 0000000..f37efea --- /dev/null +++ b/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/GenericDomain.java @@ -0,0 +1,54 @@ +package br.pro.delfino.drogaria.domain; + +import java.io.Serializable; + +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Id; +import javax.persistence.MappedSuperclass; + +@SuppressWarnings("serial") +@MappedSuperclass +public class GenericDomain implements Serializable { + @Id + @GeneratedValue(strategy = GenerationType.AUTO) + private Long codigo; + + public Long getCodigo() { + return codigo; + } + + public void setCodigo(Long codigo) { + this.codigo = codigo; + } + + @Override + public String toString() { + return String.format("%s[codigo=%d]", getClass().getSimpleName(), getCodigo()); + } + + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + ((codigo == null) ? 0 : codigo.hashCode()); + return result; + } + + @Override + public boolean equals(Object obj) { + if (this == obj) + return true; + if (obj == null) + return false; + if (getClass() != obj.getClass()) + return false; + GenericDomain other = (GenericDomain) obj; + if (codigo == null) { + if (other.codigo != null) + return false; + } else if (!codigo.equals(other.codigo)) + return false; + return true; + } +} diff --git a/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Historico.java b/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Historico.java new file mode 100644 index 0000000..dafdaeb --- /dev/null +++ b/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Historico.java @@ -0,0 +1,49 @@ +package br.pro.delfino.drogaria.domain; + +import java.util.Date; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.JoinColumn; +import javax.persistence.ManyToOne; +import javax.persistence.Temporal; +import javax.persistence.TemporalType; + +@SuppressWarnings("serial") +@Entity +public class Historico extends GenericDomain { + @Column(nullable = false) + @Temporal(TemporalType.TIMESTAMP) + private Date horario; + + @Column(nullable = false, length = 500) + private String observacoes; + + @ManyToOne + @JoinColumn(nullable = false) + private Produto produto; + + public Date getHorario() { + return horario; + } + + public void setHorario(Date horario) { + this.horario = horario; + } + + public String getObservacoes() { + return observacoes; + } + + public void setObservacoes(String observacoes) { + this.observacoes = observacoes; + } + + public Produto getProduto() { + return produto; + } + + public void setProduto(Produto produto) { + this.produto = produto; + } +} diff --git a/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/ItemVenda.java b/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/ItemVenda.java new file mode 100644 index 0000000..590ab26 --- /dev/null +++ b/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/ItemVenda.java @@ -0,0 +1,58 @@ +package br.pro.delfino.drogaria.domain; + +import java.math.BigDecimal; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.JoinColumn; +import javax.persistence.ManyToOne; + +@SuppressWarnings("serial") +@Entity +public class ItemVenda extends GenericDomain { + @Column(nullable = false) + private Short quantidade; + + @Column(nullable = false, precision = 7, scale = 2) + private BigDecimal precoParcial; + + @ManyToOne + @JoinColumn(nullable = false) + private Produto produto; + + @ManyToOne + @JoinColumn(nullable = false) + private Venda venda; + + public Short getQuantidade() { + return quantidade; + } + + public void setQuantidade(Short quantidade) { + this.quantidade = quantidade; + } + + public BigDecimal getPrecoParcial() { + return precoParcial; + } + + public void setPrecoParcial(BigDecimal precoParcial) { + this.precoParcial = precoParcial; + } + + public Produto getProduto() { + return produto; + } + + public void setProduto(Produto produto) { + this.produto = produto; + } + + public Venda getVenda() { + return venda; + } + + public void setVenda(Venda venda) { + this.venda = venda; + } +} diff --git a/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Movimentacao.java b/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Movimentacao.java new file mode 100644 index 0000000..c3d6319 --- /dev/null +++ b/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Movimentacao.java @@ -0,0 +1,50 @@ +package br.pro.delfino.drogaria.domain; + +import java.math.BigDecimal; +import java.util.Date; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.JoinColumn; +import javax.persistence.ManyToOne; +import javax.persistence.Temporal; +import javax.persistence.TemporalType; + +@SuppressWarnings("serial") +@Entity +public class Movimentacao extends GenericDomain { + @Column(nullable = false) + @Temporal(TemporalType.TIMESTAMP) + private Date horario; + + @Column(nullable = false, precision = 7, scale = 2) + private BigDecimal valor; + + @ManyToOne + @JoinColumn(nullable = false) + private Caixa caixa; + + public Date getHorario() { + return horario; + } + + public void setHorario(Date horario) { + this.horario = horario; + } + + public BigDecimal getValor() { + return valor; + } + + public void setValor(BigDecimal valor) { + this.valor = valor; + } + + public Caixa getCaixa() { + return caixa; + } + + public void setCaixa(Caixa caixa) { + this.caixa = caixa; + } +} diff --git a/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Pessoa.java b/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Pessoa.java new file mode 100644 index 0000000..f354001 --- /dev/null +++ b/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Pessoa.java @@ -0,0 +1,143 @@ +package br.pro.delfino.drogaria.domain; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.JoinColumn; +import javax.persistence.ManyToOne; + +@SuppressWarnings("serial") +@Entity +public class Pessoa extends GenericDomain { + @Column(length = 50, nullable = false) + private String nome; + + @Column(length = 14, nullable = false) + private String cpf; + + @Column(length = 12, nullable = false) + private String rg; + + @Column(length = 100, nullable = false) + private String rua; + + @Column(nullable = false) + private Short numero; + + @Column(length = 30, nullable = false) + private String bairro; + + @Column(length = 10, nullable = false) + private String cep; + + @Column(length = 10) + private String complemento; + + @Column(length = 13, nullable = false) + private String telefone; + + @Column(length = 14, nullable = false) + private String celular; + + @Column(length = 100, nullable = false) + private String email; + + @ManyToOne + @JoinColumn(nullable = false) + private Cidade cidade; + + public String getNome() { + return nome; + } + + public void setNome(String nome) { + this.nome = nome; + } + + public String getCpf() { + return cpf; + } + + public void setCpf(String cpf) { + this.cpf = cpf; + } + + public String getRg() { + return rg; + } + + public void setRg(String rg) { + this.rg = rg; + } + + public String getRua() { + return rua; + } + + public void setRua(String rua) { + this.rua = rua; + } + + public Short getNumero() { + return numero; + } + + public void setNumero(Short numero) { + this.numero = numero; + } + + public String getBairro() { + return bairro; + } + + public void setBairro(String bairro) { + this.bairro = bairro; + } + + public String getCep() { + return cep; + } + + public void setCep(String cep) { + this.cep = cep; + } + + public String getComplemento() { + return complemento; + } + + public void setComplemento(String complemento) { + this.complemento = complemento; + } + + public String getTelefone() { + return telefone; + } + + public void setTelefone(String telefone) { + this.telefone = telefone; + } + + public String getCelular() { + return celular; + } + + public void setCelular(String celular) { + this.celular = celular; + } + + public String getEmail() { + return email; + } + + public void setEmail(String email) { + this.email = email; + } + + public Cidade getCidade() { + return cidade; + } + + public void setCidade(Cidade cidade) { + this.cidade = cidade; + } +} diff --git a/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Produto.java b/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Produto.java new file mode 100644 index 0000000..82049b0 --- /dev/null +++ b/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Produto.java @@ -0,0 +1,69 @@ +package br.pro.delfino.drogaria.domain; + +import java.math.BigDecimal; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.JoinColumn; +import javax.persistence.ManyToOne; +import javax.persistence.Transient; + +@SuppressWarnings("serial") +@Entity +public class Produto extends GenericDomain { + @Column(length = 80, nullable = false) + private String descricao; + + @Column(nullable = false) + private Short quantidade; + + @Column(nullable = false, precision = 6, scale = 2) + private BigDecimal preco; + + @ManyToOne + @JoinColumn(nullable = false) + private Fabricante fabricante; + + @Transient + private String caminho; + + public String getDescricao() { + return descricao; + } + + public void setDescricao(String descricao) { + this.descricao = descricao; + } + + public Short getQuantidade() { + return quantidade; + } + + public void setQuantidade(Short quantidade) { + this.quantidade = quantidade; + } + + public BigDecimal getPreco() { + return preco; + } + + public void setPreco(BigDecimal preco) { + this.preco = preco; + } + + public Fabricante getFabricante() { + return fabricante; + } + + public void setFabricante(Fabricante fabricante) { + this.fabricante = fabricante; + } + + public String getCaminho() { + return caminho; + } + + public void setCaminho(String caminho) { + this.caminho = caminho; + } +} diff --git a/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Usuario.java b/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Usuario.java new file mode 100644 index 0000000..ae51941 --- /dev/null +++ b/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Usuario.java @@ -0,0 +1,93 @@ +package br.pro.delfino.drogaria.domain; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.JoinColumn; +import javax.persistence.OneToOne; +import javax.persistence.Transient; + +@SuppressWarnings("serial") +@Entity +public class Usuario extends GenericDomain { + @Column(length = 32, nullable = false) + private String senha; + + @Transient + private String senhaSemCriptografia; + + @Column(nullable = false) + private Character tipo; + + @Column(nullable = false) + private Boolean ativo; + + @OneToOne + @JoinColumn(nullable = false) + private Pessoa pessoa; + + public String getSenha() { + return senha; + } + + public void setSenha(String senha) { + this.senha = senha; + } + + public String getSenhaSemCriptografia() { + return senhaSemCriptografia; + } + + public void setSenhaSemCriptografia(String senhaSemCriptografia) { + this.senhaSemCriptografia = senhaSemCriptografia; + } + + public Character getTipo() { + return tipo; + } + + @Transient + public String getTipoFormatado() { + String tipoFormatado = null; + + if (tipo == 'A') { + tipoFormatado = "Administrador"; + } else if (tipo == 'B') { + tipoFormatado = "Balconista"; + } else if (tipo == 'G') { + tipoFormatado = "Gerente"; + } + + return tipoFormatado; + } + + public void setTipo(Character tipo) { + this.tipo = tipo; + } + + public Boolean getAtivo() { + return ativo; + } + + @Transient + public String getAtivoFormatado(){ + String ativoFormatado = "Não"; + + if(ativo){ + ativoFormatado = "Sim"; + } + + return ativoFormatado; + } + + public void setAtivo(Boolean ativo) { + this.ativo = ativo; + } + + public Pessoa getPessoa() { + return pessoa; + } + + public void setPessoa(Pessoa pessoa) { + this.pessoa = pessoa; + } +} diff --git a/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Venda.java b/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Venda.java new file mode 100644 index 0000000..3f4c226 --- /dev/null +++ b/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Venda.java @@ -0,0 +1,61 @@ +package br.pro.delfino.drogaria.domain; + +import java.math.BigDecimal; +import java.util.Date; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.JoinColumn; +import javax.persistence.ManyToOne; +import javax.persistence.Temporal; +import javax.persistence.TemporalType; + +@SuppressWarnings("serial") +@Entity +public class Venda extends GenericDomain { + @Column(nullable = false) + @Temporal(TemporalType.TIMESTAMP) + private Date horario; + + @Column(nullable = false, precision = 7, scale = 2) + private BigDecimal precoTotal; + + @ManyToOne + private Cliente cliente; + + @ManyToOne + @JoinColumn(nullable = false) + private Funcionario funcionario; + + public Date getHorario() { + return horario; + } + + public void setHorario(Date horario) { + this.horario = horario; + } + + public BigDecimal getPrecoTotal() { + return precoTotal; + } + + public void setPrecoTotal(BigDecimal precoTotal) { + this.precoTotal = precoTotal; + } + + public Cliente getCliente() { + return cliente; + } + + public void setCliente(Cliente cliente) { + this.cliente = cliente; + } + + public Funcionario getFuncionario() { + return funcionario; + } + + public void setFuncionario(Funcionario funcionario) { + this.funcionario = funcionario; + } +} diff --git a/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/java/br/pro/delfino/drogaria/service/DrogariaService.java b/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/java/br/pro/delfino/drogaria/service/DrogariaService.java new file mode 100644 index 0000000..fbb1f2b --- /dev/null +++ b/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/java/br/pro/delfino/drogaria/service/DrogariaService.java @@ -0,0 +1,13 @@ +package br.pro.delfino.drogaria.service; + +import javax.ws.rs.GET; +import javax.ws.rs.Path; + +// http://localhost:8080/Drogaria/rest/drogaria +@Path("drogaria") +public class DrogariaService { + @GET + public String exibir(){ + return "Curso de Java"; + } +} diff --git a/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/java/br/pro/delfino/drogaria/service/FabricanteService.java b/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/java/br/pro/delfino/drogaria/service/FabricanteService.java new file mode 100644 index 0000000..1dbc0d1 --- /dev/null +++ b/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/java/br/pro/delfino/drogaria/service/FabricanteService.java @@ -0,0 +1,85 @@ +package br.pro.delfino.drogaria.service; + +import java.util.List; + +import javax.ws.rs.DELETE; +import javax.ws.rs.GET; +import javax.ws.rs.POST; +import javax.ws.rs.PUT; +import javax.ws.rs.Path; +import javax.ws.rs.PathParam; + +import com.google.gson.Gson; + +import br.pro.delfino.drogaria.dao.FabricanteDAO; +import br.pro.delfino.drogaria.domain.Fabricante; + +@Path("fabricante") +public class FabricanteService { + // http://127.0.0.1:8080/Drogaria/rest/fabricante + @GET + public String listar() { + FabricanteDAO fabricanteDAO = new FabricanteDAO(); + List fabricantes = fabricanteDAO.listar("descricao"); + + Gson gson = new Gson(); + String json = gson.toJson(fabricantes); + + return json; + } + + // http://127.0.0.1:8080/Drogaria/rest/fabricante/{codigo} + // http://127.0.0.1:8080/Drogaria/rest/fabricante/10 + @GET + @Path("{codigo}") + public String buscar(@PathParam("codigo") Long codigo) { + FabricanteDAO fabricanteDAO = new FabricanteDAO(); + Fabricante fabricante = fabricanteDAO.buscar(codigo); + + Gson gson = new Gson(); + String json = gson.toJson(fabricante); + + return json; + } + + // http://127.0.0.1:8080/Drogaria/rest/fabricante + @POST + public String salvar(String json) { + Gson gson = new Gson(); + Fabricante fabricante = gson.fromJson(json, Fabricante.class); + + FabricanteDAO fabricanteDAO = new FabricanteDAO(); + fabricanteDAO.merge(fabricante); + + String jsonSaida = gson.toJson(fabricante); + return jsonSaida; + } + + // http://127.0.0.1:8080/Drogaria/rest/fabricante + @PUT + public String editar(String json) { + Gson gson = new Gson(); + Fabricante fabricante = gson.fromJson(json, Fabricante.class); + + FabricanteDAO fabricanteDAO = new FabricanteDAO(); + fabricanteDAO.editar(fabricante); + + String jsonSaida = gson.toJson(fabricante); + return jsonSaida; + } + + // http://127.0.0.1:8080/Drogaria/rest/fabricante/{codigo} + // http://127.0.0.1:8080/Drogaria/rest/fabricante/10 + @DELETE + @Path("{codigo}") + public String excluir(@PathParam("codigo") Long codigo){ + FabricanteDAO fabricanteDAO = new FabricanteDAO(); + + Fabricante fabricante = fabricanteDAO.buscar(codigo); + fabricanteDAO.excluir(fabricante); + + Gson gson = new Gson(); + String saida = gson.toJson(fabricante); + return saida; + } +} diff --git a/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/java/br/pro/delfino/drogaria/service/ProdutoService.java b/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/java/br/pro/delfino/drogaria/service/ProdutoService.java new file mode 100644 index 0000000..4dfdf40 --- /dev/null +++ b/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/java/br/pro/delfino/drogaria/service/ProdutoService.java @@ -0,0 +1,39 @@ +package br.pro.delfino.drogaria.service; + +import java.util.List; + +import javax.ws.rs.GET; +import javax.ws.rs.POST; +import javax.ws.rs.Path; + +import com.google.gson.Gson; + +import br.pro.delfino.drogaria.dao.ProdutoDAO; +import br.pro.delfino.drogaria.domain.Produto; + +// http://127.0.0.1:8080/Drogaria/rest/produto +@Path("produto") +public class ProdutoService { + @GET + public String listar(){ + ProdutoDAO produtoDAO = new ProdutoDAO(); + List produtos = produtoDAO.listar("descricao"); + + Gson gson = new Gson(); + String json = gson.toJson(produtos); + + return json; + } + + @POST + public String salvar (String json){ + Gson gson = new Gson(); + Produto produto = gson.fromJson(json, Produto.class); + + ProdutoDAO produtoDAO = new ProdutoDAO(); + produto = produtoDAO.merge(produto); + + String jsonSaida = gson.toJson(produto); + return jsonSaida; + } +} diff --git a/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/java/br/pro/delfino/drogaria/util/DrogariaResourceConfig.java b/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/java/br/pro/delfino/drogaria/util/DrogariaResourceConfig.java new file mode 100644 index 0000000..2c997a9 --- /dev/null +++ b/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/java/br/pro/delfino/drogaria/util/DrogariaResourceConfig.java @@ -0,0 +1,13 @@ +package br.pro.delfino.drogaria.util; + +import javax.ws.rs.ApplicationPath; + +import org.glassfish.jersey.server.ResourceConfig; + +//http://localhost:8080/Drogaria/rest +@ApplicationPath("rest") +public class DrogariaResourceConfig extends ResourceConfig { + public DrogariaResourceConfig(){ + packages("br.pro.delfino.drogaria.service"); + } +} diff --git a/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/java/br/pro/delfino/drogaria/util/HibernateContexto.java b/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/java/br/pro/delfino/drogaria/util/HibernateContexto.java new file mode 100644 index 0000000..71869d7 --- /dev/null +++ b/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/java/br/pro/delfino/drogaria/util/HibernateContexto.java @@ -0,0 +1,18 @@ +package br.pro.delfino.drogaria.util; + +import javax.servlet.ServletContextEvent; +import javax.servlet.ServletContextListener; + +public class HibernateContexto implements ServletContextListener { + + @Override + public void contextDestroyed(ServletContextEvent event) { + HibernateUtil.getFabricaDeSessoes().close(); + } + + @Override + public void contextInitialized(ServletContextEvent event) { + HibernateUtil.getFabricaDeSessoes(); + } + +} diff --git a/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/java/br/pro/delfino/drogaria/util/HibernateUtil.java b/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/java/br/pro/delfino/drogaria/util/HibernateUtil.java new file mode 100644 index 0000000..693551b --- /dev/null +++ b/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/java/br/pro/delfino/drogaria/util/HibernateUtil.java @@ -0,0 +1,47 @@ +package br.pro.delfino.drogaria.util; + +import java.sql.Connection; +import java.sql.SQLException; + +import org.hibernate.Session; +import org.hibernate.SessionFactory; +import org.hibernate.boot.registry.StandardServiceRegistryBuilder; +import org.hibernate.cfg.Configuration; +import org.hibernate.jdbc.ReturningWork; +import org.hibernate.service.ServiceRegistry; + +public class HibernateUtil { + private static SessionFactory fabricaDeSessoes = criarFabricaDeSessoes(); + + public static SessionFactory getFabricaDeSessoes() { + return fabricaDeSessoes; + } + + public static Connection getConexao(){ + Session sessao = fabricaDeSessoes.openSession(); + + Connection conexao = sessao.doReturningWork(new ReturningWork() { + @Override + public Connection execute(Connection conn) throws SQLException { + return conn; + } + }); + + return conexao; + } + + private static SessionFactory criarFabricaDeSessoes() { + try { + Configuration configuracao = new Configuration().configure(); + + ServiceRegistry registro = new StandardServiceRegistryBuilder().applySettings(configuracao.getProperties()).build(); + + SessionFactory fabrica = configuracao.buildSessionFactory(registro); + + return fabrica; + } catch (Throwable ex) { + System.err.println("A fábrica de sessões não pode ser criada." + ex); + throw new ExceptionInInitializerError(ex); + } + } +} diff --git a/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/resources/hibernate.cfg.xml b/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/resources/hibernate.cfg.xml new file mode 100644 index 0000000..65f392e --- /dev/null +++ b/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/resources/hibernate.cfg.xml @@ -0,0 +1,51 @@ + + + + + + + + + + com.mysql.jdbc.Driver + jdbc:mysql://127.0.0.1:3306/drogaria + root + q1w2e3r4 + + + 1 + + + org.hibernate.dialect.MySQL5InnoDBDialect + + + thread + + + org.hibernate.cache.internal.NoCacheProvider + + + true + + + update + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/webapp/WEB-INF/springsecurity.taglib.xml b/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/webapp/WEB-INF/springsecurity.taglib.xml new file mode 100644 index 0000000..9d6938c --- /dev/null +++ b/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/webapp/WEB-INF/springsecurity.taglib.xml @@ -0,0 +1,32 @@ + + + + http://www.springframework.org/security/tags + + authorize + org.springframework.faces.security.FaceletsAuthorizeTagHandler + + + areAllGranted + org.springframework.faces.security.FaceletsAuthorizeTagUtils + boolean areAllGranted(java.lang.String) + + + areAnyGranted + org.springframework.faces.security.FaceletsAuthorizeTagUtils + boolean areAnyGranted(java.lang.String) + + + areNotGranted + org.springframework.faces.security.FaceletsAuthorizeTagUtils + boolean areNotGranted(java.lang.String) + + + isAllowed + org.springframework.faces.security.FaceletsAuthorizeTagUtils + boolean isAllowed(java.lang.String, + java.lang.String) + + \ No newline at end of file diff --git a/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/webapp/WEB-INF/web.xml b/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/webapp/WEB-INF/web.xml new file mode 100644 index 0000000..6b0cf5d --- /dev/null +++ b/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/webapp/WEB-INF/web.xml @@ -0,0 +1,48 @@ + + + + + Drogaria + + + + pages/principal.xhtml + + + + + javax.faces.PROJECT_STAGE + Development + + + + + primefaces.THEME + blitzer + + + + + primefaces.UPLOADER + native + + + + + Faces Servlet + javax.faces.webapp.FacesServlet + 1 + + + Faces Servlet + *.xhtml + + + + + br.pro.delfino.drogaria.util.HibernateContexto + + \ No newline at end of file diff --git a/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/webapp/pages/autenticacao.xhtml b/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/webapp/pages/autenticacao.xhtml new file mode 100644 index 0000000..e41a833 --- /dev/null +++ b/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/webapp/pages/autenticacao.xhtml @@ -0,0 +1,36 @@ + + + + + + Autenticação + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/webapp/pages/cidades.xhtml b/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/webapp/pages/cidades.xhtml new file mode 100644 index 0000000..504f3a3 --- /dev/null +++ b/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/webapp/pages/cidades.xhtml @@ -0,0 +1,100 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/webapp/pages/clientes.xhtml b/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/webapp/pages/clientes.xhtml new file mode 100644 index 0000000..4e3cfb5 --- /dev/null +++ b/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/webapp/pages/clientes.xhtml @@ -0,0 +1,94 @@ + + + + + + Clientes + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/webapp/pages/estados.xhtml b/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/webapp/pages/estados.xhtml new file mode 100644 index 0000000..1d441f1 --- /dev/null +++ b/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/webapp/pages/estados.xhtml @@ -0,0 +1,84 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/webapp/pages/fabricantes.xhtml b/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/webapp/pages/fabricantes.xhtml new file mode 100644 index 0000000..3904db0 --- /dev/null +++ b/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/webapp/pages/fabricantes.xhtml @@ -0,0 +1,78 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/webapp/pages/historico.xhtml b/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/webapp/pages/historico.xhtml new file mode 100644 index 0000000..184a864 --- /dev/null +++ b/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/webapp/pages/historico.xhtml @@ -0,0 +1,64 @@ + + + + + + Histórico + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/webapp/pages/pessoas.xhtml b/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/webapp/pages/pessoas.xhtml new file mode 100644 index 0000000..7d68e8c --- /dev/null +++ b/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/webapp/pages/pessoas.xhtml @@ -0,0 +1,162 @@ + + + + + + Pessoas + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/webapp/pages/principal.xhtml b/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/webapp/pages/principal.xhtml new file mode 100644 index 0000000..726842c --- /dev/null +++ b/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/webapp/pages/principal.xhtml @@ -0,0 +1,14 @@ + + + + + + + + + \ No newline at end of file diff --git a/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/webapp/pages/produtos.xhtml b/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/webapp/pages/produtos.xhtml new file mode 100644 index 0000000..56c5db4 --- /dev/null +++ b/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/webapp/pages/produtos.xhtml @@ -0,0 +1,141 @@ + + + + + + Produtos + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/webapp/pages/testeJSF.xhtml b/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/webapp/pages/testeJSF.xhtml new file mode 100644 index 0000000..c20659b --- /dev/null +++ b/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/webapp/pages/testeJSF.xhtml @@ -0,0 +1,12 @@ + + + + + + Teste JSF + + + + + \ No newline at end of file diff --git a/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/webapp/pages/testePrimeFaces.xhtml b/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/webapp/pages/testePrimeFaces.xhtml new file mode 100644 index 0000000..6c4d434 --- /dev/null +++ b/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/webapp/pages/testePrimeFaces.xhtml @@ -0,0 +1,14 @@ + + + + + + Teste PrimeFaces + + + + + \ No newline at end of file diff --git a/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/webapp/pages/usuarios.xhtml b/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/webapp/pages/usuarios.xhtml new file mode 100644 index 0000000..45dd761 --- /dev/null +++ b/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/webapp/pages/usuarios.xhtml @@ -0,0 +1,97 @@ + + + + + + Usuários + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/webapp/pages/vendas.xhtml b/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/webapp/pages/vendas.xhtml new file mode 100644 index 0000000..4485892 --- /dev/null +++ b/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/webapp/pages/vendas.xhtml @@ -0,0 +1,156 @@ + + + + + + Vendas + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/webapp/reports/estados.jasper b/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/webapp/reports/estados.jasper new file mode 100644 index 0000000..96a1278 Binary files /dev/null and b/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/webapp/reports/estados.jasper differ diff --git a/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/webapp/reports/estados.jrxml b/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/webapp/reports/estados.jrxml new file mode 100644 index 0000000..76da981 --- /dev/null +++ b/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/webapp/reports/estados.jrxml @@ -0,0 +1,102 @@ + + + + + + + + + + + + + + + + + + + + <band height="80" splitType="Stretch"> + <image hAlign="Center" vAlign="Middle"> + <reportElement x="0" y="0" width="555" height="80" uuid="6f3208e9-d291-48b3-b13d-3ec9ef72cd3e"> + <property name="com.jaspersoft.studio.unit.width" value="pixel"/> + </reportElement> + <imageExpression><![CDATA["C:/Programação Web com Java/Workspace/Drogaria/src/main/webapp/resources/images/banner.jpg"]]></imageExpression> + </image> + </band> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/webapp/reports/produtos.jasper b/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/webapp/reports/produtos.jasper new file mode 100644 index 0000000..ad55e5f Binary files /dev/null and b/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/webapp/reports/produtos.jasper differ diff --git a/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/webapp/reports/produtos.jrxml b/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/webapp/reports/produtos.jrxml new file mode 100644 index 0000000..800aed0 --- /dev/null +++ b/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/webapp/reports/produtos.jrxml @@ -0,0 +1,130 @@ + + + + + + + + + + + + + + + + + + + + + <band height="79" splitType="Stretch"> + <image hAlign="Center"> + <reportElement x="0" y="0" width="555" height="79" uuid="727feda0-73ba-4c27-aa2c-a431492bd3d6"> + <property name="com.jaspersoft.studio.unit.width" value="pixel"/> + </reportElement> + <imageExpression><![CDATA["C:/Programação Web com Java/Workspace/Drogaria/src/main/webapp/resources/images/banner.jpg"]]></imageExpression> + </image> + </band> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/webapp/resources/css/estilos.css b/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/webapp/resources/css/estilos.css new file mode 100644 index 0000000..4acdd7f --- /dev/null +++ b/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/webapp/resources/css/estilos.css @@ -0,0 +1,19 @@ +@CHARSET "UTF-8"; + +.imagemCentralizada { + display: block; + margin-left: auto; + margin-right: auto; +} + +.divTopo { + padding-bottom: 5px; +} + +.divCabecalho { + padding-bottom: 5px; +} + +.ui-widget, .ui-widget .ui-widget { + font-size: 100% !important; +} \ No newline at end of file diff --git a/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/webapp/resources/images/banner.jpg b/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/webapp/resources/images/banner.jpg new file mode 100644 index 0000000..f58cc21 Binary files /dev/null and b/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/webapp/resources/images/banner.jpg differ diff --git a/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/webapp/resources/js/scripts.js b/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/webapp/resources/js/scripts.js new file mode 100644 index 0000000..e39ad9b --- /dev/null +++ b/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/webapp/resources/js/scripts.js @@ -0,0 +1,26 @@ +PrimeFaces.locales['pt_BR'] = { + closeText: 'Fechar', + prevText: 'Anterior', + nextText: 'Próximo', + currentText: 'Começo', + monthNames: ['Janeiro','Fevereiro','Março','Abril','Maio','Junho','Julho','Agosto','Setembro','Outubro','Novembro','Dezembro'], + monthNamesShort: ['Jan','Fev','Mar','Abr','Mai','Jun', 'Jul','Ago','Set','Out','Nov','Dez'], + dayNames: ['Domingo','Segunda','Terça','Quarta','Quinta','Sexta','Sábado'], + dayNamesShort: ['Dom','Seg','Ter','Qua','Qui','Sex','Sáb'], + dayNamesMin: ['D','S','T','Q','Q','S','S'], + weekHeader: 'Semana', + firstDay: 0, + isRTL: false, + showMonthAfterYear: false, + yearSuffix: '', + timeOnlyTitle: 'Só Horas', + timeText: 'Tempo', + hourText: 'Hora', + minuteText: 'Minuto', + secondText: 'Segundo', + ampm: false, + month: 'Mês', + week: 'Semana', + day: 'Dia', + allDayText : 'Todo o Dia' +}; \ No newline at end of file diff --git a/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/webapp/templates/modelo.xhtml b/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/webapp/templates/modelo.xhtml new file mode 100644 index 0000000..62d3d1c --- /dev/null +++ b/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/webapp/templates/modelo.xhtml @@ -0,0 +1,55 @@ + + + + + + SiGDro + + + + + +
+
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+
+ \ No newline at end of file diff --git a/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/CaixaDAOTest.java b/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/CaixaDAOTest.java new file mode 100644 index 0000000..b5e6156 --- /dev/null +++ b/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/CaixaDAOTest.java @@ -0,0 +1,33 @@ +package br.pro.delfino.drogaria.dao; + +import java.math.BigDecimal; +import java.text.ParseException; +import java.text.SimpleDateFormat; + +import org.junit.Assert; +import org.junit.Ignore; +import org.junit.Test; + +import br.pro.delfino.drogaria.domain.Caixa; + +public class CaixaDAOTest { + @Test + @Ignore + public void salvar() throws ParseException { + Caixa caixa = new Caixa(); + caixa.setDataAbertura(new SimpleDateFormat("dd/MM/yyyy").parse("14/12/2015")); + caixa.setValorAbertura(new BigDecimal("100.00")); + + CaixaDAO caixaDAO = new CaixaDAO(); + caixaDAO.salvar(caixa); + } + + @Test + @Ignore + public void buscar() throws ParseException { + CaixaDAO caixaDAO = new CaixaDAO(); + Caixa caixa = caixaDAO.buscar(new SimpleDateFormat("dd/MM/yyyy").parse("13/12/2015")); + System.out.println(caixa); + Assert.assertNull(caixa); + } +} diff --git a/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/CidadeDAOTest.java b/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/CidadeDAOTest.java new file mode 100644 index 0000000..ec59599 --- /dev/null +++ b/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/CidadeDAOTest.java @@ -0,0 +1,130 @@ +package br.pro.delfino.drogaria.dao; + +import java.util.List; + +import org.junit.Ignore; +import org.junit.Test; + +import br.pro.delfino.drogaria.domain.Cidade; +import br.pro.delfino.drogaria.domain.Estado; + +public class CidadeDAOTest { + @Test + @Ignore + public void salvar() { + Long codigoEstado = 1L; + + EstadoDAO estadoDAO = new EstadoDAO(); + + Estado estado = estadoDAO.buscar(codigoEstado); + + Cidade cidade = new Cidade(); + cidade.setNome("Marília"); + cidade.setEstado(estado); + + CidadeDAO cidadeDAO = new CidadeDAO(); + cidadeDAO.salvar(cidade); + } + + @Test + @Ignore + public void listar() { + CidadeDAO cidadeDAO = new CidadeDAO(); + List resultado = cidadeDAO.listar(); + + for (Cidade cidade : resultado) { + System.out.println("Código da Cidade: " + cidade.getCodigo()); + System.out.println("Nome da Cidade: " + cidade.getNome()); + System.out.println("Código do Estado: " + cidade.getEstado().getCodigo()); + System.out.println("Sigla do Estado: " + cidade.getEstado().getSigla()); + System.out.println("Nome do Estado: " + cidade.getEstado().getNome()); + System.out.println(); + } + } + + @Test + @Ignore + public void buscar(){ + Long codigo = 7L; + + CidadeDAO cidadeDAO = new CidadeDAO(); + Cidade cidade = cidadeDAO.buscar(codigo); + + System.out.println("Código da Cidade: " + cidade.getCodigo()); + System.out.println("Nome da Cidade: " + cidade.getNome()); + System.out.println("Código do Estado: " + cidade.getEstado().getCodigo()); + System.out.println("Sigla do Estado: " + cidade.getEstado().getSigla()); + System.out.println("Nome do Estado: " + cidade.getEstado().getNome()); + } + + @Test + @Ignore + public void excluir(){ + Long codigo = 7L; + + CidadeDAO cidadeDAO = new CidadeDAO(); + Cidade cidade = cidadeDAO.buscar(codigo); + + cidadeDAO.excluir(cidade); + + System.out.println("Cidade Removida"); + System.out.println("Código da Cidade: " + cidade.getCodigo()); + System.out.println("Nome da Cidade: " + cidade.getNome()); + System.out.println("Código do Estado: " + cidade.getEstado().getCodigo()); + System.out.println("Sigla do Estado: " + cidade.getEstado().getSigla()); + System.out.println("Nome do Estado: " + cidade.getEstado().getNome()); + } + + @Test + @Ignore + public void editar(){ + Long codigoCidade = 6L; + Long codigoEstado = 11L; + + EstadoDAO estadoDAO = new EstadoDAO(); + Estado estado = estadoDAO.buscar(codigoEstado); + + System.out.println("Código do Estado: " + estado.getCodigo()); + System.out.println("Sigla do Estado: " + estado.getSigla()); + System.out.println("Nome do Estado: " + estado.getNome()); + + CidadeDAO cidadeDAO = new CidadeDAO(); + Cidade cidade = cidadeDAO.buscar(codigoCidade); + + System.out.println("Cidade A Ser Editada"); + System.out.println("Código da Cidade: " + cidade.getCodigo()); + System.out.println("Nome da Cidade: " + cidade.getNome()); + System.out.println("Código do Estado: " + cidade.getEstado().getCodigo()); + System.out.println("Sigla do Estado: " + cidade.getEstado().getSigla()); + System.out.println("Nome do Estado: " + cidade.getEstado().getNome()); + + cidade.setNome("Guarapuava"); + cidade.setEstado(estado); + + cidadeDAO.editar(cidade); + + System.out.println("Cidade Editada"); + System.out.println("Código da Cidade: " + cidade.getCodigo()); + System.out.println("Nome da Cidade: " + cidade.getNome()); + System.out.println("Código do Estado: " + cidade.getEstado().getCodigo()); + System.out.println("Sigla do Estado: " + cidade.getEstado().getSigla()); + System.out.println("Nome do Estado: " + cidade.getEstado().getNome()); + } + + @Test + public void buscarPorEstado() { + Long estadoCodigo = 3L; + + CidadeDAO cidadeDAO = new CidadeDAO(); + List resultado = cidadeDAO.buscarPorEstado(estadoCodigo); + + for (Cidade cidade : resultado) { + System.out.println("Código da Cidade: " + cidade.getCodigo()); + System.out.println("Nome da Cidade: " + cidade.getNome()); + System.out.println("Código do Estado: " + cidade.getEstado().getCodigo()); + System.out.println("Sigla do Estado: " + cidade.getEstado().getSigla()); + System.out.println("Nome do Estado: " + cidade.getEstado().getNome()); + System.out.println(); + } + } +} diff --git a/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/ClienteDAOTest.java b/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/ClienteDAOTest.java new file mode 100644 index 0000000..4d557d9 --- /dev/null +++ b/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/ClienteDAOTest.java @@ -0,0 +1,29 @@ +package br.pro.delfino.drogaria.dao; + +import java.text.ParseException; +import java.text.SimpleDateFormat; + +import org.junit.Ignore; +import org.junit.Test; + +import br.pro.delfino.drogaria.domain.Cliente; +import br.pro.delfino.drogaria.domain.Pessoa; + +public class ClienteDAOTest { + @Test + @Ignore + public void salvar() throws ParseException { + PessoaDAO pessoaDAO = new PessoaDAO(); + Pessoa pessoa = pessoaDAO.buscar(2L); + + Cliente cliente = new Cliente(); + cliente.setDataCadastro(new SimpleDateFormat("dd/MM/yyyy").parse("09/06/2015")); + cliente.setLiberado(false); + cliente.setPessoa(pessoa); + + ClienteDAO clienteDAO = new ClienteDAO(); + clienteDAO.salvar(cliente); + + System.out.println("Cliente salvo com sucesso."); + } +} diff --git a/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/EstadoDAOTest.java b/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/EstadoDAOTest.java new file mode 100644 index 0000000..f84a086 --- /dev/null +++ b/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/EstadoDAOTest.java @@ -0,0 +1,88 @@ +package br.pro.delfino.drogaria.dao; + +import java.util.List; + +import org.junit.Ignore; +import org.junit.Test; + +import br.pro.delfino.drogaria.domain.Estado; + +public class EstadoDAOTest { + @Test + @Ignore + public void salvar() { + Estado estado = new Estado(); + estado.setNome("Rio Grande do Sul"); + estado.setSigla("RS"); + + EstadoDAO estadoDAO = new EstadoDAO(); + estadoDAO.salvar(estado); + } + + @Test + @Ignore + public void listar() { + EstadoDAO estadoDAO = new EstadoDAO(); + List resultado = estadoDAO.listar(); + + System.out.println("Total de Registros Encontrados: " + resultado.size()); + + for (Estado estado : resultado) { + System.out.println(estado.getCodigo() + " - " + estado.getSigla() + " - " + estado.getNome()); + } + } + + @Test + @Ignore + public void buscar(){ + Long codigo = 3L; + + EstadoDAO estadoDAO = new EstadoDAO(); + Estado estado = estadoDAO.buscar(codigo); + + if(estado == null){ + System.out.println("Nenhum registro encontrado"); + }else{ + System.out.println("Registro encontrado:"); + System.out.println(estado.getCodigo() + " - " + estado.getSigla() + " - " + estado.getNome()); + } + } + + @Test + @Ignore + public void excluir(){ + Long codigo = 1L; + EstadoDAO estadoDAO = new EstadoDAO(); + Estado estado = estadoDAO.buscar(codigo); + + if(estado == null){ + System.out.println("Nenhum registro encontrado"); + }else{ + estadoDAO.excluir(estado); + System.out.println("Registro removido:"); + System.out.println(estado.getCodigo() + " - " + estado.getSigla() + " - " + estado.getNome()); + } + } + + @Test + @Ignore + public void editar(){ + Long codigo = 10L; + EstadoDAO estadoDAO = new EstadoDAO(); + Estado estado = estadoDAO.buscar(codigo); + + if(estado == null){ + System.out.println("Nenhum registro encontrado"); + }else{ + System.out.println("Registro editado - Antes:"); + System.out.println(estado.getCodigo() + " - " + estado.getSigla() + " - " + estado.getNome()); + + estado.setNome("Santa Catarina"); + estado.setSigla("SC"); + estadoDAO.editar(estado); + + System.out.println("Registro editado - Depois:"); + System.out.println(estado.getCodigo() + " - " + estado.getSigla() + " - " + estado.getNome()); + } + } +} diff --git a/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/FabricanteDAOTest.java b/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/FabricanteDAOTest.java new file mode 100644 index 0000000..56fb124 --- /dev/null +++ b/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/FabricanteDAOTest.java @@ -0,0 +1,63 @@ +package br.pro.delfino.drogaria.dao; + +import java.util.List; + +import org.junit.Ignore; +import org.junit.Test; + +import br.pro.delfino.drogaria.domain.Fabricante; + +public class FabricanteDAOTest { + @Test + @Ignore + public void salvar() { + Fabricante fabricante = new Fabricante(); + fabricante.setDescricao("Aché"); + + FabricanteDAO fabricanteDAO = new FabricanteDAO(); + fabricanteDAO.salvar(fabricante); + } + + @Test + @Ignore + public void listar() { + FabricanteDAO FabricanteDAO = new FabricanteDAO(); + List resultado = FabricanteDAO.listar(); + + System.out.println("Total de Registros Encontrados: " + resultado.size()); + + for (Fabricante fabricante : resultado) { + System.out.println(fabricante.getCodigo() + " - " + fabricante.getDescricao()); + } + } + + @Test + @Ignore + public void buscar(){ + Long codigo = 3L; + + FabricanteDAO fabricanteDAO = new FabricanteDAO(); + Fabricante fabricante = fabricanteDAO.buscar(codigo); + + if(fabricante == null){ + System.out.println("Nenhum registro encontrado"); + }else{ + System.out.println("Registro encontrado:"); + System.out.println(fabricante.getCodigo() + " - " + fabricante.getDescricao()); + } + } + + @Test + @Ignore + public void merge() { + //Fabricante fabricante = new Fabricante(); + //fabricante.setDescricao("Fabricante A"); + //FabricanteDAO fabricanteDAO = new FabricanteDAO(); + //fabricanteDAO.merge(fabricante); + + FabricanteDAO fabricanteDAO = new FabricanteDAO(); + Fabricante fabricante = fabricanteDAO.buscar(5L); + fabricante.setDescricao("Fabricante B"); + fabricanteDAO.merge(fabricante); + } +} diff --git a/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/FuncionarioDAOTest.java b/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/FuncionarioDAOTest.java new file mode 100644 index 0000000..06cfff7 --- /dev/null +++ b/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/FuncionarioDAOTest.java @@ -0,0 +1,5 @@ +package br.pro.delfino.drogaria.dao; + +public class FuncionarioDAOTest { + +} diff --git a/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/ProdutoDAOTest.java b/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/ProdutoDAOTest.java new file mode 100644 index 0000000..36f8563 --- /dev/null +++ b/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/ProdutoDAOTest.java @@ -0,0 +1,29 @@ +package br.pro.delfino.drogaria.dao; + +import java.math.BigDecimal; + +import org.junit.Ignore; +import org.junit.Test; + +import br.pro.delfino.drogaria.domain.Fabricante; +import br.pro.delfino.drogaria.domain.Produto; + +public class ProdutoDAOTest { + @Test + @Ignore + public void salvar(){ + FabricanteDAO fabricanteDAO = new FabricanteDAO(); + Fabricante fabricante = fabricanteDAO.buscar(new Long("3")); + + Produto produto = new Produto(); + produto.setDescricao("Cataflan 50mg com 20 Comprimidos"); + produto.setFabricante(fabricante); + produto.setPreco(new BigDecimal("13.70")); + produto.setQuantidade(new Short("7")); + + ProdutoDAO produtoDAO = new ProdutoDAO(); + produtoDAO.salvar(produto); + + System.out.println("Produto salvo com sucesso"); + } +} diff --git a/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/UsuarioDAOTest.java b/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/UsuarioDAOTest.java new file mode 100644 index 0000000..c567ec8 --- /dev/null +++ b/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/UsuarioDAOTest.java @@ -0,0 +1,47 @@ +package br.pro.delfino.drogaria.dao; + +import org.apache.shiro.crypto.hash.SimpleHash; +import org.junit.Ignore; +import org.junit.Test; + +import br.pro.delfino.drogaria.domain.Pessoa; +import br.pro.delfino.drogaria.domain.Usuario; + +public class UsuarioDAOTest { + @Test + @Ignore + public void salvar(){ + PessoaDAO pessoaDAO = new PessoaDAO(); + Pessoa pessoa = pessoaDAO.buscar(3L); + + System.out.println("Pessoa Encontrada"); + System.out.println("Nome: " + pessoa.getNome()); + System.out.println("CPF: " + pessoa.getCpf()); + + Usuario usuario = new Usuario(); + usuario.setAtivo(true); + usuario.setPessoa(pessoa); + usuario.setSenhaSemCriptografia("q1w2e3r4"); + + SimpleHash hash = new SimpleHash("md5", usuario.getSenhaSemCriptografia()); + usuario.setSenha(hash.toHex()); + + usuario.setTipo('B'); + + UsuarioDAO usuarioDAO = new UsuarioDAO(); + usuarioDAO.salvar(usuario); + + System.out.println("Usuário salvo com sucesso."); + } + + @Test + public void autenticar(){ + String cpf = "999.999.999-99"; + String senha = "12345678"; + + UsuarioDAO usuarioDAO = new UsuarioDAO(); + Usuario usuario = usuarioDAO.autenticar(cpf, senha); + + System.out.println("Usuário autentica: " + usuario); + } +} diff --git a/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/test/java/br/pro/delfino/drogaria/util/HibernateUtilTest.java b/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/test/java/br/pro/delfino/drogaria/util/HibernateUtilTest.java new file mode 100644 index 0000000..75776e0 --- /dev/null +++ b/284_Autenticacao_ManagedBean_Parte2/Drogaria/src/test/java/br/pro/delfino/drogaria/util/HibernateUtilTest.java @@ -0,0 +1,13 @@ +package br.pro.delfino.drogaria.util; + +import org.hibernate.Session; +import org.junit.Test; + +public class HibernateUtilTest { + @Test + public void conectar(){ + Session sessao = HibernateUtil.getFabricaDeSessoes().openSession(); + sessao.close(); + HibernateUtil.getFabricaDeSessoes().close(); + } +} diff --git a/285_ViewAction/Drogaria/.tern-project b/285_ViewAction/Drogaria/.tern-project new file mode 100644 index 0000000..b6f48dd --- /dev/null +++ b/285_ViewAction/Drogaria/.tern-project @@ -0,0 +1 @@ +{"ide":{},"libs":["ecma5","browser"],"plugins":{"guess-types":{},"angular":{}}} \ No newline at end of file diff --git a/285_ViewAction/Drogaria/pom.xml b/285_ViewAction/Drogaria/pom.xml new file mode 100644 index 0000000..39b1e60 --- /dev/null +++ b/285_ViewAction/Drogaria/pom.xml @@ -0,0 +1,132 @@ + + 4.0.0 + br.pro.delfino.drogaria + Drogaria + 1.0 + war + + + + UTF-8 + + + + + + Drogaria + + + + + + org.apache.maven.plugins + maven-compiler-plugin + 3.3 + + 1.8 + 1.8 + + + + + + + + + + prime-repo + PrimeFaces Maven Repository + http://repository.primefaces.org + default + + + + + + + + org.hibernate + hibernate-core + 4.3.11.Final + + + + + mysql + mysql-connector-java + 5.1.36 + + + + + junit + junit + 4.12 + + + + + org.glassfish + javax.faces + 2.2.12 + + + + + org.primefaces + primefaces + 5.2 + + + + + org.primefaces.themes + all-themes + 1.0.10 + + + + + org.omnifaces + omnifaces + 1.11 + + + + + javax.servlet + javax.servlet-api + 3.1.0 + + + + + org.glassfish.jersey.containers + jersey-container-servlet + 2.22.1 + + + + + com.google.code.gson + gson + 2.4 + + + + + net.sf.jasperreports + jasperreports + 6.1.1 + + + + + org.apache.shiro + shiro-core + 1.2.4 + + + + \ No newline at end of file diff --git a/285_ViewAction/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/AutenticacaoBean.java b/285_ViewAction/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/AutenticacaoBean.java new file mode 100644 index 0000000..7e86b0d --- /dev/null +++ b/285_ViewAction/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/AutenticacaoBean.java @@ -0,0 +1,60 @@ +package br.pro.delfino.drogaria.bean; + +import java.io.IOException; + +import javax.annotation.PostConstruct; +import javax.faces.bean.ManagedBean; +import javax.faces.bean.SessionScoped; + +import org.omnifaces.util.Faces; +import org.omnifaces.util.Messages; + +import br.pro.delfino.drogaria.dao.UsuarioDAO; +import br.pro.delfino.drogaria.domain.Pessoa; +import br.pro.delfino.drogaria.domain.Usuario; + +@ManagedBean +@SessionScoped +public class AutenticacaoBean { + private Usuario usuario; + private Usuario usuarioLogado; + + public Usuario getUsuario() { + return usuario; + } + + public void setUsuario(Usuario usuario) { + this.usuario = usuario; + } + + public Usuario getUsuarioLogado() { + return usuarioLogado; + } + + public void setUsuarioLogado(Usuario usuarioLogado) { + this.usuarioLogado = usuarioLogado; + } + + @PostConstruct + public void iniciar() { + usuario = new Usuario(); + usuario.setPessoa(new Pessoa()); + } + + public void autenticar() { + try { + UsuarioDAO usuarioDAO = new UsuarioDAO(); + usuarioLogado = usuarioDAO.autenticar(usuario.getPessoa().getCpf(), usuario.getSenha()); + + if(usuarioLogado == null){ + Messages.addGlobalError("CPF e/ou senha incorretos"); + return; + } + + Faces.redirect("./pages/principal.xhtml"); + } catch (IOException erro) { + erro.printStackTrace(); + Messages.addGlobalError(erro.getMessage()); + } + } +} diff --git a/285_ViewAction/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/CidadeBean.java b/285_ViewAction/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/CidadeBean.java new file mode 100644 index 0000000..4b03075 --- /dev/null +++ b/285_ViewAction/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/CidadeBean.java @@ -0,0 +1,119 @@ +package br.pro.delfino.drogaria.bean; + +import java.io.Serializable; +import java.util.List; + +import javax.annotation.PostConstruct; +import javax.faces.bean.ManagedBean; +import javax.faces.bean.ViewScoped; +import javax.faces.event.ActionEvent; + +import org.omnifaces.util.Messages; + +import br.pro.delfino.drogaria.dao.CidadeDAO; +import br.pro.delfino.drogaria.dao.EstadoDAO; +import br.pro.delfino.drogaria.domain.Cidade; +import br.pro.delfino.drogaria.domain.Estado; + +@SuppressWarnings("serial") +@ManagedBean +@ViewScoped +public class CidadeBean implements Serializable { + private Cidade cidade; + private List cidades; + private List estados; + + public Cidade getCidade() { + return cidade; + } + + public void setCidade(Cidade cidade) { + this.cidade = cidade; + } + + public List getCidades() { + return cidades; + } + + public void setCidades(List cidades) { + this.cidades = cidades; + } + + public List getEstados() { + return estados; + } + + public void setEstados(List estados) { + this.estados = estados; + } + + @PostConstruct + public void listar() { + try { + CidadeDAO cidadeDAO = new CidadeDAO(); + cidades = cidadeDAO.listar("nome"); + } catch (RuntimeException erro) { + Messages.addFlashGlobalError("Ocorreu um erro ao tentar listar as cidades"); + erro.printStackTrace(); + } + } + + public void novo() { + try { + cidade = new Cidade(); + + EstadoDAO estadoDAO = new EstadoDAO(); + estados = estadoDAO.listar("nome"); + } catch (RuntimeException erro) { + Messages.addFlashGlobalError("Ocorreu um erro ao gerar uma nova cidade"); + erro.printStackTrace(); + } + } + + public void salvar() { + try { + CidadeDAO cidadeDAO = new CidadeDAO(); + cidadeDAO.merge(cidade); + + cidade = new Cidade(); + + EstadoDAO estadoDAO = new EstadoDAO(); + estados = estadoDAO.listar(); + + cidades = cidadeDAO.listar(); + + Messages.addGlobalInfo("Cidade salva com sucesso"); + } catch (RuntimeException erro) { + Messages.addFlashGlobalError("Ocorreu um erro ao tentar salvar uma nova cidade"); + erro.printStackTrace(); + } + } + + public void excluir(ActionEvent evento) { + try { + cidade = (Cidade) evento.getComponent().getAttributes().get("cidadeSelecionada"); + + CidadeDAO cidadeDAO = new CidadeDAO(); + cidadeDAO.excluir(cidade); + + cidades = cidadeDAO.listar(); + + Messages.addGlobalInfo("Cidade removida com sucesso"); + } catch (RuntimeException erro) { + Messages.addFlashGlobalError("Ocorreu um erro ao tentar remover a cidade"); + erro.printStackTrace(); + } + } + + public void editar(ActionEvent evento){ + try { + cidade = (Cidade) evento.getComponent().getAttributes().get("cidadeSelecionada"); + + EstadoDAO estadoDAO = new EstadoDAO(); + estados = estadoDAO.listar(); + } catch (RuntimeException erro) { + Messages.addFlashGlobalError("Ocorreu um erro ao tentar selecionar uma cidade"); + erro.printStackTrace(); + } + } +} diff --git a/285_ViewAction/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/ClienteBean.java b/285_ViewAction/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/ClienteBean.java new file mode 100644 index 0000000..c96b115 --- /dev/null +++ b/285_ViewAction/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/ClienteBean.java @@ -0,0 +1,91 @@ +package br.pro.delfino.drogaria.bean; + +import java.io.Serializable; +import java.util.List; + +import javax.annotation.PostConstruct; +import javax.faces.bean.ManagedBean; +import javax.faces.bean.ViewScoped; + +import org.omnifaces.util.Messages; + +import br.pro.delfino.drogaria.dao.ClienteDAO; +import br.pro.delfino.drogaria.dao.PessoaDAO; +import br.pro.delfino.drogaria.domain.Cliente; +import br.pro.delfino.drogaria.domain.Pessoa; + +@SuppressWarnings("serial") +@ManagedBean +@ViewScoped +public class ClienteBean implements Serializable { + private Cliente cliente; + + private List clientes; + private List pessoas; + + public Cliente getCliente() { + return cliente; + } + + public void setCliente(Cliente cliente) { + this.cliente = cliente; + } + + public List getClientes() { + return clientes; + } + + public void setClientes(List clientes) { + this.clientes = clientes; + } + + public List getPessoas() { + return pessoas; + } + + public void setPessoas(List pessoas) { + this.pessoas = pessoas; + } + + @PostConstruct + public void listar() { + try { + ClienteDAO clienteDAO = new ClienteDAO(); + clientes = clienteDAO.listar("dataCadastro"); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar listar os clientes"); + erro.printStackTrace(); + } + } + + public void novo() { + try { + cliente = new Cliente(); + + PessoaDAO pessoaDAO = new PessoaDAO(); + pessoas = pessoaDAO.listar("nome"); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar criar um novo cliente"); + erro.printStackTrace(); + } + } + + public void salvar() { + try { + ClienteDAO clienteDAO = new ClienteDAO(); + clienteDAO.merge(cliente); + + cliente = new Cliente(); + + clientes = clienteDAO.listar("dataCadastro"); + + PessoaDAO pessoaDAO = new PessoaDAO(); + pessoas = pessoaDAO.listar("nome"); + + Messages.addGlobalInfo("Cliente salvo com sucesso"); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar salvar o cliente"); + erro.printStackTrace(); + } + } +} diff --git a/285_ViewAction/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/EstadoBean.java b/285_ViewAction/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/EstadoBean.java new file mode 100644 index 0000000..b4921fe --- /dev/null +++ b/285_ViewAction/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/EstadoBean.java @@ -0,0 +1,88 @@ +package br.pro.delfino.drogaria.bean; + +import java.io.Serializable; +import java.util.List; + +import javax.annotation.PostConstruct; +import javax.faces.bean.ManagedBean; +import javax.faces.bean.ViewScoped; +import javax.faces.event.ActionEvent; + +import org.omnifaces.util.Messages; + +import br.pro.delfino.drogaria.dao.EstadoDAO; +import br.pro.delfino.drogaria.domain.Estado; + +@SuppressWarnings("serial") +@ManagedBean +@ViewScoped +public class EstadoBean implements Serializable { + private Estado estado; + private List estados; + + public Estado getEstado() { + return estado; + } + + public void setEstado(Estado estado) { + this.estado = estado; + } + + public List getEstados() { + return estados; + } + + public void setEstados(List estados) { + this.estados = estados; + } + + @PostConstruct + public void listar() { + try { + EstadoDAO estadoDAO = new EstadoDAO(); + estados = estadoDAO.listar(); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar listar os estados"); + erro.printStackTrace(); + } + } + + public void novo() { + estado = new Estado(); + } + + public void salvar() { + try { + EstadoDAO estadoDAO = new EstadoDAO(); + estadoDAO.merge(estado); + + estado = new Estado(); + estados = estadoDAO.listar(); + + Messages.addGlobalInfo("Estado salvo com sucesso"); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar salvar o estado"); + erro.printStackTrace(); + } + } + + public void excluir(ActionEvent evento) { + try { + estado = (Estado) evento.getComponent().getAttributes().get("estadoSelecionado"); + + EstadoDAO estadoDAO = new EstadoDAO(); + estadoDAO.excluir(estado); + + estados = estadoDAO.listar(); + + Messages.addGlobalInfo("Estado removido com sucesso"); + } catch (RuntimeException erro) { + Messages.addFlashGlobalError("Ocorreu um erro ao tentar remover o estado"); + erro.printStackTrace(); + } + } + + public void editar(ActionEvent evento) { + estado = (Estado) evento.getComponent().getAttributes().get("estadoSelecionado"); + } +} diff --git a/285_ViewAction/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/FabricanteBean.java b/285_ViewAction/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/FabricanteBean.java new file mode 100644 index 0000000..7fddf7d --- /dev/null +++ b/285_ViewAction/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/FabricanteBean.java @@ -0,0 +1,116 @@ +package br.pro.delfino.drogaria.bean; + +import java.io.Serializable; +import java.util.Arrays; +import java.util.List; + +import javax.annotation.PostConstruct; +import javax.faces.bean.ManagedBean; +import javax.faces.bean.ViewScoped; +import javax.faces.event.ActionEvent; +import javax.ws.rs.client.Client; +import javax.ws.rs.client.ClientBuilder; +import javax.ws.rs.client.Entity; +import javax.ws.rs.client.WebTarget; + +import org.omnifaces.util.Messages; + +import com.google.gson.Gson; + +import br.pro.delfino.drogaria.domain.Fabricante; + +@SuppressWarnings("serial") +@ManagedBean +@ViewScoped +public class FabricanteBean implements Serializable { + private Fabricante fabricante; + private List fabricantes; + + public Fabricante getFabricante() { + return fabricante; + } + + public void setFabricante(Fabricante fabricante) { + this.fabricante = fabricante; + } + + public List getFabricantes() { + return fabricantes; + } + + public void setFabricantes(List fabricantes) { + this.fabricantes = fabricantes; + } + + @PostConstruct + public void listar() { + try { + Client cliente = ClientBuilder.newClient(); + WebTarget caminho = cliente.target("http://127.0.0.1:8080/Drogaria/rest/fabricante"); + String json = caminho.request().get(String.class); + + Gson gson = new Gson(); + Fabricante[] vetor = gson.fromJson(json, Fabricante[].class); + + fabricantes = Arrays.asList(vetor); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar listar os fabricantes"); + erro.printStackTrace(); + } + } + + public void novo() { + fabricante = new Fabricante(); + } + + public void salvar() { + try { + Client cliente = ClientBuilder.newClient(); + WebTarget caminho = cliente.target("http://127.0.0.1:8080/Drogaria/rest/fabricante"); + + Gson gson = new Gson(); + + String json = gson.toJson(fabricante); + caminho.request().post(Entity.json(json)); + + fabricante = new Fabricante(); + + json = caminho.request().get(String.class); + Fabricante[] vetor = gson.fromJson(json, Fabricante[].class); + fabricantes = Arrays.asList(vetor); + + Messages.addGlobalInfo("Fabricante salvo com sucesso"); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar salvar o fabricante"); + erro.printStackTrace(); + } + } + + public void excluir(ActionEvent evento) { + try { + fabricante = (Fabricante) evento.getComponent().getAttributes().get("fabricanteSelecionado"); + + Client cliente = ClientBuilder.newClient(); + + WebTarget caminho = cliente.target("http://127.0.0.1:8080/Drogaria/rest/fabricante"); + WebTarget caminhoExcluir = caminho.path("{codigo}").resolveTemplate("codigo", fabricante.getCodigo()); + + caminhoExcluir.request().delete(); + String json = caminho.request().get(String.class); + + Gson gson = new Gson(); + Fabricante[] vetor = gson.fromJson(json, Fabricante[].class); + + fabricantes = Arrays.asList(vetor); + + Messages.addGlobalInfo("Fabricante removido com sucesso"); + } catch (RuntimeException erro) { + Messages.addFlashGlobalError("Ocorreu um erro ao tentar remover o fabricante"); + erro.printStackTrace(); + } + } + + public void editar(ActionEvent evento) { + fabricante = (Fabricante) evento.getComponent().getAttributes().get("fabricanteSelecionado"); + } +} diff --git a/285_ViewAction/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/HistoricoBean.java b/285_ViewAction/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/HistoricoBean.java new file mode 100644 index 0000000..a042b04 --- /dev/null +++ b/285_ViewAction/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/HistoricoBean.java @@ -0,0 +1,89 @@ +package br.pro.delfino.drogaria.bean; + +import java.io.Serializable; +import java.util.Date; + +import javax.annotation.PostConstruct; +import javax.faces.bean.ManagedBean; +import javax.faces.bean.ViewScoped; + +import org.omnifaces.util.Messages; + +import br.pro.delfino.drogaria.dao.HistoricoDAO; +import br.pro.delfino.drogaria.dao.ProdutoDAO; +import br.pro.delfino.drogaria.domain.Historico; +import br.pro.delfino.drogaria.domain.Produto; + +@SuppressWarnings("serial") +@ManagedBean +@ViewScoped +public class HistoricoBean implements Serializable { + private Produto produto; + private Boolean exibePainelDados; + + private Historico historico; + + public Produto getProduto() { + return produto; + } + + public void setProduto(Produto produto) { + this.produto = produto; + } + + public Boolean getExibePainelDados() { + return exibePainelDados; + } + + public void setExibePainelDados(Boolean exibePainelDados) { + this.exibePainelDados = exibePainelDados; + } + + public Historico getHistorico() { + return historico; + } + + public void setHistorico(Historico historico) { + this.historico = historico; + } + + @PostConstruct + public void novo() { + historico = new Historico(); + produto = new Produto(); + exibePainelDados = false; + } + + public void buscar() { + try { + ProdutoDAO produtoDAO = new ProdutoDAO(); + Produto resultado = produtoDAO.buscar(produto.getCodigo()); + + if (resultado == null) { + exibePainelDados = false; + Messages.addGlobalWarn("Não existe produto cadastrado para o código informado"); + } else { + exibePainelDados = true; + produto = resultado; + } + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar buscar o produto"); + erro.printStackTrace(); + } + } + + public void salvar() { + try { + historico.setHorario(new Date()); + historico.setProduto(produto); + + HistoricoDAO historicoDAO = new HistoricoDAO(); + historicoDAO.salvar(historico); + + Messages.addGlobalInfo("Histórico salvo com sucesso"); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar salvar o histórico"); + erro.printStackTrace(); + } + } +} diff --git a/285_ViewAction/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/ImagemBean.java b/285_ViewAction/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/ImagemBean.java new file mode 100644 index 0000000..eb963a8 --- /dev/null +++ b/285_ViewAction/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/ImagemBean.java @@ -0,0 +1,48 @@ +package br.pro.delfino.drogaria.bean; + +import java.io.IOException; +import java.io.InputStream; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; + +import javax.faces.bean.ManagedBean; +import javax.faces.bean.ManagedProperty; +import javax.faces.bean.RequestScoped; + +import org.primefaces.model.DefaultStreamedContent; +import org.primefaces.model.StreamedContent; + +@ManagedBean +@RequestScoped +public class ImagemBean { + @ManagedProperty("#{param.caminho}") + private String caminho; + + private StreamedContent foto; + + public String getCaminho() { + return caminho; + } + + public void setCaminho(String caminho) { + this.caminho = caminho; + } + + public StreamedContent getFoto() throws IOException { + if(caminho == null || caminho.isEmpty()){ + Path path = Paths.get("C:/Programação Web com Java/Uploads/branco.png"); + InputStream stream = Files.newInputStream(path); + foto = new DefaultStreamedContent(stream); + }else{ + Path path = Paths.get(caminho); + InputStream stream = Files.newInputStream(path); + foto = new DefaultStreamedContent(stream); + } + return foto; + } + + public void setFoto(StreamedContent foto) { + this.foto = foto; + } +} diff --git a/285_ViewAction/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/PessoaBean.java b/285_ViewAction/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/PessoaBean.java new file mode 100644 index 0000000..931edf7 --- /dev/null +++ b/285_ViewAction/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/PessoaBean.java @@ -0,0 +1,156 @@ +package br.pro.delfino.drogaria.bean; + +import java.io.Serializable; +import java.util.ArrayList; +import java.util.List; + +import javax.annotation.PostConstruct; +import javax.faces.bean.ManagedBean; +import javax.faces.bean.ViewScoped; +import javax.faces.event.ActionEvent; + +import org.omnifaces.util.Messages; + +import br.pro.delfino.drogaria.dao.CidadeDAO; +import br.pro.delfino.drogaria.dao.EstadoDAO; +import br.pro.delfino.drogaria.dao.PessoaDAO; +import br.pro.delfino.drogaria.domain.Cidade; +import br.pro.delfino.drogaria.domain.Estado; +import br.pro.delfino.drogaria.domain.Pessoa; + +@SuppressWarnings("serial") +@ManagedBean +@ViewScoped +public class PessoaBean implements Serializable { + private Pessoa pessoa; + private List pessoas; + + private Estado estado; + private List estados; + + private List cidades; + + public Pessoa getPessoa() { + return pessoa; + } + + public void setPessoa(Pessoa pessoa) { + this.pessoa = pessoa; + } + + public List getPessoas() { + return pessoas; + } + + public void setPessoas(List pessoas) { + this.pessoas = pessoas; + } + + public Estado getEstado() { + return estado; + } + + public void setEstado(Estado estado) { + this.estado = estado; + } + + public List getEstados() { + return estados; + } + + public void setEstados(List estados) { + this.estados = estados; + } + + public List getCidades() { + return cidades; + } + + public void setCidades(List cidades) { + this.cidades = cidades; + } + + @PostConstruct + public void listar() { + try { + PessoaDAO pessoaDAO = new PessoaDAO(); + pessoas = pessoaDAO.listar("nome"); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar listar as pessoas"); + erro.printStackTrace(); + } + } + + public void novo() { + try { + pessoa = new Pessoa(); + + estado = new Estado(); + + EstadoDAO estadoDAO = new EstadoDAO(); + estados = estadoDAO.listar("nome"); + + cidades = new ArrayList<>(); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar gerar uma nova pessoa"); + erro.printStackTrace(); + } + } + + public void editar(ActionEvent evento) { + try{ + pessoa = (Pessoa) evento.getComponent().getAttributes().get("pessoaSelecionada"); + + estado = pessoa.getCidade().getEstado(); + + EstadoDAO estadoDAO = new EstadoDAO(); + estados = estadoDAO.listar("nome"); + + CidadeDAO cidadeDAO = new CidadeDAO(); + cidades = cidadeDAO.buscarPorEstado(estado.getCodigo()); + }catch(RuntimeException erro){ + Messages.addGlobalError("Ocorreu um erro ao tentar selecionar uma pessoa"); + } + } + + public void salvar() { + try { + PessoaDAO pessoaDAO = new PessoaDAO(); + pessoaDAO.merge(pessoa); + + pessoas = pessoaDAO.listar("nome"); + + pessoa = new Pessoa(); + + estado = new Estado(); + + EstadoDAO estadoDAO = new EstadoDAO(); + estados = estadoDAO.listar("nome"); + + cidades = new ArrayList<>(); + + Messages.addGlobalInfo("Pessoa salva com sucesso"); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar salvar a pessoa"); + erro.printStackTrace(); + } + } + + public void excluir(ActionEvent evento) { + + } + + public void popular() { + try { + if (estado != null) { + CidadeDAO cidadeDAO = new CidadeDAO(); + cidades = cidadeDAO.buscarPorEstado(estado.getCodigo()); + } else { + cidades = new ArrayList<>(); + } + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar filtrar as cidades"); + erro.printStackTrace(); + } + } +} diff --git a/285_ViewAction/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/ProdutoBean.java b/285_ViewAction/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/ProdutoBean.java new file mode 100644 index 0000000..e48e0d1 --- /dev/null +++ b/285_ViewAction/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/ProdutoBean.java @@ -0,0 +1,196 @@ +package br.pro.delfino.drogaria.bean; + +import java.io.IOException; +import java.io.Serializable; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; +import java.nio.file.StandardCopyOption; +import java.sql.Connection; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import javax.annotation.PostConstruct; +import javax.faces.bean.ManagedBean; +import javax.faces.bean.ViewScoped; +import javax.faces.event.ActionEvent; + +import org.omnifaces.util.Faces; +import org.omnifaces.util.Messages; +import org.primefaces.component.datatable.DataTable; +import org.primefaces.event.FileUploadEvent; +import org.primefaces.model.UploadedFile; + +import br.pro.delfino.drogaria.dao.FabricanteDAO; +import br.pro.delfino.drogaria.dao.ProdutoDAO; +import br.pro.delfino.drogaria.domain.Fabricante; +import br.pro.delfino.drogaria.domain.Produto; +import br.pro.delfino.drogaria.util.HibernateUtil; +import net.sf.jasperreports.engine.JRException; +import net.sf.jasperreports.engine.JasperFillManager; +import net.sf.jasperreports.engine.JasperPrint; +import net.sf.jasperreports.engine.JasperPrintManager; + +@SuppressWarnings("serial") +@ManagedBean +@ViewScoped +public class ProdutoBean implements Serializable { + private Produto produto; + private List produtos; + private List fabricantes; + + public Produto getProduto() { + return produto; + } + + public void setProduto(Produto produto) { + this.produto = produto; + } + + public List getProdutos() { + return produtos; + } + + public void setProdutos(List produtos) { + this.produtos = produtos; + } + + public List getFabricantes() { + return fabricantes; + } + + public void setFabricantes(List fabricantes) { + this.fabricantes = fabricantes; + } + + @PostConstruct + public void listar() { + try { + ProdutoDAO produtoDAO = new ProdutoDAO(); + produtos = produtoDAO.listar("descricao"); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar listar os produtos"); + erro.printStackTrace(); + } + } + + public void novo() { + try { + produto = new Produto(); + + FabricanteDAO fabricanteDAO = new FabricanteDAO(); + fabricantes = fabricanteDAO.listar("descricao"); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar gerar um novo produto"); + erro.printStackTrace(); + } + } + + public void editar(ActionEvent evento) { + try { + produto = (Produto) evento.getComponent().getAttributes().get("produtoSelecionado"); + produto.setCaminho("C:/Programação Web com Java/Uploads/" + produto.getCodigo() + ".png"); + + FabricanteDAO fabricanteDAO = new FabricanteDAO(); + fabricantes = fabricanteDAO.listar(); + } catch (RuntimeException erro) { + Messages.addFlashGlobalError("Ocorreu um erro ao tentar selecionar um produto"); + erro.printStackTrace(); + } + } + + public void salvar() { + try { + if (produto.getCaminho() == null) { + Messages.addGlobalError("O campo foto é obrigatório"); + return; + } + + ProdutoDAO produtoDAO = new ProdutoDAO(); + Produto produtoRetorno = produtoDAO.merge(produto); + + Path origem = Paths.get(produto.getCaminho()); + Path destino = Paths.get("C:/Programação Web com Java/Uploads/" + produtoRetorno.getCodigo() + ".png"); + Files.copy(origem, destino, StandardCopyOption.REPLACE_EXISTING); + + produto = new Produto(); + + FabricanteDAO fabricanteDAO = new FabricanteDAO(); + fabricantes = fabricanteDAO.listar(); + + produtos = produtoDAO.listar(); + + Messages.addGlobalInfo("Produto salvo com sucesso"); + } catch (RuntimeException | IOException erro) { + Messages.addFlashGlobalError("Ocorreu um erro ao tentar salvar o produto"); + erro.printStackTrace(); + } + } + + public void excluir(ActionEvent evento) { + try { + produto = (Produto) evento.getComponent().getAttributes().get("produtoSelecionado"); + + ProdutoDAO produtoDAO = new ProdutoDAO(); + produtoDAO.excluir(produto); + + Path arquivo = Paths.get("C:/Programação Web com Java/Uploads/" + produto.getCodigo() + ".png"); + Files.deleteIfExists(arquivo); + + produtos = produtoDAO.listar(); + + Messages.addGlobalInfo("Produto removido com sucesso"); + } catch (RuntimeException | IOException erro) { + Messages.addFlashGlobalError("Ocorreu um erro ao tentar remover o produto"); + erro.printStackTrace(); + } + } + + public void upload(FileUploadEvent evento) { + try { + UploadedFile arquivoUpload = evento.getFile(); + Path arquivoTemp = Files.createTempFile(null, null); + Files.copy(arquivoUpload.getInputstream(), arquivoTemp, StandardCopyOption.REPLACE_EXISTING); + produto.setCaminho(arquivoTemp.toString()); + + Messages.addGlobalInfo("Upload realizado com sucesso"); + } catch (IOException erro) { + Messages.addGlobalInfo("Ocorreu um erro ao tentar realizar o upload de arquivo"); + erro.printStackTrace(); + } + } + + public void imprimir() { + try { + DataTable tabela = (DataTable) Faces.getViewRoot().findComponent("formListagem:tabela"); + Map filtros = tabela.getFilters(); + + String proDescricao = (String) filtros.get("descricao"); + String fabDescricao = (String) filtros.get("fabricante.descricao"); + + String caminho = Faces.getRealPath("/reports/produtos.jasper"); + + Map parametros = new HashMap<>(); + if (proDescricao == null) { + parametros.put("PRODUTO_DESCRICAO", "%%"); + } else { + parametros.put("PRODUTO_DESCRICAO", "%" + proDescricao + "%"); + } + if (fabDescricao == null) { + parametros.put("FABRICANTE_DESCRICAO", "%%"); + } else { + parametros.put("FABRICANTE_DESCRICAO", "%" + fabDescricao + "%"); + } + + Connection conexao = HibernateUtil.getConexao(); + + JasperPrint relatorio = JasperFillManager.fillReport(caminho, parametros, conexao); + + JasperPrintManager.printReport(relatorio, true); + } catch (JRException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar gerar o relatório"); + erro.printStackTrace(); + } + } +} diff --git a/285_ViewAction/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/ProdutoBean2.java b/285_ViewAction/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/ProdutoBean2.java new file mode 100644 index 0000000..7346efd --- /dev/null +++ b/285_ViewAction/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/ProdutoBean2.java @@ -0,0 +1,44 @@ +package br.pro.delfino.drogaria.bean; + +import java.io.Serializable; +import java.util.List; + +import javax.annotation.PostConstruct; +import javax.faces.bean.ManagedBean; +import javax.faces.bean.ViewScoped; + +import org.omnifaces.util.Messages; + +import br.pro.delfino.drogaria.dao.ProdutoDAO; +import br.pro.delfino.drogaria.domain.Produto; + +@SuppressWarnings("serial") +@ManagedBean +@ViewScoped +public class ProdutoBean2 implements Serializable { + private List produtos; + + private ProdutoDAO produtoDAO; + + public List getProdutos() { + return produtos; + } + + public void setProdutos(List produtos) { + this.produtos = produtos; + } + + @PostConstruct + public void iniciar(){ + produtoDAO = new ProdutoDAO(); + } + + public void listar() { + try { + produtos = produtoDAO.listar("descricao"); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar listar os produtos"); + erro.printStackTrace(); + } + } +} diff --git a/285_ViewAction/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/UsuarioBean.java b/285_ViewAction/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/UsuarioBean.java new file mode 100644 index 0000000..f526df8 --- /dev/null +++ b/285_ViewAction/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/UsuarioBean.java @@ -0,0 +1,90 @@ +package br.pro.delfino.drogaria.bean; + +import java.io.Serializable; +import java.util.List; + +import javax.annotation.PostConstruct; +import javax.faces.bean.ManagedBean; +import javax.faces.bean.ViewScoped; + +import org.omnifaces.util.Messages; + +import br.pro.delfino.drogaria.dao.PessoaDAO; +import br.pro.delfino.drogaria.dao.UsuarioDAO; +import br.pro.delfino.drogaria.domain.Pessoa; +import br.pro.delfino.drogaria.domain.Usuario; + +@SuppressWarnings("serial") +@ManagedBean +@ViewScoped +public class UsuarioBean implements Serializable { + private Usuario usuario; + + private List pessoas; + private List usuarios; + + public Usuario getUsuario() { + return usuario; + } + + public void setUsuario(Usuario usuario) { + this.usuario = usuario; + } + + public List getPessoas() { + return pessoas; + } + + public void setPessoas(List pessoas) { + this.pessoas = pessoas; + } + + public List getUsuarios() { + return usuarios; + } + + public void setUsuarios(List usuarios) { + this.usuarios = usuarios; + } + + @PostConstruct + public void listar(){ + try{ + UsuarioDAO usuarioDAO = new UsuarioDAO(); + usuarios = usuarioDAO.listar("tipo"); + }catch(RuntimeException erro){ + Messages.addGlobalError("Ocorreu um erro ao tentar listar os usuários"); + erro.printStackTrace(); + } + } + + public void novo() { + try { + usuario = new Usuario(); + + PessoaDAO pessoaDAO = new PessoaDAO(); + pessoas = pessoaDAO.listar("nome"); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar criar um novo usuário"); + erro.printStackTrace(); + } + } + + public void salvar() { + try { + UsuarioDAO usuarioDAO = new UsuarioDAO(); + usuarioDAO.merge(usuario); + + usuario = new Usuario(); + usuarios = usuarioDAO.listar("tipo"); + + PessoaDAO pessoaDAO = new PessoaDAO(); + pessoas = pessoaDAO.listar("nome"); + + Messages.addGlobalInfo("Usuário salvo com sucesso"); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar salvar o usuário"); + erro.printStackTrace(); + } + } +} diff --git a/285_ViewAction/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/VendaBean.java b/285_ViewAction/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/VendaBean.java new file mode 100644 index 0000000..ada8ff2 --- /dev/null +++ b/285_ViewAction/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/VendaBean.java @@ -0,0 +1,186 @@ +package br.pro.delfino.drogaria.bean; + +import java.io.Serializable; +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +import javax.annotation.PostConstruct; +import javax.faces.bean.ManagedBean; +import javax.faces.bean.ViewScoped; +import javax.faces.event.ActionEvent; + +import org.omnifaces.util.Messages; + +import br.pro.delfino.drogaria.dao.ClienteDAO; +import br.pro.delfino.drogaria.dao.FuncionarioDAO; +import br.pro.delfino.drogaria.dao.ProdutoDAO; +import br.pro.delfino.drogaria.dao.VendaDAO; +import br.pro.delfino.drogaria.domain.Cliente; +import br.pro.delfino.drogaria.domain.Funcionario; +import br.pro.delfino.drogaria.domain.ItemVenda; +import br.pro.delfino.drogaria.domain.Produto; +import br.pro.delfino.drogaria.domain.Venda; + +@SuppressWarnings("serial") +@ManagedBean +@ViewScoped +public class VendaBean implements Serializable { + private Venda venda; + + private List produtos; + private List itensVenda; + private List clientes; + private List funcionarios; + + public Venda getVenda() { + return venda; + } + + public void setVenda(Venda venda) { + this.venda = venda; + } + + public List getProdutos() { + return produtos; + } + + public void setProdutos(List produtos) { + this.produtos = produtos; + } + + public List getItensVenda() { + return itensVenda; + } + + public void setItensVenda(List itensVenda) { + this.itensVenda = itensVenda; + } + + public List getClientes() { + return clientes; + } + + public void setClientes(List clientes) { + this.clientes = clientes; + } + + public List getFuncionarios() { + return funcionarios; + } + + public void setFuncionarios(List funcionarios) { + this.funcionarios = funcionarios; + } + + @PostConstruct + public void novo() { + try { + venda = new Venda(); + venda.setPrecoTotal(new BigDecimal("0.00")); + + ProdutoDAO produtoDAO = new ProdutoDAO(); + produtos = produtoDAO.listar("descricao"); + + itensVenda = new ArrayList<>(); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar carregar a tela de vendas"); + erro.printStackTrace(); + } + } + + public void adicionar(ActionEvent evento) { + Produto produto = (Produto) evento.getComponent().getAttributes().get("produtoSelecionado"); + + int achou = -1; + for (int posicao = 0; posicao < itensVenda.size(); posicao++) { + if (itensVenda.get(posicao).getProduto().equals(produto)) { + achou = posicao; + } + } + + if (achou < 0) { + ItemVenda itemVenda = new ItemVenda(); + itemVenda.setPrecoParcial(produto.getPreco()); + itemVenda.setProduto(produto); + itemVenda.setQuantidade(new Short("1")); + + itensVenda.add(itemVenda); + } else { + ItemVenda itemVenda = itensVenda.get(achou); + itemVenda.setQuantidade(new Short(itemVenda.getQuantidade() + 1 + "")); + itemVenda.setPrecoParcial(produto.getPreco().multiply(new BigDecimal(itemVenda.getQuantidade()))); + } + + calcular(); + } + + public void remover(ActionEvent evento) { + ItemVenda itemVenda = (ItemVenda) evento.getComponent().getAttributes().get("itemSelecionado"); + + int achou = -1; + for (int posicao = 0; posicao < itensVenda.size(); posicao++) { + if (itensVenda.get(posicao).getProduto().equals(itemVenda.getProduto())) { + achou = posicao; + } + } + + if (achou > -1) { + itensVenda.remove(achou); + } + + calcular(); + } + + public void calcular() { + venda.setPrecoTotal(new BigDecimal("0.00")); + + for (int posicao = 0; posicao < itensVenda.size(); posicao++) { + ItemVenda itemVenda = itensVenda.get(posicao); + venda.setPrecoTotal(venda.getPrecoTotal().add(itemVenda.getPrecoParcial())); + } + } + + public void finalizar() { + try { + venda.setHorario(new Date()); + venda.setCliente(null); + venda.setFuncionario(null); + + FuncionarioDAO funcionarioDAO = new FuncionarioDAO(); + funcionarios = funcionarioDAO.listarOrdenado(); + + ClienteDAO clienteDAO = new ClienteDAO(); + clientes = clienteDAO.listarOrdenado(); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar finalizar a venda"); + erro.printStackTrace(); + } + } + + public void salvar() { + try { + if(venda.getPrecoTotal().signum() == 0){ + Messages.addGlobalError("Informe pelo menos um item para a venda"); + return; + } + + VendaDAO vendaDAO = new VendaDAO(); + vendaDAO.salvar(venda, itensVenda); + + venda = new Venda(); + venda.setPrecoTotal(new BigDecimal("0.00")); + + ProdutoDAO produtoDAO = new ProdutoDAO(); + produtos = produtoDAO.listar("descricao"); + + itensVenda = new ArrayList<>(); + + Messages.addGlobalInfo("Venda realizada com sucesso"); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar salvar a venda"); + erro.printStackTrace(); + } + } +} diff --git a/285_ViewAction/Drogaria/src/main/java/br/pro/delfino/drogaria/converter/UpperCaseConverter.java b/285_ViewAction/Drogaria/src/main/java/br/pro/delfino/drogaria/converter/UpperCaseConverter.java new file mode 100644 index 0000000..8a5d259 --- /dev/null +++ b/285_ViewAction/Drogaria/src/main/java/br/pro/delfino/drogaria/converter/UpperCaseConverter.java @@ -0,0 +1,28 @@ +package br.pro.delfino.drogaria.converter; + +import javax.faces.component.UIComponent; +import javax.faces.context.FacesContext; +import javax.faces.convert.Converter; +import javax.faces.convert.FacesConverter; + +@FacesConverter("upperCaseConverter") +public class UpperCaseConverter implements Converter { + + @Override + public Object getAsObject(FacesContext context, UIComponent component, String value) { + if (value == null) { + return null; + } else { + return value.toUpperCase(); + } + } + + @Override + public String getAsString(FacesContext context, UIComponent component, Object value) { + if (value == null) { + return ""; + } else { + return value.toString(); + } + } +} diff --git a/285_ViewAction/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/CaixaDAO.java b/285_ViewAction/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/CaixaDAO.java new file mode 100644 index 0000000..fd8acd7 --- /dev/null +++ b/285_ViewAction/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/CaixaDAO.java @@ -0,0 +1,26 @@ +package br.pro.delfino.drogaria.dao; + +import java.util.Date; + +import org.hibernate.Criteria; +import org.hibernate.Session; +import org.hibernate.criterion.Restrictions; + +import br.pro.delfino.drogaria.domain.Caixa; +import br.pro.delfino.drogaria.util.HibernateUtil; + +public class CaixaDAO extends GenericDAO { + public Caixa buscar(Date dataAbertura) { + Session sessao = HibernateUtil.getFabricaDeSessoes().openSession(); + try { + Criteria consulta = sessao.createCriteria(Caixa.class); + consulta.add(Restrictions.eq("dataAbertura", dataAbertura)); + Caixa resultado = (Caixa) consulta.uniqueResult(); + return resultado; + } catch (RuntimeException erro) { + throw erro; + } finally { + sessao.close(); + } + } +} diff --git a/285_ViewAction/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/CidadeDAO.java b/285_ViewAction/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/CidadeDAO.java new file mode 100644 index 0000000..e685e93 --- /dev/null +++ b/285_ViewAction/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/CidadeDAO.java @@ -0,0 +1,29 @@ +package br.pro.delfino.drogaria.dao; + +import java.util.List; + +import org.hibernate.Criteria; +import org.hibernate.Session; +import org.hibernate.criterion.Order; +import org.hibernate.criterion.Restrictions; + +import br.pro.delfino.drogaria.domain.Cidade; +import br.pro.delfino.drogaria.util.HibernateUtil; + +public class CidadeDAO extends GenericDAO { + @SuppressWarnings("unchecked") + public List buscarPorEstado(Long estadoCodigo) { + Session sessao = HibernateUtil.getFabricaDeSessoes().openSession(); + try { + Criteria consulta = sessao.createCriteria(Cidade.class); + consulta.add(Restrictions.eq("estado.codigo", estadoCodigo)); + consulta.addOrder(Order.asc("nome")); + List resultado = consulta.list(); + return resultado; + } catch (RuntimeException erro) { + throw erro; + } finally { + sessao.close(); + } + } +} \ No newline at end of file diff --git a/285_ViewAction/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/ClienteDAO.java b/285_ViewAction/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/ClienteDAO.java new file mode 100644 index 0000000..e9796b5 --- /dev/null +++ b/285_ViewAction/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/ClienteDAO.java @@ -0,0 +1,28 @@ +package br.pro.delfino.drogaria.dao; + +import java.util.List; + +import org.hibernate.Criteria; +import org.hibernate.Session; +import org.hibernate.criterion.Order; + +import br.pro.delfino.drogaria.domain.Cliente; +import br.pro.delfino.drogaria.util.HibernateUtil; + +public class ClienteDAO extends GenericDAO { + @SuppressWarnings("unchecked") + public List listarOrdenado() { + Session sessao = HibernateUtil.getFabricaDeSessoes().openSession(); + try { + Criteria consulta = sessao.createCriteria(Cliente.class); + consulta.createAlias("pessoa", "p"); + consulta.addOrder(Order.asc("p.nome")); + List resultado = consulta.list(); + return resultado; + } catch (RuntimeException erro) { + throw erro; + } finally { + sessao.close(); + } + } +} diff --git a/285_ViewAction/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/EstadoDAO.java b/285_ViewAction/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/EstadoDAO.java new file mode 100644 index 0000000..32b4a79 --- /dev/null +++ b/285_ViewAction/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/EstadoDAO.java @@ -0,0 +1,7 @@ +package br.pro.delfino.drogaria.dao; + +import br.pro.delfino.drogaria.domain.Estado; + +public class EstadoDAO extends GenericDAO { + +} diff --git a/285_ViewAction/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/FabricanteDAO.java b/285_ViewAction/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/FabricanteDAO.java new file mode 100644 index 0000000..8b7f946 --- /dev/null +++ b/285_ViewAction/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/FabricanteDAO.java @@ -0,0 +1,7 @@ +package br.pro.delfino.drogaria.dao; + +import br.pro.delfino.drogaria.domain.Fabricante; + +public class FabricanteDAO extends GenericDAO { + +} diff --git a/285_ViewAction/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/FuncionarioDAO.java b/285_ViewAction/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/FuncionarioDAO.java new file mode 100644 index 0000000..2b3114d --- /dev/null +++ b/285_ViewAction/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/FuncionarioDAO.java @@ -0,0 +1,28 @@ +package br.pro.delfino.drogaria.dao; + +import java.util.List; + +import org.hibernate.Criteria; +import org.hibernate.Session; +import org.hibernate.criterion.Order; + +import br.pro.delfino.drogaria.domain.Funcionario; +import br.pro.delfino.drogaria.util.HibernateUtil; + +public class FuncionarioDAO extends GenericDAO{ + @SuppressWarnings("unchecked") + public List listarOrdenado() { + Session sessao = HibernateUtil.getFabricaDeSessoes().openSession(); + try { + Criteria consulta = sessao.createCriteria(Funcionario.class); + consulta.createAlias("pessoa", "p"); + consulta.addOrder(Order.asc("p.nome")); + List resultado = consulta.list(); + return resultado; + } catch (RuntimeException erro) { + throw erro; + } finally { + sessao.close(); + } + } +} diff --git a/285_ViewAction/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/GenericDAO.java b/285_ViewAction/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/GenericDAO.java new file mode 100644 index 0000000..b505cd3 --- /dev/null +++ b/285_ViewAction/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/GenericDAO.java @@ -0,0 +1,140 @@ +package br.pro.delfino.drogaria.dao; + +import java.lang.reflect.ParameterizedType; +import java.util.List; + +import org.hibernate.Criteria; +import org.hibernate.Session; +import org.hibernate.Transaction; +import org.hibernate.criterion.Order; +import org.hibernate.criterion.Restrictions; + +import br.pro.delfino.drogaria.util.HibernateUtil; + +public class GenericDAO { + private Class classe; + + @SuppressWarnings("unchecked") + public GenericDAO() { + this.classe = (Class) ((ParameterizedType) getClass().getGenericSuperclass()) + .getActualTypeArguments()[0]; + } + + public void salvar(Entidade entidade) { + Session sessao = HibernateUtil.getFabricaDeSessoes().openSession(); + Transaction transacao = null; + + try { + transacao = sessao.beginTransaction(); + sessao.save(entidade); + transacao.commit(); + } catch (RuntimeException erro) { + if (transacao != null) { + transacao.rollback(); + } + throw erro; + } finally { + sessao.close(); + } + } + + @SuppressWarnings("unchecked") + public List listar() { + Session sessao = HibernateUtil.getFabricaDeSessoes().openSession(); + try { + Criteria consulta = sessao.createCriteria(classe); + List resultado = consulta.list(); + return resultado; + } catch (RuntimeException erro) { + throw erro; + } finally { + sessao.close(); + } + } + + @SuppressWarnings("unchecked") + public List listar(String campoOrdenacao) { + Session sessao = HibernateUtil.getFabricaDeSessoes().openSession(); + try { + Criteria consulta = sessao.createCriteria(classe); + consulta.addOrder(Order.asc(campoOrdenacao)); + List resultado = consulta.list(); + return resultado; + } catch (RuntimeException erro) { + throw erro; + } finally { + sessao.close(); + } + } + + @SuppressWarnings("unchecked") + public Entidade buscar(Long codigo) { + Session sessao = HibernateUtil.getFabricaDeSessoes().openSession(); + try { + Criteria consulta = sessao.createCriteria(classe); + consulta.add(Restrictions.idEq(codigo)); + Entidade resultado = (Entidade) consulta.uniqueResult(); + return resultado; + } catch (RuntimeException erro) { + throw erro; + } finally { + sessao.close(); + } + } + + public void excluir(Entidade entidade) { + Session sessao = HibernateUtil.getFabricaDeSessoes().openSession(); + Transaction transacao = null; + + try { + transacao = sessao.beginTransaction(); + sessao.delete(entidade); + transacao.commit(); + } catch (RuntimeException erro) { + if (transacao != null) { + transacao.rollback(); + } + throw erro; + } finally { + sessao.close(); + } + } + + public void editar(Entidade entidade) { + Session sessao = HibernateUtil.getFabricaDeSessoes().openSession(); + Transaction transacao = null; + + try { + transacao = sessao.beginTransaction(); + sessao.update(entidade); + transacao.commit(); + } catch (RuntimeException erro) { + if (transacao != null) { + transacao.rollback(); + } + throw erro; + } finally { + sessao.close(); + } + } + + @SuppressWarnings("unchecked") + public Entidade merge(Entidade entidade) { + Session sessao = HibernateUtil.getFabricaDeSessoes().openSession(); + Transaction transacao = null; + + try { + transacao = sessao.beginTransaction(); + Entidade retorno = (Entidade) sessao.merge(entidade); + transacao.commit(); + return retorno; + } catch (RuntimeException erro) { + if (transacao != null) { + transacao.rollback(); + } + throw erro; + } finally { + sessao.close(); + } + } +} diff --git a/285_ViewAction/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/HistoricoDAO.java b/285_ViewAction/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/HistoricoDAO.java new file mode 100644 index 0000000..7b30017 --- /dev/null +++ b/285_ViewAction/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/HistoricoDAO.java @@ -0,0 +1,7 @@ +package br.pro.delfino.drogaria.dao; + +import br.pro.delfino.drogaria.domain.Historico; + +public class HistoricoDAO extends GenericDAO { + +} diff --git a/285_ViewAction/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/MovimentacaoDAO.java b/285_ViewAction/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/MovimentacaoDAO.java new file mode 100644 index 0000000..b6560e2 --- /dev/null +++ b/285_ViewAction/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/MovimentacaoDAO.java @@ -0,0 +1,7 @@ +package br.pro.delfino.drogaria.dao; + +import br.pro.delfino.drogaria.domain.Movimentacao; + +public class MovimentacaoDAO extends GenericDAO { + +} diff --git a/285_ViewAction/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/PessoaDAO.java b/285_ViewAction/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/PessoaDAO.java new file mode 100644 index 0000000..bbd116b --- /dev/null +++ b/285_ViewAction/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/PessoaDAO.java @@ -0,0 +1,7 @@ +package br.pro.delfino.drogaria.dao; + +import br.pro.delfino.drogaria.domain.Pessoa; + +public class PessoaDAO extends GenericDAO { + +} diff --git a/285_ViewAction/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/ProdutoDAO.java b/285_ViewAction/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/ProdutoDAO.java new file mode 100644 index 0000000..4c1e751 --- /dev/null +++ b/285_ViewAction/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/ProdutoDAO.java @@ -0,0 +1,7 @@ +package br.pro.delfino.drogaria.dao; + +import br.pro.delfino.drogaria.domain.Produto; + +public class ProdutoDAO extends GenericDAO { + +} diff --git a/285_ViewAction/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/UsuarioDAO.java b/285_ViewAction/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/UsuarioDAO.java new file mode 100644 index 0000000..b4bf524 --- /dev/null +++ b/285_ViewAction/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/UsuarioDAO.java @@ -0,0 +1,33 @@ +package br.pro.delfino.drogaria.dao; + +import org.apache.shiro.crypto.hash.SimpleHash; +import org.hibernate.Criteria; +import org.hibernate.Session; +import org.hibernate.criterion.Restrictions; + +import br.pro.delfino.drogaria.domain.Usuario; +import br.pro.delfino.drogaria.util.HibernateUtil; + +public class UsuarioDAO extends GenericDAO { + public Usuario autenticar(String cpf, String senha) { + Session sessao = HibernateUtil.getFabricaDeSessoes().openSession(); + + try{ + Criteria consulta = sessao.createCriteria(Usuario.class); + consulta.createAlias("pessoa", "p"); + + consulta.add(Restrictions.eq("p.cpf", cpf)); + + SimpleHash hash = new SimpleHash("md5", senha); + consulta.add(Restrictions.eq("senha", hash.toHex())); + + Usuario resultado = (Usuario) consulta.uniqueResult(); + + return resultado; + } catch (RuntimeException erro) { + throw erro; + } finally { + sessao.close(); + } + } +} diff --git a/285_ViewAction/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/VendaDAO.java b/285_ViewAction/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/VendaDAO.java new file mode 100644 index 0000000..3428939 --- /dev/null +++ b/285_ViewAction/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/VendaDAO.java @@ -0,0 +1,49 @@ +package br.pro.delfino.drogaria.dao; + +import java.util.List; + +import org.hibernate.Session; +import org.hibernate.Transaction; + +import br.pro.delfino.drogaria.domain.ItemVenda; +import br.pro.delfino.drogaria.domain.Produto; +import br.pro.delfino.drogaria.domain.Venda; +import br.pro.delfino.drogaria.util.HibernateUtil; + +public class VendaDAO extends GenericDAO { + public void salvar(Venda venda, List itensVenda) { + Session sessao = HibernateUtil.getFabricaDeSessoes().openSession(); + Transaction transacao = null; + + try { + transacao = sessao.beginTransaction(); + + sessao.save(venda); + + for (int posicao = 0; posicao < itensVenda.size(); posicao++) { + ItemVenda itemVenda = itensVenda.get(posicao); + itemVenda.setVenda(venda); + + sessao.save(itemVenda); + + Produto produto = itemVenda.getProduto(); + int quantidade = produto.getQuantidade() - itemVenda.getQuantidade(); + if (quantidade >= 0) { + produto.setQuantidade(new Short(quantidade + "")); + sessao.update(produto); + } else { + throw new RuntimeException("Quantidade insuficiente em estoque"); + } + } + + transacao.commit(); + } catch (RuntimeException erro) { + if (transacao != null) { + transacao.rollback(); + } + throw erro; + } finally { + sessao.close(); + } + } +} diff --git a/285_ViewAction/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Caixa.java b/285_ViewAction/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Caixa.java new file mode 100644 index 0000000..43b07c4 --- /dev/null +++ b/285_ViewAction/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Caixa.java @@ -0,0 +1,48 @@ +package br.pro.delfino.drogaria.domain; + +import java.math.BigDecimal; +import java.util.Date; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.Temporal; +import javax.persistence.TemporalType; + +@SuppressWarnings("serial") +@Entity +public class Caixa extends GenericDomain { + @Column(nullable = false, unique = true) + @Temporal(TemporalType.DATE) + private Date dataAbertura; + + @Column(nullable = true) + @Temporal(TemporalType.DATE) + private Date dataFechamento; + + @Column(nullable = false, precision = 7, scale = 2) + private BigDecimal valorAbertura; + + public Date getDataAbertura() { + return dataAbertura; + } + + public void setDataAbertura(Date dataAbertura) { + this.dataAbertura = dataAbertura; + } + + public Date getDataFechamento() { + return dataFechamento; + } + + public void setDataFechamento(Date dataFechamento) { + this.dataFechamento = dataFechamento; + } + + public BigDecimal getValorAbertura() { + return valorAbertura; + } + + public void setValorAbertura(BigDecimal valorAbertura) { + this.valorAbertura = valorAbertura; + } +} diff --git a/285_ViewAction/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Cidade.java b/285_ViewAction/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Cidade.java new file mode 100644 index 0000000..cf94ede --- /dev/null +++ b/285_ViewAction/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Cidade.java @@ -0,0 +1,33 @@ +package br.pro.delfino.drogaria.domain; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.JoinColumn; +import javax.persistence.ManyToOne; + +@SuppressWarnings("serial") +@Entity +public class Cidade extends GenericDomain { + @Column(length = 50, nullable = false) + private String nome; + + @ManyToOne + @JoinColumn(nullable = false) + private Estado estado; + + public String getNome() { + return nome; + } + + public void setNome(String nome) { + this.nome = nome; + } + + public Estado getEstado() { + return estado; + } + + public void setEstado(Estado estado) { + this.estado = estado; + } +} diff --git a/285_ViewAction/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Cliente.java b/285_ViewAction/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Cliente.java new file mode 100644 index 0000000..6ace9b9 --- /dev/null +++ b/285_ViewAction/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Cliente.java @@ -0,0 +1,49 @@ +package br.pro.delfino.drogaria.domain; + +import java.util.Date; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.JoinColumn; +import javax.persistence.OneToOne; +import javax.persistence.Temporal; +import javax.persistence.TemporalType; + +@SuppressWarnings("serial") +@Entity +public class Cliente extends GenericDomain { + @Column(nullable = false) + @Temporal(TemporalType.DATE) + private Date dataCadastro; + + @Column(nullable = false) + private Boolean liberado; + + @OneToOne + @JoinColumn(nullable = false) + private Pessoa pessoa; + + public Date getDataCadastro() { + return dataCadastro; + } + + public void setDataCadastro(Date dataCadastro) { + this.dataCadastro = dataCadastro; + } + + public Boolean getLiberado() { + return liberado; + } + + public void setLiberado(Boolean liberado) { + this.liberado = liberado; + } + + public Pessoa getPessoa() { + return pessoa; + } + + public void setPessoa(Pessoa pessoa) { + this.pessoa = pessoa; + } +} diff --git a/285_ViewAction/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Estado.java b/285_ViewAction/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Estado.java new file mode 100644 index 0000000..1c06b98 --- /dev/null +++ b/285_ViewAction/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Estado.java @@ -0,0 +1,30 @@ +package br.pro.delfino.drogaria.domain; + +import javax.persistence.Column; +import javax.persistence.Entity; + +@SuppressWarnings("serial") +@Entity +public class Estado extends GenericDomain { + @Column(length = 2, nullable = false) + private String sigla; + + @Column(length = 50, nullable = false) + private String nome; + + public String getSigla() { + return sigla; + } + + public void setSigla(String sigla) { + this.sigla = sigla; + } + + public String getNome() { + return nome; + } + + public void setNome(String nome) { + this.nome = nome; + } +} diff --git a/285_ViewAction/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Fabricante.java b/285_ViewAction/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Fabricante.java new file mode 100644 index 0000000..02eab8c --- /dev/null +++ b/285_ViewAction/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Fabricante.java @@ -0,0 +1,19 @@ +package br.pro.delfino.drogaria.domain; + +import javax.persistence.Column; +import javax.persistence.Entity; + +@SuppressWarnings("serial") +@Entity +public class Fabricante extends GenericDomain { + @Column(length = 50, nullable = false) + private String descricao; + + public String getDescricao() { + return descricao; + } + + public void setDescricao(String descricao) { + this.descricao = descricao; + } +} diff --git a/285_ViewAction/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Funcionario.java b/285_ViewAction/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Funcionario.java new file mode 100644 index 0000000..dec9378 --- /dev/null +++ b/285_ViewAction/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Funcionario.java @@ -0,0 +1,49 @@ +package br.pro.delfino.drogaria.domain; + +import java.util.Date; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.JoinColumn; +import javax.persistence.OneToOne; +import javax.persistence.Temporal; +import javax.persistence.TemporalType; + +@SuppressWarnings("serial") +@Entity +public class Funcionario extends GenericDomain { + @Column(length = 15, nullable = false) + private String carteiraTrabalho; + + @Column(nullable = false) + @Temporal(TemporalType.DATE) + private Date dataAdmissao; + + @OneToOne + @JoinColumn(nullable = false) + private Pessoa pessoa; + + public String getCarteiraTrabalho() { + return carteiraTrabalho; + } + + public void setCarteiraTrabalho(String carteiraTrabalho) { + this.carteiraTrabalho = carteiraTrabalho; + } + + public Date getDataAdmissao() { + return dataAdmissao; + } + + public void setDataAdmissao(Date dataAdmissao) { + this.dataAdmissao = dataAdmissao; + } + + public Pessoa getPessoa() { + return pessoa; + } + + public void setPessoa(Pessoa pessoa) { + this.pessoa = pessoa; + } +} diff --git a/285_ViewAction/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/GenericDomain.java b/285_ViewAction/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/GenericDomain.java new file mode 100644 index 0000000..f37efea --- /dev/null +++ b/285_ViewAction/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/GenericDomain.java @@ -0,0 +1,54 @@ +package br.pro.delfino.drogaria.domain; + +import java.io.Serializable; + +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Id; +import javax.persistence.MappedSuperclass; + +@SuppressWarnings("serial") +@MappedSuperclass +public class GenericDomain implements Serializable { + @Id + @GeneratedValue(strategy = GenerationType.AUTO) + private Long codigo; + + public Long getCodigo() { + return codigo; + } + + public void setCodigo(Long codigo) { + this.codigo = codigo; + } + + @Override + public String toString() { + return String.format("%s[codigo=%d]", getClass().getSimpleName(), getCodigo()); + } + + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + ((codigo == null) ? 0 : codigo.hashCode()); + return result; + } + + @Override + public boolean equals(Object obj) { + if (this == obj) + return true; + if (obj == null) + return false; + if (getClass() != obj.getClass()) + return false; + GenericDomain other = (GenericDomain) obj; + if (codigo == null) { + if (other.codigo != null) + return false; + } else if (!codigo.equals(other.codigo)) + return false; + return true; + } +} diff --git a/285_ViewAction/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Historico.java b/285_ViewAction/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Historico.java new file mode 100644 index 0000000..dafdaeb --- /dev/null +++ b/285_ViewAction/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Historico.java @@ -0,0 +1,49 @@ +package br.pro.delfino.drogaria.domain; + +import java.util.Date; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.JoinColumn; +import javax.persistence.ManyToOne; +import javax.persistence.Temporal; +import javax.persistence.TemporalType; + +@SuppressWarnings("serial") +@Entity +public class Historico extends GenericDomain { + @Column(nullable = false) + @Temporal(TemporalType.TIMESTAMP) + private Date horario; + + @Column(nullable = false, length = 500) + private String observacoes; + + @ManyToOne + @JoinColumn(nullable = false) + private Produto produto; + + public Date getHorario() { + return horario; + } + + public void setHorario(Date horario) { + this.horario = horario; + } + + public String getObservacoes() { + return observacoes; + } + + public void setObservacoes(String observacoes) { + this.observacoes = observacoes; + } + + public Produto getProduto() { + return produto; + } + + public void setProduto(Produto produto) { + this.produto = produto; + } +} diff --git a/285_ViewAction/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/ItemVenda.java b/285_ViewAction/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/ItemVenda.java new file mode 100644 index 0000000..590ab26 --- /dev/null +++ b/285_ViewAction/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/ItemVenda.java @@ -0,0 +1,58 @@ +package br.pro.delfino.drogaria.domain; + +import java.math.BigDecimal; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.JoinColumn; +import javax.persistence.ManyToOne; + +@SuppressWarnings("serial") +@Entity +public class ItemVenda extends GenericDomain { + @Column(nullable = false) + private Short quantidade; + + @Column(nullable = false, precision = 7, scale = 2) + private BigDecimal precoParcial; + + @ManyToOne + @JoinColumn(nullable = false) + private Produto produto; + + @ManyToOne + @JoinColumn(nullable = false) + private Venda venda; + + public Short getQuantidade() { + return quantidade; + } + + public void setQuantidade(Short quantidade) { + this.quantidade = quantidade; + } + + public BigDecimal getPrecoParcial() { + return precoParcial; + } + + public void setPrecoParcial(BigDecimal precoParcial) { + this.precoParcial = precoParcial; + } + + public Produto getProduto() { + return produto; + } + + public void setProduto(Produto produto) { + this.produto = produto; + } + + public Venda getVenda() { + return venda; + } + + public void setVenda(Venda venda) { + this.venda = venda; + } +} diff --git a/285_ViewAction/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Movimentacao.java b/285_ViewAction/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Movimentacao.java new file mode 100644 index 0000000..c3d6319 --- /dev/null +++ b/285_ViewAction/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Movimentacao.java @@ -0,0 +1,50 @@ +package br.pro.delfino.drogaria.domain; + +import java.math.BigDecimal; +import java.util.Date; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.JoinColumn; +import javax.persistence.ManyToOne; +import javax.persistence.Temporal; +import javax.persistence.TemporalType; + +@SuppressWarnings("serial") +@Entity +public class Movimentacao extends GenericDomain { + @Column(nullable = false) + @Temporal(TemporalType.TIMESTAMP) + private Date horario; + + @Column(nullable = false, precision = 7, scale = 2) + private BigDecimal valor; + + @ManyToOne + @JoinColumn(nullable = false) + private Caixa caixa; + + public Date getHorario() { + return horario; + } + + public void setHorario(Date horario) { + this.horario = horario; + } + + public BigDecimal getValor() { + return valor; + } + + public void setValor(BigDecimal valor) { + this.valor = valor; + } + + public Caixa getCaixa() { + return caixa; + } + + public void setCaixa(Caixa caixa) { + this.caixa = caixa; + } +} diff --git a/285_ViewAction/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Pessoa.java b/285_ViewAction/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Pessoa.java new file mode 100644 index 0000000..f354001 --- /dev/null +++ b/285_ViewAction/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Pessoa.java @@ -0,0 +1,143 @@ +package br.pro.delfino.drogaria.domain; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.JoinColumn; +import javax.persistence.ManyToOne; + +@SuppressWarnings("serial") +@Entity +public class Pessoa extends GenericDomain { + @Column(length = 50, nullable = false) + private String nome; + + @Column(length = 14, nullable = false) + private String cpf; + + @Column(length = 12, nullable = false) + private String rg; + + @Column(length = 100, nullable = false) + private String rua; + + @Column(nullable = false) + private Short numero; + + @Column(length = 30, nullable = false) + private String bairro; + + @Column(length = 10, nullable = false) + private String cep; + + @Column(length = 10) + private String complemento; + + @Column(length = 13, nullable = false) + private String telefone; + + @Column(length = 14, nullable = false) + private String celular; + + @Column(length = 100, nullable = false) + private String email; + + @ManyToOne + @JoinColumn(nullable = false) + private Cidade cidade; + + public String getNome() { + return nome; + } + + public void setNome(String nome) { + this.nome = nome; + } + + public String getCpf() { + return cpf; + } + + public void setCpf(String cpf) { + this.cpf = cpf; + } + + public String getRg() { + return rg; + } + + public void setRg(String rg) { + this.rg = rg; + } + + public String getRua() { + return rua; + } + + public void setRua(String rua) { + this.rua = rua; + } + + public Short getNumero() { + return numero; + } + + public void setNumero(Short numero) { + this.numero = numero; + } + + public String getBairro() { + return bairro; + } + + public void setBairro(String bairro) { + this.bairro = bairro; + } + + public String getCep() { + return cep; + } + + public void setCep(String cep) { + this.cep = cep; + } + + public String getComplemento() { + return complemento; + } + + public void setComplemento(String complemento) { + this.complemento = complemento; + } + + public String getTelefone() { + return telefone; + } + + public void setTelefone(String telefone) { + this.telefone = telefone; + } + + public String getCelular() { + return celular; + } + + public void setCelular(String celular) { + this.celular = celular; + } + + public String getEmail() { + return email; + } + + public void setEmail(String email) { + this.email = email; + } + + public Cidade getCidade() { + return cidade; + } + + public void setCidade(Cidade cidade) { + this.cidade = cidade; + } +} diff --git a/285_ViewAction/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Produto.java b/285_ViewAction/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Produto.java new file mode 100644 index 0000000..82049b0 --- /dev/null +++ b/285_ViewAction/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Produto.java @@ -0,0 +1,69 @@ +package br.pro.delfino.drogaria.domain; + +import java.math.BigDecimal; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.JoinColumn; +import javax.persistence.ManyToOne; +import javax.persistence.Transient; + +@SuppressWarnings("serial") +@Entity +public class Produto extends GenericDomain { + @Column(length = 80, nullable = false) + private String descricao; + + @Column(nullable = false) + private Short quantidade; + + @Column(nullable = false, precision = 6, scale = 2) + private BigDecimal preco; + + @ManyToOne + @JoinColumn(nullable = false) + private Fabricante fabricante; + + @Transient + private String caminho; + + public String getDescricao() { + return descricao; + } + + public void setDescricao(String descricao) { + this.descricao = descricao; + } + + public Short getQuantidade() { + return quantidade; + } + + public void setQuantidade(Short quantidade) { + this.quantidade = quantidade; + } + + public BigDecimal getPreco() { + return preco; + } + + public void setPreco(BigDecimal preco) { + this.preco = preco; + } + + public Fabricante getFabricante() { + return fabricante; + } + + public void setFabricante(Fabricante fabricante) { + this.fabricante = fabricante; + } + + public String getCaminho() { + return caminho; + } + + public void setCaminho(String caminho) { + this.caminho = caminho; + } +} diff --git a/285_ViewAction/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Usuario.java b/285_ViewAction/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Usuario.java new file mode 100644 index 0000000..ae51941 --- /dev/null +++ b/285_ViewAction/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Usuario.java @@ -0,0 +1,93 @@ +package br.pro.delfino.drogaria.domain; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.JoinColumn; +import javax.persistence.OneToOne; +import javax.persistence.Transient; + +@SuppressWarnings("serial") +@Entity +public class Usuario extends GenericDomain { + @Column(length = 32, nullable = false) + private String senha; + + @Transient + private String senhaSemCriptografia; + + @Column(nullable = false) + private Character tipo; + + @Column(nullable = false) + private Boolean ativo; + + @OneToOne + @JoinColumn(nullable = false) + private Pessoa pessoa; + + public String getSenha() { + return senha; + } + + public void setSenha(String senha) { + this.senha = senha; + } + + public String getSenhaSemCriptografia() { + return senhaSemCriptografia; + } + + public void setSenhaSemCriptografia(String senhaSemCriptografia) { + this.senhaSemCriptografia = senhaSemCriptografia; + } + + public Character getTipo() { + return tipo; + } + + @Transient + public String getTipoFormatado() { + String tipoFormatado = null; + + if (tipo == 'A') { + tipoFormatado = "Administrador"; + } else if (tipo == 'B') { + tipoFormatado = "Balconista"; + } else if (tipo == 'G') { + tipoFormatado = "Gerente"; + } + + return tipoFormatado; + } + + public void setTipo(Character tipo) { + this.tipo = tipo; + } + + public Boolean getAtivo() { + return ativo; + } + + @Transient + public String getAtivoFormatado(){ + String ativoFormatado = "Não"; + + if(ativo){ + ativoFormatado = "Sim"; + } + + return ativoFormatado; + } + + public void setAtivo(Boolean ativo) { + this.ativo = ativo; + } + + public Pessoa getPessoa() { + return pessoa; + } + + public void setPessoa(Pessoa pessoa) { + this.pessoa = pessoa; + } +} diff --git a/285_ViewAction/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Venda.java b/285_ViewAction/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Venda.java new file mode 100644 index 0000000..3f4c226 --- /dev/null +++ b/285_ViewAction/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Venda.java @@ -0,0 +1,61 @@ +package br.pro.delfino.drogaria.domain; + +import java.math.BigDecimal; +import java.util.Date; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.JoinColumn; +import javax.persistence.ManyToOne; +import javax.persistence.Temporal; +import javax.persistence.TemporalType; + +@SuppressWarnings("serial") +@Entity +public class Venda extends GenericDomain { + @Column(nullable = false) + @Temporal(TemporalType.TIMESTAMP) + private Date horario; + + @Column(nullable = false, precision = 7, scale = 2) + private BigDecimal precoTotal; + + @ManyToOne + private Cliente cliente; + + @ManyToOne + @JoinColumn(nullable = false) + private Funcionario funcionario; + + public Date getHorario() { + return horario; + } + + public void setHorario(Date horario) { + this.horario = horario; + } + + public BigDecimal getPrecoTotal() { + return precoTotal; + } + + public void setPrecoTotal(BigDecimal precoTotal) { + this.precoTotal = precoTotal; + } + + public Cliente getCliente() { + return cliente; + } + + public void setCliente(Cliente cliente) { + this.cliente = cliente; + } + + public Funcionario getFuncionario() { + return funcionario; + } + + public void setFuncionario(Funcionario funcionario) { + this.funcionario = funcionario; + } +} diff --git a/285_ViewAction/Drogaria/src/main/java/br/pro/delfino/drogaria/service/DrogariaService.java b/285_ViewAction/Drogaria/src/main/java/br/pro/delfino/drogaria/service/DrogariaService.java new file mode 100644 index 0000000..fbb1f2b --- /dev/null +++ b/285_ViewAction/Drogaria/src/main/java/br/pro/delfino/drogaria/service/DrogariaService.java @@ -0,0 +1,13 @@ +package br.pro.delfino.drogaria.service; + +import javax.ws.rs.GET; +import javax.ws.rs.Path; + +// http://localhost:8080/Drogaria/rest/drogaria +@Path("drogaria") +public class DrogariaService { + @GET + public String exibir(){ + return "Curso de Java"; + } +} diff --git a/285_ViewAction/Drogaria/src/main/java/br/pro/delfino/drogaria/service/FabricanteService.java b/285_ViewAction/Drogaria/src/main/java/br/pro/delfino/drogaria/service/FabricanteService.java new file mode 100644 index 0000000..1dbc0d1 --- /dev/null +++ b/285_ViewAction/Drogaria/src/main/java/br/pro/delfino/drogaria/service/FabricanteService.java @@ -0,0 +1,85 @@ +package br.pro.delfino.drogaria.service; + +import java.util.List; + +import javax.ws.rs.DELETE; +import javax.ws.rs.GET; +import javax.ws.rs.POST; +import javax.ws.rs.PUT; +import javax.ws.rs.Path; +import javax.ws.rs.PathParam; + +import com.google.gson.Gson; + +import br.pro.delfino.drogaria.dao.FabricanteDAO; +import br.pro.delfino.drogaria.domain.Fabricante; + +@Path("fabricante") +public class FabricanteService { + // http://127.0.0.1:8080/Drogaria/rest/fabricante + @GET + public String listar() { + FabricanteDAO fabricanteDAO = new FabricanteDAO(); + List fabricantes = fabricanteDAO.listar("descricao"); + + Gson gson = new Gson(); + String json = gson.toJson(fabricantes); + + return json; + } + + // http://127.0.0.1:8080/Drogaria/rest/fabricante/{codigo} + // http://127.0.0.1:8080/Drogaria/rest/fabricante/10 + @GET + @Path("{codigo}") + public String buscar(@PathParam("codigo") Long codigo) { + FabricanteDAO fabricanteDAO = new FabricanteDAO(); + Fabricante fabricante = fabricanteDAO.buscar(codigo); + + Gson gson = new Gson(); + String json = gson.toJson(fabricante); + + return json; + } + + // http://127.0.0.1:8080/Drogaria/rest/fabricante + @POST + public String salvar(String json) { + Gson gson = new Gson(); + Fabricante fabricante = gson.fromJson(json, Fabricante.class); + + FabricanteDAO fabricanteDAO = new FabricanteDAO(); + fabricanteDAO.merge(fabricante); + + String jsonSaida = gson.toJson(fabricante); + return jsonSaida; + } + + // http://127.0.0.1:8080/Drogaria/rest/fabricante + @PUT + public String editar(String json) { + Gson gson = new Gson(); + Fabricante fabricante = gson.fromJson(json, Fabricante.class); + + FabricanteDAO fabricanteDAO = new FabricanteDAO(); + fabricanteDAO.editar(fabricante); + + String jsonSaida = gson.toJson(fabricante); + return jsonSaida; + } + + // http://127.0.0.1:8080/Drogaria/rest/fabricante/{codigo} + // http://127.0.0.1:8080/Drogaria/rest/fabricante/10 + @DELETE + @Path("{codigo}") + public String excluir(@PathParam("codigo") Long codigo){ + FabricanteDAO fabricanteDAO = new FabricanteDAO(); + + Fabricante fabricante = fabricanteDAO.buscar(codigo); + fabricanteDAO.excluir(fabricante); + + Gson gson = new Gson(); + String saida = gson.toJson(fabricante); + return saida; + } +} diff --git a/285_ViewAction/Drogaria/src/main/java/br/pro/delfino/drogaria/service/ProdutoService.java b/285_ViewAction/Drogaria/src/main/java/br/pro/delfino/drogaria/service/ProdutoService.java new file mode 100644 index 0000000..4dfdf40 --- /dev/null +++ b/285_ViewAction/Drogaria/src/main/java/br/pro/delfino/drogaria/service/ProdutoService.java @@ -0,0 +1,39 @@ +package br.pro.delfino.drogaria.service; + +import java.util.List; + +import javax.ws.rs.GET; +import javax.ws.rs.POST; +import javax.ws.rs.Path; + +import com.google.gson.Gson; + +import br.pro.delfino.drogaria.dao.ProdutoDAO; +import br.pro.delfino.drogaria.domain.Produto; + +// http://127.0.0.1:8080/Drogaria/rest/produto +@Path("produto") +public class ProdutoService { + @GET + public String listar(){ + ProdutoDAO produtoDAO = new ProdutoDAO(); + List produtos = produtoDAO.listar("descricao"); + + Gson gson = new Gson(); + String json = gson.toJson(produtos); + + return json; + } + + @POST + public String salvar (String json){ + Gson gson = new Gson(); + Produto produto = gson.fromJson(json, Produto.class); + + ProdutoDAO produtoDAO = new ProdutoDAO(); + produto = produtoDAO.merge(produto); + + String jsonSaida = gson.toJson(produto); + return jsonSaida; + } +} diff --git a/285_ViewAction/Drogaria/src/main/java/br/pro/delfino/drogaria/util/DrogariaResourceConfig.java b/285_ViewAction/Drogaria/src/main/java/br/pro/delfino/drogaria/util/DrogariaResourceConfig.java new file mode 100644 index 0000000..2c997a9 --- /dev/null +++ b/285_ViewAction/Drogaria/src/main/java/br/pro/delfino/drogaria/util/DrogariaResourceConfig.java @@ -0,0 +1,13 @@ +package br.pro.delfino.drogaria.util; + +import javax.ws.rs.ApplicationPath; + +import org.glassfish.jersey.server.ResourceConfig; + +//http://localhost:8080/Drogaria/rest +@ApplicationPath("rest") +public class DrogariaResourceConfig extends ResourceConfig { + public DrogariaResourceConfig(){ + packages("br.pro.delfino.drogaria.service"); + } +} diff --git a/285_ViewAction/Drogaria/src/main/java/br/pro/delfino/drogaria/util/HibernateContexto.java b/285_ViewAction/Drogaria/src/main/java/br/pro/delfino/drogaria/util/HibernateContexto.java new file mode 100644 index 0000000..71869d7 --- /dev/null +++ b/285_ViewAction/Drogaria/src/main/java/br/pro/delfino/drogaria/util/HibernateContexto.java @@ -0,0 +1,18 @@ +package br.pro.delfino.drogaria.util; + +import javax.servlet.ServletContextEvent; +import javax.servlet.ServletContextListener; + +public class HibernateContexto implements ServletContextListener { + + @Override + public void contextDestroyed(ServletContextEvent event) { + HibernateUtil.getFabricaDeSessoes().close(); + } + + @Override + public void contextInitialized(ServletContextEvent event) { + HibernateUtil.getFabricaDeSessoes(); + } + +} diff --git a/285_ViewAction/Drogaria/src/main/java/br/pro/delfino/drogaria/util/HibernateUtil.java b/285_ViewAction/Drogaria/src/main/java/br/pro/delfino/drogaria/util/HibernateUtil.java new file mode 100644 index 0000000..693551b --- /dev/null +++ b/285_ViewAction/Drogaria/src/main/java/br/pro/delfino/drogaria/util/HibernateUtil.java @@ -0,0 +1,47 @@ +package br.pro.delfino.drogaria.util; + +import java.sql.Connection; +import java.sql.SQLException; + +import org.hibernate.Session; +import org.hibernate.SessionFactory; +import org.hibernate.boot.registry.StandardServiceRegistryBuilder; +import org.hibernate.cfg.Configuration; +import org.hibernate.jdbc.ReturningWork; +import org.hibernate.service.ServiceRegistry; + +public class HibernateUtil { + private static SessionFactory fabricaDeSessoes = criarFabricaDeSessoes(); + + public static SessionFactory getFabricaDeSessoes() { + return fabricaDeSessoes; + } + + public static Connection getConexao(){ + Session sessao = fabricaDeSessoes.openSession(); + + Connection conexao = sessao.doReturningWork(new ReturningWork() { + @Override + public Connection execute(Connection conn) throws SQLException { + return conn; + } + }); + + return conexao; + } + + private static SessionFactory criarFabricaDeSessoes() { + try { + Configuration configuracao = new Configuration().configure(); + + ServiceRegistry registro = new StandardServiceRegistryBuilder().applySettings(configuracao.getProperties()).build(); + + SessionFactory fabrica = configuracao.buildSessionFactory(registro); + + return fabrica; + } catch (Throwable ex) { + System.err.println("A fábrica de sessões não pode ser criada." + ex); + throw new ExceptionInInitializerError(ex); + } + } +} diff --git a/285_ViewAction/Drogaria/src/main/resources/hibernate.cfg.xml b/285_ViewAction/Drogaria/src/main/resources/hibernate.cfg.xml new file mode 100644 index 0000000..65f392e --- /dev/null +++ b/285_ViewAction/Drogaria/src/main/resources/hibernate.cfg.xml @@ -0,0 +1,51 @@ + + + + + + + + + + com.mysql.jdbc.Driver + jdbc:mysql://127.0.0.1:3306/drogaria + root + q1w2e3r4 + + + 1 + + + org.hibernate.dialect.MySQL5InnoDBDialect + + + thread + + + org.hibernate.cache.internal.NoCacheProvider + + + true + + + update + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/285_ViewAction/Drogaria/src/main/webapp/WEB-INF/springsecurity.taglib.xml b/285_ViewAction/Drogaria/src/main/webapp/WEB-INF/springsecurity.taglib.xml new file mode 100644 index 0000000..9d6938c --- /dev/null +++ b/285_ViewAction/Drogaria/src/main/webapp/WEB-INF/springsecurity.taglib.xml @@ -0,0 +1,32 @@ + + + + http://www.springframework.org/security/tags + + authorize + org.springframework.faces.security.FaceletsAuthorizeTagHandler + + + areAllGranted + org.springframework.faces.security.FaceletsAuthorizeTagUtils + boolean areAllGranted(java.lang.String) + + + areAnyGranted + org.springframework.faces.security.FaceletsAuthorizeTagUtils + boolean areAnyGranted(java.lang.String) + + + areNotGranted + org.springframework.faces.security.FaceletsAuthorizeTagUtils + boolean areNotGranted(java.lang.String) + + + isAllowed + org.springframework.faces.security.FaceletsAuthorizeTagUtils + boolean isAllowed(java.lang.String, + java.lang.String) + + \ No newline at end of file diff --git a/285_ViewAction/Drogaria/src/main/webapp/WEB-INF/web.xml b/285_ViewAction/Drogaria/src/main/webapp/WEB-INF/web.xml new file mode 100644 index 0000000..6b0cf5d --- /dev/null +++ b/285_ViewAction/Drogaria/src/main/webapp/WEB-INF/web.xml @@ -0,0 +1,48 @@ + + + + + Drogaria + + + + pages/principal.xhtml + + + + + javax.faces.PROJECT_STAGE + Development + + + + + primefaces.THEME + blitzer + + + + + primefaces.UPLOADER + native + + + + + Faces Servlet + javax.faces.webapp.FacesServlet + 1 + + + Faces Servlet + *.xhtml + + + + + br.pro.delfino.drogaria.util.HibernateContexto + + \ No newline at end of file diff --git a/285_ViewAction/Drogaria/src/main/webapp/pages/autenticacao.xhtml b/285_ViewAction/Drogaria/src/main/webapp/pages/autenticacao.xhtml new file mode 100644 index 0000000..e41a833 --- /dev/null +++ b/285_ViewAction/Drogaria/src/main/webapp/pages/autenticacao.xhtml @@ -0,0 +1,36 @@ + + + + + + Autenticação + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/285_ViewAction/Drogaria/src/main/webapp/pages/cidades.xhtml b/285_ViewAction/Drogaria/src/main/webapp/pages/cidades.xhtml new file mode 100644 index 0000000..504f3a3 --- /dev/null +++ b/285_ViewAction/Drogaria/src/main/webapp/pages/cidades.xhtml @@ -0,0 +1,100 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/285_ViewAction/Drogaria/src/main/webapp/pages/clientes.xhtml b/285_ViewAction/Drogaria/src/main/webapp/pages/clientes.xhtml new file mode 100644 index 0000000..4e3cfb5 --- /dev/null +++ b/285_ViewAction/Drogaria/src/main/webapp/pages/clientes.xhtml @@ -0,0 +1,94 @@ + + + + + + Clientes + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/285_ViewAction/Drogaria/src/main/webapp/pages/estados.xhtml b/285_ViewAction/Drogaria/src/main/webapp/pages/estados.xhtml new file mode 100644 index 0000000..0cddf5e --- /dev/null +++ b/285_ViewAction/Drogaria/src/main/webapp/pages/estados.xhtml @@ -0,0 +1,90 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/285_ViewAction/Drogaria/src/main/webapp/pages/fabricantes.xhtml b/285_ViewAction/Drogaria/src/main/webapp/pages/fabricantes.xhtml new file mode 100644 index 0000000..3904db0 --- /dev/null +++ b/285_ViewAction/Drogaria/src/main/webapp/pages/fabricantes.xhtml @@ -0,0 +1,78 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/285_ViewAction/Drogaria/src/main/webapp/pages/historico.xhtml b/285_ViewAction/Drogaria/src/main/webapp/pages/historico.xhtml new file mode 100644 index 0000000..184a864 --- /dev/null +++ b/285_ViewAction/Drogaria/src/main/webapp/pages/historico.xhtml @@ -0,0 +1,64 @@ + + + + + + Histórico + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/285_ViewAction/Drogaria/src/main/webapp/pages/pessoas.xhtml b/285_ViewAction/Drogaria/src/main/webapp/pages/pessoas.xhtml new file mode 100644 index 0000000..7d68e8c --- /dev/null +++ b/285_ViewAction/Drogaria/src/main/webapp/pages/pessoas.xhtml @@ -0,0 +1,162 @@ + + + + + + Pessoas + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/285_ViewAction/Drogaria/src/main/webapp/pages/principal.xhtml b/285_ViewAction/Drogaria/src/main/webapp/pages/principal.xhtml new file mode 100644 index 0000000..726842c --- /dev/null +++ b/285_ViewAction/Drogaria/src/main/webapp/pages/principal.xhtml @@ -0,0 +1,14 @@ + + + + + + + + + \ No newline at end of file diff --git a/285_ViewAction/Drogaria/src/main/webapp/pages/produtos.xhtml b/285_ViewAction/Drogaria/src/main/webapp/pages/produtos.xhtml new file mode 100644 index 0000000..56c5db4 --- /dev/null +++ b/285_ViewAction/Drogaria/src/main/webapp/pages/produtos.xhtml @@ -0,0 +1,141 @@ + + + + + + Produtos + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/285_ViewAction/Drogaria/src/main/webapp/pages/produtosListagem.xhtml b/285_ViewAction/Drogaria/src/main/webapp/pages/produtosListagem.xhtml new file mode 100644 index 0000000..d46750a --- /dev/null +++ b/285_ViewAction/Drogaria/src/main/webapp/pages/produtosListagem.xhtml @@ -0,0 +1,56 @@ + + + + + + + + + + + Produtos + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/285_ViewAction/Drogaria/src/main/webapp/pages/testeJSF.xhtml b/285_ViewAction/Drogaria/src/main/webapp/pages/testeJSF.xhtml new file mode 100644 index 0000000..c20659b --- /dev/null +++ b/285_ViewAction/Drogaria/src/main/webapp/pages/testeJSF.xhtml @@ -0,0 +1,12 @@ + + + + + + Teste JSF + + + + + \ No newline at end of file diff --git a/285_ViewAction/Drogaria/src/main/webapp/pages/testePrimeFaces.xhtml b/285_ViewAction/Drogaria/src/main/webapp/pages/testePrimeFaces.xhtml new file mode 100644 index 0000000..6c4d434 --- /dev/null +++ b/285_ViewAction/Drogaria/src/main/webapp/pages/testePrimeFaces.xhtml @@ -0,0 +1,14 @@ + + + + + + Teste PrimeFaces + + + + + \ No newline at end of file diff --git a/285_ViewAction/Drogaria/src/main/webapp/pages/usuarios.xhtml b/285_ViewAction/Drogaria/src/main/webapp/pages/usuarios.xhtml new file mode 100644 index 0000000..45dd761 --- /dev/null +++ b/285_ViewAction/Drogaria/src/main/webapp/pages/usuarios.xhtml @@ -0,0 +1,97 @@ + + + + + + Usuários + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/285_ViewAction/Drogaria/src/main/webapp/pages/vendas.xhtml b/285_ViewAction/Drogaria/src/main/webapp/pages/vendas.xhtml new file mode 100644 index 0000000..4485892 --- /dev/null +++ b/285_ViewAction/Drogaria/src/main/webapp/pages/vendas.xhtml @@ -0,0 +1,156 @@ + + + + + + Vendas + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/285_ViewAction/Drogaria/src/main/webapp/reports/estados.jasper b/285_ViewAction/Drogaria/src/main/webapp/reports/estados.jasper new file mode 100644 index 0000000..96a1278 Binary files /dev/null and b/285_ViewAction/Drogaria/src/main/webapp/reports/estados.jasper differ diff --git a/285_ViewAction/Drogaria/src/main/webapp/reports/estados.jrxml b/285_ViewAction/Drogaria/src/main/webapp/reports/estados.jrxml new file mode 100644 index 0000000..76da981 --- /dev/null +++ b/285_ViewAction/Drogaria/src/main/webapp/reports/estados.jrxml @@ -0,0 +1,102 @@ + + + + + + + + + + + + + + + + + + + + <band height="80" splitType="Stretch"> + <image hAlign="Center" vAlign="Middle"> + <reportElement x="0" y="0" width="555" height="80" uuid="6f3208e9-d291-48b3-b13d-3ec9ef72cd3e"> + <property name="com.jaspersoft.studio.unit.width" value="pixel"/> + </reportElement> + <imageExpression><![CDATA["C:/Programação Web com Java/Workspace/Drogaria/src/main/webapp/resources/images/banner.jpg"]]></imageExpression> + </image> + </band> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/285_ViewAction/Drogaria/src/main/webapp/reports/produtos.jasper b/285_ViewAction/Drogaria/src/main/webapp/reports/produtos.jasper new file mode 100644 index 0000000..ad55e5f Binary files /dev/null and b/285_ViewAction/Drogaria/src/main/webapp/reports/produtos.jasper differ diff --git a/285_ViewAction/Drogaria/src/main/webapp/reports/produtos.jrxml b/285_ViewAction/Drogaria/src/main/webapp/reports/produtos.jrxml new file mode 100644 index 0000000..800aed0 --- /dev/null +++ b/285_ViewAction/Drogaria/src/main/webapp/reports/produtos.jrxml @@ -0,0 +1,130 @@ + + + + + + + + + + + + + + + + + + + + + <band height="79" splitType="Stretch"> + <image hAlign="Center"> + <reportElement x="0" y="0" width="555" height="79" uuid="727feda0-73ba-4c27-aa2c-a431492bd3d6"> + <property name="com.jaspersoft.studio.unit.width" value="pixel"/> + </reportElement> + <imageExpression><![CDATA["C:/Programação Web com Java/Workspace/Drogaria/src/main/webapp/resources/images/banner.jpg"]]></imageExpression> + </image> + </band> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/285_ViewAction/Drogaria/src/main/webapp/resources/css/estilos.css b/285_ViewAction/Drogaria/src/main/webapp/resources/css/estilos.css new file mode 100644 index 0000000..4acdd7f --- /dev/null +++ b/285_ViewAction/Drogaria/src/main/webapp/resources/css/estilos.css @@ -0,0 +1,19 @@ +@CHARSET "UTF-8"; + +.imagemCentralizada { + display: block; + margin-left: auto; + margin-right: auto; +} + +.divTopo { + padding-bottom: 5px; +} + +.divCabecalho { + padding-bottom: 5px; +} + +.ui-widget, .ui-widget .ui-widget { + font-size: 100% !important; +} \ No newline at end of file diff --git a/285_ViewAction/Drogaria/src/main/webapp/resources/images/banner.jpg b/285_ViewAction/Drogaria/src/main/webapp/resources/images/banner.jpg new file mode 100644 index 0000000..f58cc21 Binary files /dev/null and b/285_ViewAction/Drogaria/src/main/webapp/resources/images/banner.jpg differ diff --git a/285_ViewAction/Drogaria/src/main/webapp/resources/js/scripts.js b/285_ViewAction/Drogaria/src/main/webapp/resources/js/scripts.js new file mode 100644 index 0000000..e39ad9b --- /dev/null +++ b/285_ViewAction/Drogaria/src/main/webapp/resources/js/scripts.js @@ -0,0 +1,26 @@ +PrimeFaces.locales['pt_BR'] = { + closeText: 'Fechar', + prevText: 'Anterior', + nextText: 'Próximo', + currentText: 'Começo', + monthNames: ['Janeiro','Fevereiro','Março','Abril','Maio','Junho','Julho','Agosto','Setembro','Outubro','Novembro','Dezembro'], + monthNamesShort: ['Jan','Fev','Mar','Abr','Mai','Jun', 'Jul','Ago','Set','Out','Nov','Dez'], + dayNames: ['Domingo','Segunda','Terça','Quarta','Quinta','Sexta','Sábado'], + dayNamesShort: ['Dom','Seg','Ter','Qua','Qui','Sex','Sáb'], + dayNamesMin: ['D','S','T','Q','Q','S','S'], + weekHeader: 'Semana', + firstDay: 0, + isRTL: false, + showMonthAfterYear: false, + yearSuffix: '', + timeOnlyTitle: 'Só Horas', + timeText: 'Tempo', + hourText: 'Hora', + minuteText: 'Minuto', + secondText: 'Segundo', + ampm: false, + month: 'Mês', + week: 'Semana', + day: 'Dia', + allDayText : 'Todo o Dia' +}; \ No newline at end of file diff --git a/285_ViewAction/Drogaria/src/main/webapp/templates/modelo.xhtml b/285_ViewAction/Drogaria/src/main/webapp/templates/modelo.xhtml new file mode 100644 index 0000000..62d3d1c --- /dev/null +++ b/285_ViewAction/Drogaria/src/main/webapp/templates/modelo.xhtml @@ -0,0 +1,55 @@ + + + + + + SiGDro + + + + + +
+
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+
+ \ No newline at end of file diff --git a/285_ViewAction/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/CaixaDAOTest.java b/285_ViewAction/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/CaixaDAOTest.java new file mode 100644 index 0000000..b5e6156 --- /dev/null +++ b/285_ViewAction/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/CaixaDAOTest.java @@ -0,0 +1,33 @@ +package br.pro.delfino.drogaria.dao; + +import java.math.BigDecimal; +import java.text.ParseException; +import java.text.SimpleDateFormat; + +import org.junit.Assert; +import org.junit.Ignore; +import org.junit.Test; + +import br.pro.delfino.drogaria.domain.Caixa; + +public class CaixaDAOTest { + @Test + @Ignore + public void salvar() throws ParseException { + Caixa caixa = new Caixa(); + caixa.setDataAbertura(new SimpleDateFormat("dd/MM/yyyy").parse("14/12/2015")); + caixa.setValorAbertura(new BigDecimal("100.00")); + + CaixaDAO caixaDAO = new CaixaDAO(); + caixaDAO.salvar(caixa); + } + + @Test + @Ignore + public void buscar() throws ParseException { + CaixaDAO caixaDAO = new CaixaDAO(); + Caixa caixa = caixaDAO.buscar(new SimpleDateFormat("dd/MM/yyyy").parse("13/12/2015")); + System.out.println(caixa); + Assert.assertNull(caixa); + } +} diff --git a/285_ViewAction/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/CidadeDAOTest.java b/285_ViewAction/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/CidadeDAOTest.java new file mode 100644 index 0000000..ec59599 --- /dev/null +++ b/285_ViewAction/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/CidadeDAOTest.java @@ -0,0 +1,130 @@ +package br.pro.delfino.drogaria.dao; + +import java.util.List; + +import org.junit.Ignore; +import org.junit.Test; + +import br.pro.delfino.drogaria.domain.Cidade; +import br.pro.delfino.drogaria.domain.Estado; + +public class CidadeDAOTest { + @Test + @Ignore + public void salvar() { + Long codigoEstado = 1L; + + EstadoDAO estadoDAO = new EstadoDAO(); + + Estado estado = estadoDAO.buscar(codigoEstado); + + Cidade cidade = new Cidade(); + cidade.setNome("Marília"); + cidade.setEstado(estado); + + CidadeDAO cidadeDAO = new CidadeDAO(); + cidadeDAO.salvar(cidade); + } + + @Test + @Ignore + public void listar() { + CidadeDAO cidadeDAO = new CidadeDAO(); + List resultado = cidadeDAO.listar(); + + for (Cidade cidade : resultado) { + System.out.println("Código da Cidade: " + cidade.getCodigo()); + System.out.println("Nome da Cidade: " + cidade.getNome()); + System.out.println("Código do Estado: " + cidade.getEstado().getCodigo()); + System.out.println("Sigla do Estado: " + cidade.getEstado().getSigla()); + System.out.println("Nome do Estado: " + cidade.getEstado().getNome()); + System.out.println(); + } + } + + @Test + @Ignore + public void buscar(){ + Long codigo = 7L; + + CidadeDAO cidadeDAO = new CidadeDAO(); + Cidade cidade = cidadeDAO.buscar(codigo); + + System.out.println("Código da Cidade: " + cidade.getCodigo()); + System.out.println("Nome da Cidade: " + cidade.getNome()); + System.out.println("Código do Estado: " + cidade.getEstado().getCodigo()); + System.out.println("Sigla do Estado: " + cidade.getEstado().getSigla()); + System.out.println("Nome do Estado: " + cidade.getEstado().getNome()); + } + + @Test + @Ignore + public void excluir(){ + Long codigo = 7L; + + CidadeDAO cidadeDAO = new CidadeDAO(); + Cidade cidade = cidadeDAO.buscar(codigo); + + cidadeDAO.excluir(cidade); + + System.out.println("Cidade Removida"); + System.out.println("Código da Cidade: " + cidade.getCodigo()); + System.out.println("Nome da Cidade: " + cidade.getNome()); + System.out.println("Código do Estado: " + cidade.getEstado().getCodigo()); + System.out.println("Sigla do Estado: " + cidade.getEstado().getSigla()); + System.out.println("Nome do Estado: " + cidade.getEstado().getNome()); + } + + @Test + @Ignore + public void editar(){ + Long codigoCidade = 6L; + Long codigoEstado = 11L; + + EstadoDAO estadoDAO = new EstadoDAO(); + Estado estado = estadoDAO.buscar(codigoEstado); + + System.out.println("Código do Estado: " + estado.getCodigo()); + System.out.println("Sigla do Estado: " + estado.getSigla()); + System.out.println("Nome do Estado: " + estado.getNome()); + + CidadeDAO cidadeDAO = new CidadeDAO(); + Cidade cidade = cidadeDAO.buscar(codigoCidade); + + System.out.println("Cidade A Ser Editada"); + System.out.println("Código da Cidade: " + cidade.getCodigo()); + System.out.println("Nome da Cidade: " + cidade.getNome()); + System.out.println("Código do Estado: " + cidade.getEstado().getCodigo()); + System.out.println("Sigla do Estado: " + cidade.getEstado().getSigla()); + System.out.println("Nome do Estado: " + cidade.getEstado().getNome()); + + cidade.setNome("Guarapuava"); + cidade.setEstado(estado); + + cidadeDAO.editar(cidade); + + System.out.println("Cidade Editada"); + System.out.println("Código da Cidade: " + cidade.getCodigo()); + System.out.println("Nome da Cidade: " + cidade.getNome()); + System.out.println("Código do Estado: " + cidade.getEstado().getCodigo()); + System.out.println("Sigla do Estado: " + cidade.getEstado().getSigla()); + System.out.println("Nome do Estado: " + cidade.getEstado().getNome()); + } + + @Test + public void buscarPorEstado() { + Long estadoCodigo = 3L; + + CidadeDAO cidadeDAO = new CidadeDAO(); + List resultado = cidadeDAO.buscarPorEstado(estadoCodigo); + + for (Cidade cidade : resultado) { + System.out.println("Código da Cidade: " + cidade.getCodigo()); + System.out.println("Nome da Cidade: " + cidade.getNome()); + System.out.println("Código do Estado: " + cidade.getEstado().getCodigo()); + System.out.println("Sigla do Estado: " + cidade.getEstado().getSigla()); + System.out.println("Nome do Estado: " + cidade.getEstado().getNome()); + System.out.println(); + } + } +} diff --git a/285_ViewAction/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/ClienteDAOTest.java b/285_ViewAction/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/ClienteDAOTest.java new file mode 100644 index 0000000..4d557d9 --- /dev/null +++ b/285_ViewAction/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/ClienteDAOTest.java @@ -0,0 +1,29 @@ +package br.pro.delfino.drogaria.dao; + +import java.text.ParseException; +import java.text.SimpleDateFormat; + +import org.junit.Ignore; +import org.junit.Test; + +import br.pro.delfino.drogaria.domain.Cliente; +import br.pro.delfino.drogaria.domain.Pessoa; + +public class ClienteDAOTest { + @Test + @Ignore + public void salvar() throws ParseException { + PessoaDAO pessoaDAO = new PessoaDAO(); + Pessoa pessoa = pessoaDAO.buscar(2L); + + Cliente cliente = new Cliente(); + cliente.setDataCadastro(new SimpleDateFormat("dd/MM/yyyy").parse("09/06/2015")); + cliente.setLiberado(false); + cliente.setPessoa(pessoa); + + ClienteDAO clienteDAO = new ClienteDAO(); + clienteDAO.salvar(cliente); + + System.out.println("Cliente salvo com sucesso."); + } +} diff --git a/285_ViewAction/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/EstadoDAOTest.java b/285_ViewAction/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/EstadoDAOTest.java new file mode 100644 index 0000000..f84a086 --- /dev/null +++ b/285_ViewAction/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/EstadoDAOTest.java @@ -0,0 +1,88 @@ +package br.pro.delfino.drogaria.dao; + +import java.util.List; + +import org.junit.Ignore; +import org.junit.Test; + +import br.pro.delfino.drogaria.domain.Estado; + +public class EstadoDAOTest { + @Test + @Ignore + public void salvar() { + Estado estado = new Estado(); + estado.setNome("Rio Grande do Sul"); + estado.setSigla("RS"); + + EstadoDAO estadoDAO = new EstadoDAO(); + estadoDAO.salvar(estado); + } + + @Test + @Ignore + public void listar() { + EstadoDAO estadoDAO = new EstadoDAO(); + List resultado = estadoDAO.listar(); + + System.out.println("Total de Registros Encontrados: " + resultado.size()); + + for (Estado estado : resultado) { + System.out.println(estado.getCodigo() + " - " + estado.getSigla() + " - " + estado.getNome()); + } + } + + @Test + @Ignore + public void buscar(){ + Long codigo = 3L; + + EstadoDAO estadoDAO = new EstadoDAO(); + Estado estado = estadoDAO.buscar(codigo); + + if(estado == null){ + System.out.println("Nenhum registro encontrado"); + }else{ + System.out.println("Registro encontrado:"); + System.out.println(estado.getCodigo() + " - " + estado.getSigla() + " - " + estado.getNome()); + } + } + + @Test + @Ignore + public void excluir(){ + Long codigo = 1L; + EstadoDAO estadoDAO = new EstadoDAO(); + Estado estado = estadoDAO.buscar(codigo); + + if(estado == null){ + System.out.println("Nenhum registro encontrado"); + }else{ + estadoDAO.excluir(estado); + System.out.println("Registro removido:"); + System.out.println(estado.getCodigo() + " - " + estado.getSigla() + " - " + estado.getNome()); + } + } + + @Test + @Ignore + public void editar(){ + Long codigo = 10L; + EstadoDAO estadoDAO = new EstadoDAO(); + Estado estado = estadoDAO.buscar(codigo); + + if(estado == null){ + System.out.println("Nenhum registro encontrado"); + }else{ + System.out.println("Registro editado - Antes:"); + System.out.println(estado.getCodigo() + " - " + estado.getSigla() + " - " + estado.getNome()); + + estado.setNome("Santa Catarina"); + estado.setSigla("SC"); + estadoDAO.editar(estado); + + System.out.println("Registro editado - Depois:"); + System.out.println(estado.getCodigo() + " - " + estado.getSigla() + " - " + estado.getNome()); + } + } +} diff --git a/285_ViewAction/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/FabricanteDAOTest.java b/285_ViewAction/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/FabricanteDAOTest.java new file mode 100644 index 0000000..56fb124 --- /dev/null +++ b/285_ViewAction/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/FabricanteDAOTest.java @@ -0,0 +1,63 @@ +package br.pro.delfino.drogaria.dao; + +import java.util.List; + +import org.junit.Ignore; +import org.junit.Test; + +import br.pro.delfino.drogaria.domain.Fabricante; + +public class FabricanteDAOTest { + @Test + @Ignore + public void salvar() { + Fabricante fabricante = new Fabricante(); + fabricante.setDescricao("Aché"); + + FabricanteDAO fabricanteDAO = new FabricanteDAO(); + fabricanteDAO.salvar(fabricante); + } + + @Test + @Ignore + public void listar() { + FabricanteDAO FabricanteDAO = new FabricanteDAO(); + List resultado = FabricanteDAO.listar(); + + System.out.println("Total de Registros Encontrados: " + resultado.size()); + + for (Fabricante fabricante : resultado) { + System.out.println(fabricante.getCodigo() + " - " + fabricante.getDescricao()); + } + } + + @Test + @Ignore + public void buscar(){ + Long codigo = 3L; + + FabricanteDAO fabricanteDAO = new FabricanteDAO(); + Fabricante fabricante = fabricanteDAO.buscar(codigo); + + if(fabricante == null){ + System.out.println("Nenhum registro encontrado"); + }else{ + System.out.println("Registro encontrado:"); + System.out.println(fabricante.getCodigo() + " - " + fabricante.getDescricao()); + } + } + + @Test + @Ignore + public void merge() { + //Fabricante fabricante = new Fabricante(); + //fabricante.setDescricao("Fabricante A"); + //FabricanteDAO fabricanteDAO = new FabricanteDAO(); + //fabricanteDAO.merge(fabricante); + + FabricanteDAO fabricanteDAO = new FabricanteDAO(); + Fabricante fabricante = fabricanteDAO.buscar(5L); + fabricante.setDescricao("Fabricante B"); + fabricanteDAO.merge(fabricante); + } +} diff --git a/285_ViewAction/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/FuncionarioDAOTest.java b/285_ViewAction/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/FuncionarioDAOTest.java new file mode 100644 index 0000000..06cfff7 --- /dev/null +++ b/285_ViewAction/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/FuncionarioDAOTest.java @@ -0,0 +1,5 @@ +package br.pro.delfino.drogaria.dao; + +public class FuncionarioDAOTest { + +} diff --git a/285_ViewAction/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/ProdutoDAOTest.java b/285_ViewAction/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/ProdutoDAOTest.java new file mode 100644 index 0000000..36f8563 --- /dev/null +++ b/285_ViewAction/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/ProdutoDAOTest.java @@ -0,0 +1,29 @@ +package br.pro.delfino.drogaria.dao; + +import java.math.BigDecimal; + +import org.junit.Ignore; +import org.junit.Test; + +import br.pro.delfino.drogaria.domain.Fabricante; +import br.pro.delfino.drogaria.domain.Produto; + +public class ProdutoDAOTest { + @Test + @Ignore + public void salvar(){ + FabricanteDAO fabricanteDAO = new FabricanteDAO(); + Fabricante fabricante = fabricanteDAO.buscar(new Long("3")); + + Produto produto = new Produto(); + produto.setDescricao("Cataflan 50mg com 20 Comprimidos"); + produto.setFabricante(fabricante); + produto.setPreco(new BigDecimal("13.70")); + produto.setQuantidade(new Short("7")); + + ProdutoDAO produtoDAO = new ProdutoDAO(); + produtoDAO.salvar(produto); + + System.out.println("Produto salvo com sucesso"); + } +} diff --git a/285_ViewAction/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/UsuarioDAOTest.java b/285_ViewAction/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/UsuarioDAOTest.java new file mode 100644 index 0000000..c567ec8 --- /dev/null +++ b/285_ViewAction/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/UsuarioDAOTest.java @@ -0,0 +1,47 @@ +package br.pro.delfino.drogaria.dao; + +import org.apache.shiro.crypto.hash.SimpleHash; +import org.junit.Ignore; +import org.junit.Test; + +import br.pro.delfino.drogaria.domain.Pessoa; +import br.pro.delfino.drogaria.domain.Usuario; + +public class UsuarioDAOTest { + @Test + @Ignore + public void salvar(){ + PessoaDAO pessoaDAO = new PessoaDAO(); + Pessoa pessoa = pessoaDAO.buscar(3L); + + System.out.println("Pessoa Encontrada"); + System.out.println("Nome: " + pessoa.getNome()); + System.out.println("CPF: " + pessoa.getCpf()); + + Usuario usuario = new Usuario(); + usuario.setAtivo(true); + usuario.setPessoa(pessoa); + usuario.setSenhaSemCriptografia("q1w2e3r4"); + + SimpleHash hash = new SimpleHash("md5", usuario.getSenhaSemCriptografia()); + usuario.setSenha(hash.toHex()); + + usuario.setTipo('B'); + + UsuarioDAO usuarioDAO = new UsuarioDAO(); + usuarioDAO.salvar(usuario); + + System.out.println("Usuário salvo com sucesso."); + } + + @Test + public void autenticar(){ + String cpf = "999.999.999-99"; + String senha = "12345678"; + + UsuarioDAO usuarioDAO = new UsuarioDAO(); + Usuario usuario = usuarioDAO.autenticar(cpf, senha); + + System.out.println("Usuário autentica: " + usuario); + } +} diff --git a/285_ViewAction/Drogaria/src/test/java/br/pro/delfino/drogaria/util/HibernateUtilTest.java b/285_ViewAction/Drogaria/src/test/java/br/pro/delfino/drogaria/util/HibernateUtilTest.java new file mode 100644 index 0000000..75776e0 --- /dev/null +++ b/285_ViewAction/Drogaria/src/test/java/br/pro/delfino/drogaria/util/HibernateUtilTest.java @@ -0,0 +1,13 @@ +package br.pro.delfino.drogaria.util; + +import org.hibernate.Session; +import org.junit.Test; + +public class HibernateUtilTest { + @Test + public void conectar(){ + Session sessao = HibernateUtil.getFabricaDeSessoes().openSession(); + sessao.close(); + HibernateUtil.getFabricaDeSessoes().close(); + } +} diff --git a/286_ViewParam/Drogaria/.tern-project b/286_ViewParam/Drogaria/.tern-project new file mode 100644 index 0000000..b6f48dd --- /dev/null +++ b/286_ViewParam/Drogaria/.tern-project @@ -0,0 +1 @@ +{"ide":{},"libs":["ecma5","browser"],"plugins":{"guess-types":{},"angular":{}}} \ No newline at end of file diff --git a/286_ViewParam/Drogaria/pom.xml b/286_ViewParam/Drogaria/pom.xml new file mode 100644 index 0000000..39b1e60 --- /dev/null +++ b/286_ViewParam/Drogaria/pom.xml @@ -0,0 +1,132 @@ + + 4.0.0 + br.pro.delfino.drogaria + Drogaria + 1.0 + war + + + + UTF-8 + + + + + + Drogaria + + + + + + org.apache.maven.plugins + maven-compiler-plugin + 3.3 + + 1.8 + 1.8 + + + + + + + + + + prime-repo + PrimeFaces Maven Repository + http://repository.primefaces.org + default + + + + + + + + org.hibernate + hibernate-core + 4.3.11.Final + + + + + mysql + mysql-connector-java + 5.1.36 + + + + + junit + junit + 4.12 + + + + + org.glassfish + javax.faces + 2.2.12 + + + + + org.primefaces + primefaces + 5.2 + + + + + org.primefaces.themes + all-themes + 1.0.10 + + + + + org.omnifaces + omnifaces + 1.11 + + + + + javax.servlet + javax.servlet-api + 3.1.0 + + + + + org.glassfish.jersey.containers + jersey-container-servlet + 2.22.1 + + + + + com.google.code.gson + gson + 2.4 + + + + + net.sf.jasperreports + jasperreports + 6.1.1 + + + + + org.apache.shiro + shiro-core + 1.2.4 + + + + \ No newline at end of file diff --git a/286_ViewParam/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/AutenticacaoBean.java b/286_ViewParam/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/AutenticacaoBean.java new file mode 100644 index 0000000..7e86b0d --- /dev/null +++ b/286_ViewParam/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/AutenticacaoBean.java @@ -0,0 +1,60 @@ +package br.pro.delfino.drogaria.bean; + +import java.io.IOException; + +import javax.annotation.PostConstruct; +import javax.faces.bean.ManagedBean; +import javax.faces.bean.SessionScoped; + +import org.omnifaces.util.Faces; +import org.omnifaces.util.Messages; + +import br.pro.delfino.drogaria.dao.UsuarioDAO; +import br.pro.delfino.drogaria.domain.Pessoa; +import br.pro.delfino.drogaria.domain.Usuario; + +@ManagedBean +@SessionScoped +public class AutenticacaoBean { + private Usuario usuario; + private Usuario usuarioLogado; + + public Usuario getUsuario() { + return usuario; + } + + public void setUsuario(Usuario usuario) { + this.usuario = usuario; + } + + public Usuario getUsuarioLogado() { + return usuarioLogado; + } + + public void setUsuarioLogado(Usuario usuarioLogado) { + this.usuarioLogado = usuarioLogado; + } + + @PostConstruct + public void iniciar() { + usuario = new Usuario(); + usuario.setPessoa(new Pessoa()); + } + + public void autenticar() { + try { + UsuarioDAO usuarioDAO = new UsuarioDAO(); + usuarioLogado = usuarioDAO.autenticar(usuario.getPessoa().getCpf(), usuario.getSenha()); + + if(usuarioLogado == null){ + Messages.addGlobalError("CPF e/ou senha incorretos"); + return; + } + + Faces.redirect("./pages/principal.xhtml"); + } catch (IOException erro) { + erro.printStackTrace(); + Messages.addGlobalError(erro.getMessage()); + } + } +} diff --git a/286_ViewParam/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/CidadeBean.java b/286_ViewParam/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/CidadeBean.java new file mode 100644 index 0000000..4b03075 --- /dev/null +++ b/286_ViewParam/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/CidadeBean.java @@ -0,0 +1,119 @@ +package br.pro.delfino.drogaria.bean; + +import java.io.Serializable; +import java.util.List; + +import javax.annotation.PostConstruct; +import javax.faces.bean.ManagedBean; +import javax.faces.bean.ViewScoped; +import javax.faces.event.ActionEvent; + +import org.omnifaces.util.Messages; + +import br.pro.delfino.drogaria.dao.CidadeDAO; +import br.pro.delfino.drogaria.dao.EstadoDAO; +import br.pro.delfino.drogaria.domain.Cidade; +import br.pro.delfino.drogaria.domain.Estado; + +@SuppressWarnings("serial") +@ManagedBean +@ViewScoped +public class CidadeBean implements Serializable { + private Cidade cidade; + private List cidades; + private List estados; + + public Cidade getCidade() { + return cidade; + } + + public void setCidade(Cidade cidade) { + this.cidade = cidade; + } + + public List getCidades() { + return cidades; + } + + public void setCidades(List cidades) { + this.cidades = cidades; + } + + public List getEstados() { + return estados; + } + + public void setEstados(List estados) { + this.estados = estados; + } + + @PostConstruct + public void listar() { + try { + CidadeDAO cidadeDAO = new CidadeDAO(); + cidades = cidadeDAO.listar("nome"); + } catch (RuntimeException erro) { + Messages.addFlashGlobalError("Ocorreu um erro ao tentar listar as cidades"); + erro.printStackTrace(); + } + } + + public void novo() { + try { + cidade = new Cidade(); + + EstadoDAO estadoDAO = new EstadoDAO(); + estados = estadoDAO.listar("nome"); + } catch (RuntimeException erro) { + Messages.addFlashGlobalError("Ocorreu um erro ao gerar uma nova cidade"); + erro.printStackTrace(); + } + } + + public void salvar() { + try { + CidadeDAO cidadeDAO = new CidadeDAO(); + cidadeDAO.merge(cidade); + + cidade = new Cidade(); + + EstadoDAO estadoDAO = new EstadoDAO(); + estados = estadoDAO.listar(); + + cidades = cidadeDAO.listar(); + + Messages.addGlobalInfo("Cidade salva com sucesso"); + } catch (RuntimeException erro) { + Messages.addFlashGlobalError("Ocorreu um erro ao tentar salvar uma nova cidade"); + erro.printStackTrace(); + } + } + + public void excluir(ActionEvent evento) { + try { + cidade = (Cidade) evento.getComponent().getAttributes().get("cidadeSelecionada"); + + CidadeDAO cidadeDAO = new CidadeDAO(); + cidadeDAO.excluir(cidade); + + cidades = cidadeDAO.listar(); + + Messages.addGlobalInfo("Cidade removida com sucesso"); + } catch (RuntimeException erro) { + Messages.addFlashGlobalError("Ocorreu um erro ao tentar remover a cidade"); + erro.printStackTrace(); + } + } + + public void editar(ActionEvent evento){ + try { + cidade = (Cidade) evento.getComponent().getAttributes().get("cidadeSelecionada"); + + EstadoDAO estadoDAO = new EstadoDAO(); + estados = estadoDAO.listar(); + } catch (RuntimeException erro) { + Messages.addFlashGlobalError("Ocorreu um erro ao tentar selecionar uma cidade"); + erro.printStackTrace(); + } + } +} diff --git a/286_ViewParam/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/ClienteBean.java b/286_ViewParam/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/ClienteBean.java new file mode 100644 index 0000000..c96b115 --- /dev/null +++ b/286_ViewParam/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/ClienteBean.java @@ -0,0 +1,91 @@ +package br.pro.delfino.drogaria.bean; + +import java.io.Serializable; +import java.util.List; + +import javax.annotation.PostConstruct; +import javax.faces.bean.ManagedBean; +import javax.faces.bean.ViewScoped; + +import org.omnifaces.util.Messages; + +import br.pro.delfino.drogaria.dao.ClienteDAO; +import br.pro.delfino.drogaria.dao.PessoaDAO; +import br.pro.delfino.drogaria.domain.Cliente; +import br.pro.delfino.drogaria.domain.Pessoa; + +@SuppressWarnings("serial") +@ManagedBean +@ViewScoped +public class ClienteBean implements Serializable { + private Cliente cliente; + + private List clientes; + private List pessoas; + + public Cliente getCliente() { + return cliente; + } + + public void setCliente(Cliente cliente) { + this.cliente = cliente; + } + + public List getClientes() { + return clientes; + } + + public void setClientes(List clientes) { + this.clientes = clientes; + } + + public List getPessoas() { + return pessoas; + } + + public void setPessoas(List pessoas) { + this.pessoas = pessoas; + } + + @PostConstruct + public void listar() { + try { + ClienteDAO clienteDAO = new ClienteDAO(); + clientes = clienteDAO.listar("dataCadastro"); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar listar os clientes"); + erro.printStackTrace(); + } + } + + public void novo() { + try { + cliente = new Cliente(); + + PessoaDAO pessoaDAO = new PessoaDAO(); + pessoas = pessoaDAO.listar("nome"); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar criar um novo cliente"); + erro.printStackTrace(); + } + } + + public void salvar() { + try { + ClienteDAO clienteDAO = new ClienteDAO(); + clienteDAO.merge(cliente); + + cliente = new Cliente(); + + clientes = clienteDAO.listar("dataCadastro"); + + PessoaDAO pessoaDAO = new PessoaDAO(); + pessoas = pessoaDAO.listar("nome"); + + Messages.addGlobalInfo("Cliente salvo com sucesso"); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar salvar o cliente"); + erro.printStackTrace(); + } + } +} diff --git a/286_ViewParam/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/EstadoBean.java b/286_ViewParam/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/EstadoBean.java new file mode 100644 index 0000000..b4921fe --- /dev/null +++ b/286_ViewParam/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/EstadoBean.java @@ -0,0 +1,88 @@ +package br.pro.delfino.drogaria.bean; + +import java.io.Serializable; +import java.util.List; + +import javax.annotation.PostConstruct; +import javax.faces.bean.ManagedBean; +import javax.faces.bean.ViewScoped; +import javax.faces.event.ActionEvent; + +import org.omnifaces.util.Messages; + +import br.pro.delfino.drogaria.dao.EstadoDAO; +import br.pro.delfino.drogaria.domain.Estado; + +@SuppressWarnings("serial") +@ManagedBean +@ViewScoped +public class EstadoBean implements Serializable { + private Estado estado; + private List estados; + + public Estado getEstado() { + return estado; + } + + public void setEstado(Estado estado) { + this.estado = estado; + } + + public List getEstados() { + return estados; + } + + public void setEstados(List estados) { + this.estados = estados; + } + + @PostConstruct + public void listar() { + try { + EstadoDAO estadoDAO = new EstadoDAO(); + estados = estadoDAO.listar(); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar listar os estados"); + erro.printStackTrace(); + } + } + + public void novo() { + estado = new Estado(); + } + + public void salvar() { + try { + EstadoDAO estadoDAO = new EstadoDAO(); + estadoDAO.merge(estado); + + estado = new Estado(); + estados = estadoDAO.listar(); + + Messages.addGlobalInfo("Estado salvo com sucesso"); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar salvar o estado"); + erro.printStackTrace(); + } + } + + public void excluir(ActionEvent evento) { + try { + estado = (Estado) evento.getComponent().getAttributes().get("estadoSelecionado"); + + EstadoDAO estadoDAO = new EstadoDAO(); + estadoDAO.excluir(estado); + + estados = estadoDAO.listar(); + + Messages.addGlobalInfo("Estado removido com sucesso"); + } catch (RuntimeException erro) { + Messages.addFlashGlobalError("Ocorreu um erro ao tentar remover o estado"); + erro.printStackTrace(); + } + } + + public void editar(ActionEvent evento) { + estado = (Estado) evento.getComponent().getAttributes().get("estadoSelecionado"); + } +} diff --git a/286_ViewParam/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/FabricanteBean.java b/286_ViewParam/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/FabricanteBean.java new file mode 100644 index 0000000..7fddf7d --- /dev/null +++ b/286_ViewParam/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/FabricanteBean.java @@ -0,0 +1,116 @@ +package br.pro.delfino.drogaria.bean; + +import java.io.Serializable; +import java.util.Arrays; +import java.util.List; + +import javax.annotation.PostConstruct; +import javax.faces.bean.ManagedBean; +import javax.faces.bean.ViewScoped; +import javax.faces.event.ActionEvent; +import javax.ws.rs.client.Client; +import javax.ws.rs.client.ClientBuilder; +import javax.ws.rs.client.Entity; +import javax.ws.rs.client.WebTarget; + +import org.omnifaces.util.Messages; + +import com.google.gson.Gson; + +import br.pro.delfino.drogaria.domain.Fabricante; + +@SuppressWarnings("serial") +@ManagedBean +@ViewScoped +public class FabricanteBean implements Serializable { + private Fabricante fabricante; + private List fabricantes; + + public Fabricante getFabricante() { + return fabricante; + } + + public void setFabricante(Fabricante fabricante) { + this.fabricante = fabricante; + } + + public List getFabricantes() { + return fabricantes; + } + + public void setFabricantes(List fabricantes) { + this.fabricantes = fabricantes; + } + + @PostConstruct + public void listar() { + try { + Client cliente = ClientBuilder.newClient(); + WebTarget caminho = cliente.target("http://127.0.0.1:8080/Drogaria/rest/fabricante"); + String json = caminho.request().get(String.class); + + Gson gson = new Gson(); + Fabricante[] vetor = gson.fromJson(json, Fabricante[].class); + + fabricantes = Arrays.asList(vetor); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar listar os fabricantes"); + erro.printStackTrace(); + } + } + + public void novo() { + fabricante = new Fabricante(); + } + + public void salvar() { + try { + Client cliente = ClientBuilder.newClient(); + WebTarget caminho = cliente.target("http://127.0.0.1:8080/Drogaria/rest/fabricante"); + + Gson gson = new Gson(); + + String json = gson.toJson(fabricante); + caminho.request().post(Entity.json(json)); + + fabricante = new Fabricante(); + + json = caminho.request().get(String.class); + Fabricante[] vetor = gson.fromJson(json, Fabricante[].class); + fabricantes = Arrays.asList(vetor); + + Messages.addGlobalInfo("Fabricante salvo com sucesso"); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar salvar o fabricante"); + erro.printStackTrace(); + } + } + + public void excluir(ActionEvent evento) { + try { + fabricante = (Fabricante) evento.getComponent().getAttributes().get("fabricanteSelecionado"); + + Client cliente = ClientBuilder.newClient(); + + WebTarget caminho = cliente.target("http://127.0.0.1:8080/Drogaria/rest/fabricante"); + WebTarget caminhoExcluir = caminho.path("{codigo}").resolveTemplate("codigo", fabricante.getCodigo()); + + caminhoExcluir.request().delete(); + String json = caminho.request().get(String.class); + + Gson gson = new Gson(); + Fabricante[] vetor = gson.fromJson(json, Fabricante[].class); + + fabricantes = Arrays.asList(vetor); + + Messages.addGlobalInfo("Fabricante removido com sucesso"); + } catch (RuntimeException erro) { + Messages.addFlashGlobalError("Ocorreu um erro ao tentar remover o fabricante"); + erro.printStackTrace(); + } + } + + public void editar(ActionEvent evento) { + fabricante = (Fabricante) evento.getComponent().getAttributes().get("fabricanteSelecionado"); + } +} diff --git a/286_ViewParam/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/HistoricoBean.java b/286_ViewParam/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/HistoricoBean.java new file mode 100644 index 0000000..a042b04 --- /dev/null +++ b/286_ViewParam/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/HistoricoBean.java @@ -0,0 +1,89 @@ +package br.pro.delfino.drogaria.bean; + +import java.io.Serializable; +import java.util.Date; + +import javax.annotation.PostConstruct; +import javax.faces.bean.ManagedBean; +import javax.faces.bean.ViewScoped; + +import org.omnifaces.util.Messages; + +import br.pro.delfino.drogaria.dao.HistoricoDAO; +import br.pro.delfino.drogaria.dao.ProdutoDAO; +import br.pro.delfino.drogaria.domain.Historico; +import br.pro.delfino.drogaria.domain.Produto; + +@SuppressWarnings("serial") +@ManagedBean +@ViewScoped +public class HistoricoBean implements Serializable { + private Produto produto; + private Boolean exibePainelDados; + + private Historico historico; + + public Produto getProduto() { + return produto; + } + + public void setProduto(Produto produto) { + this.produto = produto; + } + + public Boolean getExibePainelDados() { + return exibePainelDados; + } + + public void setExibePainelDados(Boolean exibePainelDados) { + this.exibePainelDados = exibePainelDados; + } + + public Historico getHistorico() { + return historico; + } + + public void setHistorico(Historico historico) { + this.historico = historico; + } + + @PostConstruct + public void novo() { + historico = new Historico(); + produto = new Produto(); + exibePainelDados = false; + } + + public void buscar() { + try { + ProdutoDAO produtoDAO = new ProdutoDAO(); + Produto resultado = produtoDAO.buscar(produto.getCodigo()); + + if (resultado == null) { + exibePainelDados = false; + Messages.addGlobalWarn("Não existe produto cadastrado para o código informado"); + } else { + exibePainelDados = true; + produto = resultado; + } + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar buscar o produto"); + erro.printStackTrace(); + } + } + + public void salvar() { + try { + historico.setHorario(new Date()); + historico.setProduto(produto); + + HistoricoDAO historicoDAO = new HistoricoDAO(); + historicoDAO.salvar(historico); + + Messages.addGlobalInfo("Histórico salvo com sucesso"); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar salvar o histórico"); + erro.printStackTrace(); + } + } +} diff --git a/286_ViewParam/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/ImagemBean.java b/286_ViewParam/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/ImagemBean.java new file mode 100644 index 0000000..eb963a8 --- /dev/null +++ b/286_ViewParam/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/ImagemBean.java @@ -0,0 +1,48 @@ +package br.pro.delfino.drogaria.bean; + +import java.io.IOException; +import java.io.InputStream; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; + +import javax.faces.bean.ManagedBean; +import javax.faces.bean.ManagedProperty; +import javax.faces.bean.RequestScoped; + +import org.primefaces.model.DefaultStreamedContent; +import org.primefaces.model.StreamedContent; + +@ManagedBean +@RequestScoped +public class ImagemBean { + @ManagedProperty("#{param.caminho}") + private String caminho; + + private StreamedContent foto; + + public String getCaminho() { + return caminho; + } + + public void setCaminho(String caminho) { + this.caminho = caminho; + } + + public StreamedContent getFoto() throws IOException { + if(caminho == null || caminho.isEmpty()){ + Path path = Paths.get("C:/Programação Web com Java/Uploads/branco.png"); + InputStream stream = Files.newInputStream(path); + foto = new DefaultStreamedContent(stream); + }else{ + Path path = Paths.get(caminho); + InputStream stream = Files.newInputStream(path); + foto = new DefaultStreamedContent(stream); + } + return foto; + } + + public void setFoto(StreamedContent foto) { + this.foto = foto; + } +} diff --git a/286_ViewParam/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/PessoaBean.java b/286_ViewParam/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/PessoaBean.java new file mode 100644 index 0000000..931edf7 --- /dev/null +++ b/286_ViewParam/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/PessoaBean.java @@ -0,0 +1,156 @@ +package br.pro.delfino.drogaria.bean; + +import java.io.Serializable; +import java.util.ArrayList; +import java.util.List; + +import javax.annotation.PostConstruct; +import javax.faces.bean.ManagedBean; +import javax.faces.bean.ViewScoped; +import javax.faces.event.ActionEvent; + +import org.omnifaces.util.Messages; + +import br.pro.delfino.drogaria.dao.CidadeDAO; +import br.pro.delfino.drogaria.dao.EstadoDAO; +import br.pro.delfino.drogaria.dao.PessoaDAO; +import br.pro.delfino.drogaria.domain.Cidade; +import br.pro.delfino.drogaria.domain.Estado; +import br.pro.delfino.drogaria.domain.Pessoa; + +@SuppressWarnings("serial") +@ManagedBean +@ViewScoped +public class PessoaBean implements Serializable { + private Pessoa pessoa; + private List pessoas; + + private Estado estado; + private List estados; + + private List cidades; + + public Pessoa getPessoa() { + return pessoa; + } + + public void setPessoa(Pessoa pessoa) { + this.pessoa = pessoa; + } + + public List getPessoas() { + return pessoas; + } + + public void setPessoas(List pessoas) { + this.pessoas = pessoas; + } + + public Estado getEstado() { + return estado; + } + + public void setEstado(Estado estado) { + this.estado = estado; + } + + public List getEstados() { + return estados; + } + + public void setEstados(List estados) { + this.estados = estados; + } + + public List getCidades() { + return cidades; + } + + public void setCidades(List cidades) { + this.cidades = cidades; + } + + @PostConstruct + public void listar() { + try { + PessoaDAO pessoaDAO = new PessoaDAO(); + pessoas = pessoaDAO.listar("nome"); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar listar as pessoas"); + erro.printStackTrace(); + } + } + + public void novo() { + try { + pessoa = new Pessoa(); + + estado = new Estado(); + + EstadoDAO estadoDAO = new EstadoDAO(); + estados = estadoDAO.listar("nome"); + + cidades = new ArrayList<>(); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar gerar uma nova pessoa"); + erro.printStackTrace(); + } + } + + public void editar(ActionEvent evento) { + try{ + pessoa = (Pessoa) evento.getComponent().getAttributes().get("pessoaSelecionada"); + + estado = pessoa.getCidade().getEstado(); + + EstadoDAO estadoDAO = new EstadoDAO(); + estados = estadoDAO.listar("nome"); + + CidadeDAO cidadeDAO = new CidadeDAO(); + cidades = cidadeDAO.buscarPorEstado(estado.getCodigo()); + }catch(RuntimeException erro){ + Messages.addGlobalError("Ocorreu um erro ao tentar selecionar uma pessoa"); + } + } + + public void salvar() { + try { + PessoaDAO pessoaDAO = new PessoaDAO(); + pessoaDAO.merge(pessoa); + + pessoas = pessoaDAO.listar("nome"); + + pessoa = new Pessoa(); + + estado = new Estado(); + + EstadoDAO estadoDAO = new EstadoDAO(); + estados = estadoDAO.listar("nome"); + + cidades = new ArrayList<>(); + + Messages.addGlobalInfo("Pessoa salva com sucesso"); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar salvar a pessoa"); + erro.printStackTrace(); + } + } + + public void excluir(ActionEvent evento) { + + } + + public void popular() { + try { + if (estado != null) { + CidadeDAO cidadeDAO = new CidadeDAO(); + cidades = cidadeDAO.buscarPorEstado(estado.getCodigo()); + } else { + cidades = new ArrayList<>(); + } + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar filtrar as cidades"); + erro.printStackTrace(); + } + } +} diff --git a/286_ViewParam/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/ProdutoBean.java b/286_ViewParam/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/ProdutoBean.java new file mode 100644 index 0000000..e48e0d1 --- /dev/null +++ b/286_ViewParam/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/ProdutoBean.java @@ -0,0 +1,196 @@ +package br.pro.delfino.drogaria.bean; + +import java.io.IOException; +import java.io.Serializable; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; +import java.nio.file.StandardCopyOption; +import java.sql.Connection; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import javax.annotation.PostConstruct; +import javax.faces.bean.ManagedBean; +import javax.faces.bean.ViewScoped; +import javax.faces.event.ActionEvent; + +import org.omnifaces.util.Faces; +import org.omnifaces.util.Messages; +import org.primefaces.component.datatable.DataTable; +import org.primefaces.event.FileUploadEvent; +import org.primefaces.model.UploadedFile; + +import br.pro.delfino.drogaria.dao.FabricanteDAO; +import br.pro.delfino.drogaria.dao.ProdutoDAO; +import br.pro.delfino.drogaria.domain.Fabricante; +import br.pro.delfino.drogaria.domain.Produto; +import br.pro.delfino.drogaria.util.HibernateUtil; +import net.sf.jasperreports.engine.JRException; +import net.sf.jasperreports.engine.JasperFillManager; +import net.sf.jasperreports.engine.JasperPrint; +import net.sf.jasperreports.engine.JasperPrintManager; + +@SuppressWarnings("serial") +@ManagedBean +@ViewScoped +public class ProdutoBean implements Serializable { + private Produto produto; + private List produtos; + private List fabricantes; + + public Produto getProduto() { + return produto; + } + + public void setProduto(Produto produto) { + this.produto = produto; + } + + public List getProdutos() { + return produtos; + } + + public void setProdutos(List produtos) { + this.produtos = produtos; + } + + public List getFabricantes() { + return fabricantes; + } + + public void setFabricantes(List fabricantes) { + this.fabricantes = fabricantes; + } + + @PostConstruct + public void listar() { + try { + ProdutoDAO produtoDAO = new ProdutoDAO(); + produtos = produtoDAO.listar("descricao"); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar listar os produtos"); + erro.printStackTrace(); + } + } + + public void novo() { + try { + produto = new Produto(); + + FabricanteDAO fabricanteDAO = new FabricanteDAO(); + fabricantes = fabricanteDAO.listar("descricao"); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar gerar um novo produto"); + erro.printStackTrace(); + } + } + + public void editar(ActionEvent evento) { + try { + produto = (Produto) evento.getComponent().getAttributes().get("produtoSelecionado"); + produto.setCaminho("C:/Programação Web com Java/Uploads/" + produto.getCodigo() + ".png"); + + FabricanteDAO fabricanteDAO = new FabricanteDAO(); + fabricantes = fabricanteDAO.listar(); + } catch (RuntimeException erro) { + Messages.addFlashGlobalError("Ocorreu um erro ao tentar selecionar um produto"); + erro.printStackTrace(); + } + } + + public void salvar() { + try { + if (produto.getCaminho() == null) { + Messages.addGlobalError("O campo foto é obrigatório"); + return; + } + + ProdutoDAO produtoDAO = new ProdutoDAO(); + Produto produtoRetorno = produtoDAO.merge(produto); + + Path origem = Paths.get(produto.getCaminho()); + Path destino = Paths.get("C:/Programação Web com Java/Uploads/" + produtoRetorno.getCodigo() + ".png"); + Files.copy(origem, destino, StandardCopyOption.REPLACE_EXISTING); + + produto = new Produto(); + + FabricanteDAO fabricanteDAO = new FabricanteDAO(); + fabricantes = fabricanteDAO.listar(); + + produtos = produtoDAO.listar(); + + Messages.addGlobalInfo("Produto salvo com sucesso"); + } catch (RuntimeException | IOException erro) { + Messages.addFlashGlobalError("Ocorreu um erro ao tentar salvar o produto"); + erro.printStackTrace(); + } + } + + public void excluir(ActionEvent evento) { + try { + produto = (Produto) evento.getComponent().getAttributes().get("produtoSelecionado"); + + ProdutoDAO produtoDAO = new ProdutoDAO(); + produtoDAO.excluir(produto); + + Path arquivo = Paths.get("C:/Programação Web com Java/Uploads/" + produto.getCodigo() + ".png"); + Files.deleteIfExists(arquivo); + + produtos = produtoDAO.listar(); + + Messages.addGlobalInfo("Produto removido com sucesso"); + } catch (RuntimeException | IOException erro) { + Messages.addFlashGlobalError("Ocorreu um erro ao tentar remover o produto"); + erro.printStackTrace(); + } + } + + public void upload(FileUploadEvent evento) { + try { + UploadedFile arquivoUpload = evento.getFile(); + Path arquivoTemp = Files.createTempFile(null, null); + Files.copy(arquivoUpload.getInputstream(), arquivoTemp, StandardCopyOption.REPLACE_EXISTING); + produto.setCaminho(arquivoTemp.toString()); + + Messages.addGlobalInfo("Upload realizado com sucesso"); + } catch (IOException erro) { + Messages.addGlobalInfo("Ocorreu um erro ao tentar realizar o upload de arquivo"); + erro.printStackTrace(); + } + } + + public void imprimir() { + try { + DataTable tabela = (DataTable) Faces.getViewRoot().findComponent("formListagem:tabela"); + Map filtros = tabela.getFilters(); + + String proDescricao = (String) filtros.get("descricao"); + String fabDescricao = (String) filtros.get("fabricante.descricao"); + + String caminho = Faces.getRealPath("/reports/produtos.jasper"); + + Map parametros = new HashMap<>(); + if (proDescricao == null) { + parametros.put("PRODUTO_DESCRICAO", "%%"); + } else { + parametros.put("PRODUTO_DESCRICAO", "%" + proDescricao + "%"); + } + if (fabDescricao == null) { + parametros.put("FABRICANTE_DESCRICAO", "%%"); + } else { + parametros.put("FABRICANTE_DESCRICAO", "%" + fabDescricao + "%"); + } + + Connection conexao = HibernateUtil.getConexao(); + + JasperPrint relatorio = JasperFillManager.fillReport(caminho, parametros, conexao); + + JasperPrintManager.printReport(relatorio, true); + } catch (JRException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar gerar o relatório"); + erro.printStackTrace(); + } + } +} diff --git a/286_ViewParam/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/ProdutoBean2.java b/286_ViewParam/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/ProdutoBean2.java new file mode 100644 index 0000000..f36cd86 --- /dev/null +++ b/286_ViewParam/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/ProdutoBean2.java @@ -0,0 +1,86 @@ +package br.pro.delfino.drogaria.bean; + +import java.io.Serializable; +import java.util.List; + +import javax.annotation.PostConstruct; +import javax.faces.bean.ManagedBean; +import javax.faces.bean.ViewScoped; + +import org.omnifaces.util.Messages; + +import br.pro.delfino.drogaria.dao.FabricanteDAO; +import br.pro.delfino.drogaria.dao.ProdutoDAO; +import br.pro.delfino.drogaria.domain.Fabricante; +import br.pro.delfino.drogaria.domain.Produto; + +@SuppressWarnings("serial") +@ManagedBean +@ViewScoped +public class ProdutoBean2 implements Serializable { + private Produto produto; + private Long codigoProduto; + + private List fabricantes; + private List produtos; + + private FabricanteDAO fabricanteDAO; + private ProdutoDAO produtoDAO; + + public Produto getProduto() { + return produto; + } + + public void setProduto(Produto produto) { + this.produto = produto; + } + + public Long getCodigoProduto() { + return codigoProduto; + } + + public void setCodigoProduto(Long codigoProduto) { + this.codigoProduto = codigoProduto; + } + + public void setFabricantes(List fabricantes) { + this.fabricantes = fabricantes; + } + + public List getFabricantes() { + return fabricantes; + } + public List getProdutos() { + return produtos; + } + + public void setProdutos(List produtos) { + this.produtos = produtos; + } + + @PostConstruct + public void iniciar(){ + fabricanteDAO = new FabricanteDAO(); + produtoDAO = new ProdutoDAO(); + } + + public void listar() { + try { + produtos = produtoDAO.listar("descricao"); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar listar os produtos"); + erro.printStackTrace(); + } + } + + public void carregarEdicao(){ + try { + produto = produtoDAO.buscar(codigoProduto); + + fabricantes = fabricanteDAO.listar("descricao"); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar carregar os dados para edição"); + erro.printStackTrace(); + } + } +} diff --git a/286_ViewParam/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/UsuarioBean.java b/286_ViewParam/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/UsuarioBean.java new file mode 100644 index 0000000..f526df8 --- /dev/null +++ b/286_ViewParam/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/UsuarioBean.java @@ -0,0 +1,90 @@ +package br.pro.delfino.drogaria.bean; + +import java.io.Serializable; +import java.util.List; + +import javax.annotation.PostConstruct; +import javax.faces.bean.ManagedBean; +import javax.faces.bean.ViewScoped; + +import org.omnifaces.util.Messages; + +import br.pro.delfino.drogaria.dao.PessoaDAO; +import br.pro.delfino.drogaria.dao.UsuarioDAO; +import br.pro.delfino.drogaria.domain.Pessoa; +import br.pro.delfino.drogaria.domain.Usuario; + +@SuppressWarnings("serial") +@ManagedBean +@ViewScoped +public class UsuarioBean implements Serializable { + private Usuario usuario; + + private List pessoas; + private List usuarios; + + public Usuario getUsuario() { + return usuario; + } + + public void setUsuario(Usuario usuario) { + this.usuario = usuario; + } + + public List getPessoas() { + return pessoas; + } + + public void setPessoas(List pessoas) { + this.pessoas = pessoas; + } + + public List getUsuarios() { + return usuarios; + } + + public void setUsuarios(List usuarios) { + this.usuarios = usuarios; + } + + @PostConstruct + public void listar(){ + try{ + UsuarioDAO usuarioDAO = new UsuarioDAO(); + usuarios = usuarioDAO.listar("tipo"); + }catch(RuntimeException erro){ + Messages.addGlobalError("Ocorreu um erro ao tentar listar os usuários"); + erro.printStackTrace(); + } + } + + public void novo() { + try { + usuario = new Usuario(); + + PessoaDAO pessoaDAO = new PessoaDAO(); + pessoas = pessoaDAO.listar("nome"); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar criar um novo usuário"); + erro.printStackTrace(); + } + } + + public void salvar() { + try { + UsuarioDAO usuarioDAO = new UsuarioDAO(); + usuarioDAO.merge(usuario); + + usuario = new Usuario(); + usuarios = usuarioDAO.listar("tipo"); + + PessoaDAO pessoaDAO = new PessoaDAO(); + pessoas = pessoaDAO.listar("nome"); + + Messages.addGlobalInfo("Usuário salvo com sucesso"); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar salvar o usuário"); + erro.printStackTrace(); + } + } +} diff --git a/286_ViewParam/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/VendaBean.java b/286_ViewParam/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/VendaBean.java new file mode 100644 index 0000000..ada8ff2 --- /dev/null +++ b/286_ViewParam/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/VendaBean.java @@ -0,0 +1,186 @@ +package br.pro.delfino.drogaria.bean; + +import java.io.Serializable; +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +import javax.annotation.PostConstruct; +import javax.faces.bean.ManagedBean; +import javax.faces.bean.ViewScoped; +import javax.faces.event.ActionEvent; + +import org.omnifaces.util.Messages; + +import br.pro.delfino.drogaria.dao.ClienteDAO; +import br.pro.delfino.drogaria.dao.FuncionarioDAO; +import br.pro.delfino.drogaria.dao.ProdutoDAO; +import br.pro.delfino.drogaria.dao.VendaDAO; +import br.pro.delfino.drogaria.domain.Cliente; +import br.pro.delfino.drogaria.domain.Funcionario; +import br.pro.delfino.drogaria.domain.ItemVenda; +import br.pro.delfino.drogaria.domain.Produto; +import br.pro.delfino.drogaria.domain.Venda; + +@SuppressWarnings("serial") +@ManagedBean +@ViewScoped +public class VendaBean implements Serializable { + private Venda venda; + + private List produtos; + private List itensVenda; + private List clientes; + private List funcionarios; + + public Venda getVenda() { + return venda; + } + + public void setVenda(Venda venda) { + this.venda = venda; + } + + public List getProdutos() { + return produtos; + } + + public void setProdutos(List produtos) { + this.produtos = produtos; + } + + public List getItensVenda() { + return itensVenda; + } + + public void setItensVenda(List itensVenda) { + this.itensVenda = itensVenda; + } + + public List getClientes() { + return clientes; + } + + public void setClientes(List clientes) { + this.clientes = clientes; + } + + public List getFuncionarios() { + return funcionarios; + } + + public void setFuncionarios(List funcionarios) { + this.funcionarios = funcionarios; + } + + @PostConstruct + public void novo() { + try { + venda = new Venda(); + venda.setPrecoTotal(new BigDecimal("0.00")); + + ProdutoDAO produtoDAO = new ProdutoDAO(); + produtos = produtoDAO.listar("descricao"); + + itensVenda = new ArrayList<>(); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar carregar a tela de vendas"); + erro.printStackTrace(); + } + } + + public void adicionar(ActionEvent evento) { + Produto produto = (Produto) evento.getComponent().getAttributes().get("produtoSelecionado"); + + int achou = -1; + for (int posicao = 0; posicao < itensVenda.size(); posicao++) { + if (itensVenda.get(posicao).getProduto().equals(produto)) { + achou = posicao; + } + } + + if (achou < 0) { + ItemVenda itemVenda = new ItemVenda(); + itemVenda.setPrecoParcial(produto.getPreco()); + itemVenda.setProduto(produto); + itemVenda.setQuantidade(new Short("1")); + + itensVenda.add(itemVenda); + } else { + ItemVenda itemVenda = itensVenda.get(achou); + itemVenda.setQuantidade(new Short(itemVenda.getQuantidade() + 1 + "")); + itemVenda.setPrecoParcial(produto.getPreco().multiply(new BigDecimal(itemVenda.getQuantidade()))); + } + + calcular(); + } + + public void remover(ActionEvent evento) { + ItemVenda itemVenda = (ItemVenda) evento.getComponent().getAttributes().get("itemSelecionado"); + + int achou = -1; + for (int posicao = 0; posicao < itensVenda.size(); posicao++) { + if (itensVenda.get(posicao).getProduto().equals(itemVenda.getProduto())) { + achou = posicao; + } + } + + if (achou > -1) { + itensVenda.remove(achou); + } + + calcular(); + } + + public void calcular() { + venda.setPrecoTotal(new BigDecimal("0.00")); + + for (int posicao = 0; posicao < itensVenda.size(); posicao++) { + ItemVenda itemVenda = itensVenda.get(posicao); + venda.setPrecoTotal(venda.getPrecoTotal().add(itemVenda.getPrecoParcial())); + } + } + + public void finalizar() { + try { + venda.setHorario(new Date()); + venda.setCliente(null); + venda.setFuncionario(null); + + FuncionarioDAO funcionarioDAO = new FuncionarioDAO(); + funcionarios = funcionarioDAO.listarOrdenado(); + + ClienteDAO clienteDAO = new ClienteDAO(); + clientes = clienteDAO.listarOrdenado(); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar finalizar a venda"); + erro.printStackTrace(); + } + } + + public void salvar() { + try { + if(venda.getPrecoTotal().signum() == 0){ + Messages.addGlobalError("Informe pelo menos um item para a venda"); + return; + } + + VendaDAO vendaDAO = new VendaDAO(); + vendaDAO.salvar(venda, itensVenda); + + venda = new Venda(); + venda.setPrecoTotal(new BigDecimal("0.00")); + + ProdutoDAO produtoDAO = new ProdutoDAO(); + produtos = produtoDAO.listar("descricao"); + + itensVenda = new ArrayList<>(); + + Messages.addGlobalInfo("Venda realizada com sucesso"); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar salvar a venda"); + erro.printStackTrace(); + } + } +} diff --git a/286_ViewParam/Drogaria/src/main/java/br/pro/delfino/drogaria/converter/UpperCaseConverter.java b/286_ViewParam/Drogaria/src/main/java/br/pro/delfino/drogaria/converter/UpperCaseConverter.java new file mode 100644 index 0000000..8a5d259 --- /dev/null +++ b/286_ViewParam/Drogaria/src/main/java/br/pro/delfino/drogaria/converter/UpperCaseConverter.java @@ -0,0 +1,28 @@ +package br.pro.delfino.drogaria.converter; + +import javax.faces.component.UIComponent; +import javax.faces.context.FacesContext; +import javax.faces.convert.Converter; +import javax.faces.convert.FacesConverter; + +@FacesConverter("upperCaseConverter") +public class UpperCaseConverter implements Converter { + + @Override + public Object getAsObject(FacesContext context, UIComponent component, String value) { + if (value == null) { + return null; + } else { + return value.toUpperCase(); + } + } + + @Override + public String getAsString(FacesContext context, UIComponent component, Object value) { + if (value == null) { + return ""; + } else { + return value.toString(); + } + } +} diff --git a/286_ViewParam/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/CaixaDAO.java b/286_ViewParam/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/CaixaDAO.java new file mode 100644 index 0000000..fd8acd7 --- /dev/null +++ b/286_ViewParam/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/CaixaDAO.java @@ -0,0 +1,26 @@ +package br.pro.delfino.drogaria.dao; + +import java.util.Date; + +import org.hibernate.Criteria; +import org.hibernate.Session; +import org.hibernate.criterion.Restrictions; + +import br.pro.delfino.drogaria.domain.Caixa; +import br.pro.delfino.drogaria.util.HibernateUtil; + +public class CaixaDAO extends GenericDAO { + public Caixa buscar(Date dataAbertura) { + Session sessao = HibernateUtil.getFabricaDeSessoes().openSession(); + try { + Criteria consulta = sessao.createCriteria(Caixa.class); + consulta.add(Restrictions.eq("dataAbertura", dataAbertura)); + Caixa resultado = (Caixa) consulta.uniqueResult(); + return resultado; + } catch (RuntimeException erro) { + throw erro; + } finally { + sessao.close(); + } + } +} diff --git a/286_ViewParam/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/CidadeDAO.java b/286_ViewParam/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/CidadeDAO.java new file mode 100644 index 0000000..e685e93 --- /dev/null +++ b/286_ViewParam/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/CidadeDAO.java @@ -0,0 +1,29 @@ +package br.pro.delfino.drogaria.dao; + +import java.util.List; + +import org.hibernate.Criteria; +import org.hibernate.Session; +import org.hibernate.criterion.Order; +import org.hibernate.criterion.Restrictions; + +import br.pro.delfino.drogaria.domain.Cidade; +import br.pro.delfino.drogaria.util.HibernateUtil; + +public class CidadeDAO extends GenericDAO { + @SuppressWarnings("unchecked") + public List buscarPorEstado(Long estadoCodigo) { + Session sessao = HibernateUtil.getFabricaDeSessoes().openSession(); + try { + Criteria consulta = sessao.createCriteria(Cidade.class); + consulta.add(Restrictions.eq("estado.codigo", estadoCodigo)); + consulta.addOrder(Order.asc("nome")); + List resultado = consulta.list(); + return resultado; + } catch (RuntimeException erro) { + throw erro; + } finally { + sessao.close(); + } + } +} \ No newline at end of file diff --git a/286_ViewParam/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/ClienteDAO.java b/286_ViewParam/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/ClienteDAO.java new file mode 100644 index 0000000..e9796b5 --- /dev/null +++ b/286_ViewParam/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/ClienteDAO.java @@ -0,0 +1,28 @@ +package br.pro.delfino.drogaria.dao; + +import java.util.List; + +import org.hibernate.Criteria; +import org.hibernate.Session; +import org.hibernate.criterion.Order; + +import br.pro.delfino.drogaria.domain.Cliente; +import br.pro.delfino.drogaria.util.HibernateUtil; + +public class ClienteDAO extends GenericDAO { + @SuppressWarnings("unchecked") + public List listarOrdenado() { + Session sessao = HibernateUtil.getFabricaDeSessoes().openSession(); + try { + Criteria consulta = sessao.createCriteria(Cliente.class); + consulta.createAlias("pessoa", "p"); + consulta.addOrder(Order.asc("p.nome")); + List resultado = consulta.list(); + return resultado; + } catch (RuntimeException erro) { + throw erro; + } finally { + sessao.close(); + } + } +} diff --git a/286_ViewParam/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/EstadoDAO.java b/286_ViewParam/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/EstadoDAO.java new file mode 100644 index 0000000..32b4a79 --- /dev/null +++ b/286_ViewParam/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/EstadoDAO.java @@ -0,0 +1,7 @@ +package br.pro.delfino.drogaria.dao; + +import br.pro.delfino.drogaria.domain.Estado; + +public class EstadoDAO extends GenericDAO { + +} diff --git a/286_ViewParam/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/FabricanteDAO.java b/286_ViewParam/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/FabricanteDAO.java new file mode 100644 index 0000000..8b7f946 --- /dev/null +++ b/286_ViewParam/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/FabricanteDAO.java @@ -0,0 +1,7 @@ +package br.pro.delfino.drogaria.dao; + +import br.pro.delfino.drogaria.domain.Fabricante; + +public class FabricanteDAO extends GenericDAO { + +} diff --git a/286_ViewParam/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/FuncionarioDAO.java b/286_ViewParam/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/FuncionarioDAO.java new file mode 100644 index 0000000..2b3114d --- /dev/null +++ b/286_ViewParam/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/FuncionarioDAO.java @@ -0,0 +1,28 @@ +package br.pro.delfino.drogaria.dao; + +import java.util.List; + +import org.hibernate.Criteria; +import org.hibernate.Session; +import org.hibernate.criterion.Order; + +import br.pro.delfino.drogaria.domain.Funcionario; +import br.pro.delfino.drogaria.util.HibernateUtil; + +public class FuncionarioDAO extends GenericDAO{ + @SuppressWarnings("unchecked") + public List listarOrdenado() { + Session sessao = HibernateUtil.getFabricaDeSessoes().openSession(); + try { + Criteria consulta = sessao.createCriteria(Funcionario.class); + consulta.createAlias("pessoa", "p"); + consulta.addOrder(Order.asc("p.nome")); + List resultado = consulta.list(); + return resultado; + } catch (RuntimeException erro) { + throw erro; + } finally { + sessao.close(); + } + } +} diff --git a/286_ViewParam/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/GenericDAO.java b/286_ViewParam/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/GenericDAO.java new file mode 100644 index 0000000..b505cd3 --- /dev/null +++ b/286_ViewParam/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/GenericDAO.java @@ -0,0 +1,140 @@ +package br.pro.delfino.drogaria.dao; + +import java.lang.reflect.ParameterizedType; +import java.util.List; + +import org.hibernate.Criteria; +import org.hibernate.Session; +import org.hibernate.Transaction; +import org.hibernate.criterion.Order; +import org.hibernate.criterion.Restrictions; + +import br.pro.delfino.drogaria.util.HibernateUtil; + +public class GenericDAO { + private Class classe; + + @SuppressWarnings("unchecked") + public GenericDAO() { + this.classe = (Class) ((ParameterizedType) getClass().getGenericSuperclass()) + .getActualTypeArguments()[0]; + } + + public void salvar(Entidade entidade) { + Session sessao = HibernateUtil.getFabricaDeSessoes().openSession(); + Transaction transacao = null; + + try { + transacao = sessao.beginTransaction(); + sessao.save(entidade); + transacao.commit(); + } catch (RuntimeException erro) { + if (transacao != null) { + transacao.rollback(); + } + throw erro; + } finally { + sessao.close(); + } + } + + @SuppressWarnings("unchecked") + public List listar() { + Session sessao = HibernateUtil.getFabricaDeSessoes().openSession(); + try { + Criteria consulta = sessao.createCriteria(classe); + List resultado = consulta.list(); + return resultado; + } catch (RuntimeException erro) { + throw erro; + } finally { + sessao.close(); + } + } + + @SuppressWarnings("unchecked") + public List listar(String campoOrdenacao) { + Session sessao = HibernateUtil.getFabricaDeSessoes().openSession(); + try { + Criteria consulta = sessao.createCriteria(classe); + consulta.addOrder(Order.asc(campoOrdenacao)); + List resultado = consulta.list(); + return resultado; + } catch (RuntimeException erro) { + throw erro; + } finally { + sessao.close(); + } + } + + @SuppressWarnings("unchecked") + public Entidade buscar(Long codigo) { + Session sessao = HibernateUtil.getFabricaDeSessoes().openSession(); + try { + Criteria consulta = sessao.createCriteria(classe); + consulta.add(Restrictions.idEq(codigo)); + Entidade resultado = (Entidade) consulta.uniqueResult(); + return resultado; + } catch (RuntimeException erro) { + throw erro; + } finally { + sessao.close(); + } + } + + public void excluir(Entidade entidade) { + Session sessao = HibernateUtil.getFabricaDeSessoes().openSession(); + Transaction transacao = null; + + try { + transacao = sessao.beginTransaction(); + sessao.delete(entidade); + transacao.commit(); + } catch (RuntimeException erro) { + if (transacao != null) { + transacao.rollback(); + } + throw erro; + } finally { + sessao.close(); + } + } + + public void editar(Entidade entidade) { + Session sessao = HibernateUtil.getFabricaDeSessoes().openSession(); + Transaction transacao = null; + + try { + transacao = sessao.beginTransaction(); + sessao.update(entidade); + transacao.commit(); + } catch (RuntimeException erro) { + if (transacao != null) { + transacao.rollback(); + } + throw erro; + } finally { + sessao.close(); + } + } + + @SuppressWarnings("unchecked") + public Entidade merge(Entidade entidade) { + Session sessao = HibernateUtil.getFabricaDeSessoes().openSession(); + Transaction transacao = null; + + try { + transacao = sessao.beginTransaction(); + Entidade retorno = (Entidade) sessao.merge(entidade); + transacao.commit(); + return retorno; + } catch (RuntimeException erro) { + if (transacao != null) { + transacao.rollback(); + } + throw erro; + } finally { + sessao.close(); + } + } +} diff --git a/286_ViewParam/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/HistoricoDAO.java b/286_ViewParam/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/HistoricoDAO.java new file mode 100644 index 0000000..7b30017 --- /dev/null +++ b/286_ViewParam/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/HistoricoDAO.java @@ -0,0 +1,7 @@ +package br.pro.delfino.drogaria.dao; + +import br.pro.delfino.drogaria.domain.Historico; + +public class HistoricoDAO extends GenericDAO { + +} diff --git a/286_ViewParam/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/MovimentacaoDAO.java b/286_ViewParam/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/MovimentacaoDAO.java new file mode 100644 index 0000000..b6560e2 --- /dev/null +++ b/286_ViewParam/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/MovimentacaoDAO.java @@ -0,0 +1,7 @@ +package br.pro.delfino.drogaria.dao; + +import br.pro.delfino.drogaria.domain.Movimentacao; + +public class MovimentacaoDAO extends GenericDAO { + +} diff --git a/286_ViewParam/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/PessoaDAO.java b/286_ViewParam/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/PessoaDAO.java new file mode 100644 index 0000000..bbd116b --- /dev/null +++ b/286_ViewParam/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/PessoaDAO.java @@ -0,0 +1,7 @@ +package br.pro.delfino.drogaria.dao; + +import br.pro.delfino.drogaria.domain.Pessoa; + +public class PessoaDAO extends GenericDAO { + +} diff --git a/286_ViewParam/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/ProdutoDAO.java b/286_ViewParam/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/ProdutoDAO.java new file mode 100644 index 0000000..4c1e751 --- /dev/null +++ b/286_ViewParam/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/ProdutoDAO.java @@ -0,0 +1,7 @@ +package br.pro.delfino.drogaria.dao; + +import br.pro.delfino.drogaria.domain.Produto; + +public class ProdutoDAO extends GenericDAO { + +} diff --git a/286_ViewParam/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/UsuarioDAO.java b/286_ViewParam/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/UsuarioDAO.java new file mode 100644 index 0000000..b4bf524 --- /dev/null +++ b/286_ViewParam/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/UsuarioDAO.java @@ -0,0 +1,33 @@ +package br.pro.delfino.drogaria.dao; + +import org.apache.shiro.crypto.hash.SimpleHash; +import org.hibernate.Criteria; +import org.hibernate.Session; +import org.hibernate.criterion.Restrictions; + +import br.pro.delfino.drogaria.domain.Usuario; +import br.pro.delfino.drogaria.util.HibernateUtil; + +public class UsuarioDAO extends GenericDAO { + public Usuario autenticar(String cpf, String senha) { + Session sessao = HibernateUtil.getFabricaDeSessoes().openSession(); + + try{ + Criteria consulta = sessao.createCriteria(Usuario.class); + consulta.createAlias("pessoa", "p"); + + consulta.add(Restrictions.eq("p.cpf", cpf)); + + SimpleHash hash = new SimpleHash("md5", senha); + consulta.add(Restrictions.eq("senha", hash.toHex())); + + Usuario resultado = (Usuario) consulta.uniqueResult(); + + return resultado; + } catch (RuntimeException erro) { + throw erro; + } finally { + sessao.close(); + } + } +} diff --git a/286_ViewParam/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/VendaDAO.java b/286_ViewParam/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/VendaDAO.java new file mode 100644 index 0000000..3428939 --- /dev/null +++ b/286_ViewParam/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/VendaDAO.java @@ -0,0 +1,49 @@ +package br.pro.delfino.drogaria.dao; + +import java.util.List; + +import org.hibernate.Session; +import org.hibernate.Transaction; + +import br.pro.delfino.drogaria.domain.ItemVenda; +import br.pro.delfino.drogaria.domain.Produto; +import br.pro.delfino.drogaria.domain.Venda; +import br.pro.delfino.drogaria.util.HibernateUtil; + +public class VendaDAO extends GenericDAO { + public void salvar(Venda venda, List itensVenda) { + Session sessao = HibernateUtil.getFabricaDeSessoes().openSession(); + Transaction transacao = null; + + try { + transacao = sessao.beginTransaction(); + + sessao.save(venda); + + for (int posicao = 0; posicao < itensVenda.size(); posicao++) { + ItemVenda itemVenda = itensVenda.get(posicao); + itemVenda.setVenda(venda); + + sessao.save(itemVenda); + + Produto produto = itemVenda.getProduto(); + int quantidade = produto.getQuantidade() - itemVenda.getQuantidade(); + if (quantidade >= 0) { + produto.setQuantidade(new Short(quantidade + "")); + sessao.update(produto); + } else { + throw new RuntimeException("Quantidade insuficiente em estoque"); + } + } + + transacao.commit(); + } catch (RuntimeException erro) { + if (transacao != null) { + transacao.rollback(); + } + throw erro; + } finally { + sessao.close(); + } + } +} diff --git a/286_ViewParam/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Caixa.java b/286_ViewParam/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Caixa.java new file mode 100644 index 0000000..43b07c4 --- /dev/null +++ b/286_ViewParam/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Caixa.java @@ -0,0 +1,48 @@ +package br.pro.delfino.drogaria.domain; + +import java.math.BigDecimal; +import java.util.Date; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.Temporal; +import javax.persistence.TemporalType; + +@SuppressWarnings("serial") +@Entity +public class Caixa extends GenericDomain { + @Column(nullable = false, unique = true) + @Temporal(TemporalType.DATE) + private Date dataAbertura; + + @Column(nullable = true) + @Temporal(TemporalType.DATE) + private Date dataFechamento; + + @Column(nullable = false, precision = 7, scale = 2) + private BigDecimal valorAbertura; + + public Date getDataAbertura() { + return dataAbertura; + } + + public void setDataAbertura(Date dataAbertura) { + this.dataAbertura = dataAbertura; + } + + public Date getDataFechamento() { + return dataFechamento; + } + + public void setDataFechamento(Date dataFechamento) { + this.dataFechamento = dataFechamento; + } + + public BigDecimal getValorAbertura() { + return valorAbertura; + } + + public void setValorAbertura(BigDecimal valorAbertura) { + this.valorAbertura = valorAbertura; + } +} diff --git a/286_ViewParam/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Cidade.java b/286_ViewParam/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Cidade.java new file mode 100644 index 0000000..cf94ede --- /dev/null +++ b/286_ViewParam/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Cidade.java @@ -0,0 +1,33 @@ +package br.pro.delfino.drogaria.domain; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.JoinColumn; +import javax.persistence.ManyToOne; + +@SuppressWarnings("serial") +@Entity +public class Cidade extends GenericDomain { + @Column(length = 50, nullable = false) + private String nome; + + @ManyToOne + @JoinColumn(nullable = false) + private Estado estado; + + public String getNome() { + return nome; + } + + public void setNome(String nome) { + this.nome = nome; + } + + public Estado getEstado() { + return estado; + } + + public void setEstado(Estado estado) { + this.estado = estado; + } +} diff --git a/286_ViewParam/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Cliente.java b/286_ViewParam/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Cliente.java new file mode 100644 index 0000000..6ace9b9 --- /dev/null +++ b/286_ViewParam/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Cliente.java @@ -0,0 +1,49 @@ +package br.pro.delfino.drogaria.domain; + +import java.util.Date; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.JoinColumn; +import javax.persistence.OneToOne; +import javax.persistence.Temporal; +import javax.persistence.TemporalType; + +@SuppressWarnings("serial") +@Entity +public class Cliente extends GenericDomain { + @Column(nullable = false) + @Temporal(TemporalType.DATE) + private Date dataCadastro; + + @Column(nullable = false) + private Boolean liberado; + + @OneToOne + @JoinColumn(nullable = false) + private Pessoa pessoa; + + public Date getDataCadastro() { + return dataCadastro; + } + + public void setDataCadastro(Date dataCadastro) { + this.dataCadastro = dataCadastro; + } + + public Boolean getLiberado() { + return liberado; + } + + public void setLiberado(Boolean liberado) { + this.liberado = liberado; + } + + public Pessoa getPessoa() { + return pessoa; + } + + public void setPessoa(Pessoa pessoa) { + this.pessoa = pessoa; + } +} diff --git a/286_ViewParam/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Estado.java b/286_ViewParam/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Estado.java new file mode 100644 index 0000000..1c06b98 --- /dev/null +++ b/286_ViewParam/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Estado.java @@ -0,0 +1,30 @@ +package br.pro.delfino.drogaria.domain; + +import javax.persistence.Column; +import javax.persistence.Entity; + +@SuppressWarnings("serial") +@Entity +public class Estado extends GenericDomain { + @Column(length = 2, nullable = false) + private String sigla; + + @Column(length = 50, nullable = false) + private String nome; + + public String getSigla() { + return sigla; + } + + public void setSigla(String sigla) { + this.sigla = sigla; + } + + public String getNome() { + return nome; + } + + public void setNome(String nome) { + this.nome = nome; + } +} diff --git a/286_ViewParam/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Fabricante.java b/286_ViewParam/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Fabricante.java new file mode 100644 index 0000000..02eab8c --- /dev/null +++ b/286_ViewParam/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Fabricante.java @@ -0,0 +1,19 @@ +package br.pro.delfino.drogaria.domain; + +import javax.persistence.Column; +import javax.persistence.Entity; + +@SuppressWarnings("serial") +@Entity +public class Fabricante extends GenericDomain { + @Column(length = 50, nullable = false) + private String descricao; + + public String getDescricao() { + return descricao; + } + + public void setDescricao(String descricao) { + this.descricao = descricao; + } +} diff --git a/286_ViewParam/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Funcionario.java b/286_ViewParam/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Funcionario.java new file mode 100644 index 0000000..dec9378 --- /dev/null +++ b/286_ViewParam/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Funcionario.java @@ -0,0 +1,49 @@ +package br.pro.delfino.drogaria.domain; + +import java.util.Date; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.JoinColumn; +import javax.persistence.OneToOne; +import javax.persistence.Temporal; +import javax.persistence.TemporalType; + +@SuppressWarnings("serial") +@Entity +public class Funcionario extends GenericDomain { + @Column(length = 15, nullable = false) + private String carteiraTrabalho; + + @Column(nullable = false) + @Temporal(TemporalType.DATE) + private Date dataAdmissao; + + @OneToOne + @JoinColumn(nullable = false) + private Pessoa pessoa; + + public String getCarteiraTrabalho() { + return carteiraTrabalho; + } + + public void setCarteiraTrabalho(String carteiraTrabalho) { + this.carteiraTrabalho = carteiraTrabalho; + } + + public Date getDataAdmissao() { + return dataAdmissao; + } + + public void setDataAdmissao(Date dataAdmissao) { + this.dataAdmissao = dataAdmissao; + } + + public Pessoa getPessoa() { + return pessoa; + } + + public void setPessoa(Pessoa pessoa) { + this.pessoa = pessoa; + } +} diff --git a/286_ViewParam/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/GenericDomain.java b/286_ViewParam/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/GenericDomain.java new file mode 100644 index 0000000..f37efea --- /dev/null +++ b/286_ViewParam/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/GenericDomain.java @@ -0,0 +1,54 @@ +package br.pro.delfino.drogaria.domain; + +import java.io.Serializable; + +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Id; +import javax.persistence.MappedSuperclass; + +@SuppressWarnings("serial") +@MappedSuperclass +public class GenericDomain implements Serializable { + @Id + @GeneratedValue(strategy = GenerationType.AUTO) + private Long codigo; + + public Long getCodigo() { + return codigo; + } + + public void setCodigo(Long codigo) { + this.codigo = codigo; + } + + @Override + public String toString() { + return String.format("%s[codigo=%d]", getClass().getSimpleName(), getCodigo()); + } + + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + ((codigo == null) ? 0 : codigo.hashCode()); + return result; + } + + @Override + public boolean equals(Object obj) { + if (this == obj) + return true; + if (obj == null) + return false; + if (getClass() != obj.getClass()) + return false; + GenericDomain other = (GenericDomain) obj; + if (codigo == null) { + if (other.codigo != null) + return false; + } else if (!codigo.equals(other.codigo)) + return false; + return true; + } +} diff --git a/286_ViewParam/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Historico.java b/286_ViewParam/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Historico.java new file mode 100644 index 0000000..dafdaeb --- /dev/null +++ b/286_ViewParam/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Historico.java @@ -0,0 +1,49 @@ +package br.pro.delfino.drogaria.domain; + +import java.util.Date; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.JoinColumn; +import javax.persistence.ManyToOne; +import javax.persistence.Temporal; +import javax.persistence.TemporalType; + +@SuppressWarnings("serial") +@Entity +public class Historico extends GenericDomain { + @Column(nullable = false) + @Temporal(TemporalType.TIMESTAMP) + private Date horario; + + @Column(nullable = false, length = 500) + private String observacoes; + + @ManyToOne + @JoinColumn(nullable = false) + private Produto produto; + + public Date getHorario() { + return horario; + } + + public void setHorario(Date horario) { + this.horario = horario; + } + + public String getObservacoes() { + return observacoes; + } + + public void setObservacoes(String observacoes) { + this.observacoes = observacoes; + } + + public Produto getProduto() { + return produto; + } + + public void setProduto(Produto produto) { + this.produto = produto; + } +} diff --git a/286_ViewParam/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/ItemVenda.java b/286_ViewParam/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/ItemVenda.java new file mode 100644 index 0000000..590ab26 --- /dev/null +++ b/286_ViewParam/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/ItemVenda.java @@ -0,0 +1,58 @@ +package br.pro.delfino.drogaria.domain; + +import java.math.BigDecimal; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.JoinColumn; +import javax.persistence.ManyToOne; + +@SuppressWarnings("serial") +@Entity +public class ItemVenda extends GenericDomain { + @Column(nullable = false) + private Short quantidade; + + @Column(nullable = false, precision = 7, scale = 2) + private BigDecimal precoParcial; + + @ManyToOne + @JoinColumn(nullable = false) + private Produto produto; + + @ManyToOne + @JoinColumn(nullable = false) + private Venda venda; + + public Short getQuantidade() { + return quantidade; + } + + public void setQuantidade(Short quantidade) { + this.quantidade = quantidade; + } + + public BigDecimal getPrecoParcial() { + return precoParcial; + } + + public void setPrecoParcial(BigDecimal precoParcial) { + this.precoParcial = precoParcial; + } + + public Produto getProduto() { + return produto; + } + + public void setProduto(Produto produto) { + this.produto = produto; + } + + public Venda getVenda() { + return venda; + } + + public void setVenda(Venda venda) { + this.venda = venda; + } +} diff --git a/286_ViewParam/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Movimentacao.java b/286_ViewParam/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Movimentacao.java new file mode 100644 index 0000000..c3d6319 --- /dev/null +++ b/286_ViewParam/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Movimentacao.java @@ -0,0 +1,50 @@ +package br.pro.delfino.drogaria.domain; + +import java.math.BigDecimal; +import java.util.Date; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.JoinColumn; +import javax.persistence.ManyToOne; +import javax.persistence.Temporal; +import javax.persistence.TemporalType; + +@SuppressWarnings("serial") +@Entity +public class Movimentacao extends GenericDomain { + @Column(nullable = false) + @Temporal(TemporalType.TIMESTAMP) + private Date horario; + + @Column(nullable = false, precision = 7, scale = 2) + private BigDecimal valor; + + @ManyToOne + @JoinColumn(nullable = false) + private Caixa caixa; + + public Date getHorario() { + return horario; + } + + public void setHorario(Date horario) { + this.horario = horario; + } + + public BigDecimal getValor() { + return valor; + } + + public void setValor(BigDecimal valor) { + this.valor = valor; + } + + public Caixa getCaixa() { + return caixa; + } + + public void setCaixa(Caixa caixa) { + this.caixa = caixa; + } +} diff --git a/286_ViewParam/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Pessoa.java b/286_ViewParam/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Pessoa.java new file mode 100644 index 0000000..f354001 --- /dev/null +++ b/286_ViewParam/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Pessoa.java @@ -0,0 +1,143 @@ +package br.pro.delfino.drogaria.domain; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.JoinColumn; +import javax.persistence.ManyToOne; + +@SuppressWarnings("serial") +@Entity +public class Pessoa extends GenericDomain { + @Column(length = 50, nullable = false) + private String nome; + + @Column(length = 14, nullable = false) + private String cpf; + + @Column(length = 12, nullable = false) + private String rg; + + @Column(length = 100, nullable = false) + private String rua; + + @Column(nullable = false) + private Short numero; + + @Column(length = 30, nullable = false) + private String bairro; + + @Column(length = 10, nullable = false) + private String cep; + + @Column(length = 10) + private String complemento; + + @Column(length = 13, nullable = false) + private String telefone; + + @Column(length = 14, nullable = false) + private String celular; + + @Column(length = 100, nullable = false) + private String email; + + @ManyToOne + @JoinColumn(nullable = false) + private Cidade cidade; + + public String getNome() { + return nome; + } + + public void setNome(String nome) { + this.nome = nome; + } + + public String getCpf() { + return cpf; + } + + public void setCpf(String cpf) { + this.cpf = cpf; + } + + public String getRg() { + return rg; + } + + public void setRg(String rg) { + this.rg = rg; + } + + public String getRua() { + return rua; + } + + public void setRua(String rua) { + this.rua = rua; + } + + public Short getNumero() { + return numero; + } + + public void setNumero(Short numero) { + this.numero = numero; + } + + public String getBairro() { + return bairro; + } + + public void setBairro(String bairro) { + this.bairro = bairro; + } + + public String getCep() { + return cep; + } + + public void setCep(String cep) { + this.cep = cep; + } + + public String getComplemento() { + return complemento; + } + + public void setComplemento(String complemento) { + this.complemento = complemento; + } + + public String getTelefone() { + return telefone; + } + + public void setTelefone(String telefone) { + this.telefone = telefone; + } + + public String getCelular() { + return celular; + } + + public void setCelular(String celular) { + this.celular = celular; + } + + public String getEmail() { + return email; + } + + public void setEmail(String email) { + this.email = email; + } + + public Cidade getCidade() { + return cidade; + } + + public void setCidade(Cidade cidade) { + this.cidade = cidade; + } +} diff --git a/286_ViewParam/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Produto.java b/286_ViewParam/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Produto.java new file mode 100644 index 0000000..82049b0 --- /dev/null +++ b/286_ViewParam/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Produto.java @@ -0,0 +1,69 @@ +package br.pro.delfino.drogaria.domain; + +import java.math.BigDecimal; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.JoinColumn; +import javax.persistence.ManyToOne; +import javax.persistence.Transient; + +@SuppressWarnings("serial") +@Entity +public class Produto extends GenericDomain { + @Column(length = 80, nullable = false) + private String descricao; + + @Column(nullable = false) + private Short quantidade; + + @Column(nullable = false, precision = 6, scale = 2) + private BigDecimal preco; + + @ManyToOne + @JoinColumn(nullable = false) + private Fabricante fabricante; + + @Transient + private String caminho; + + public String getDescricao() { + return descricao; + } + + public void setDescricao(String descricao) { + this.descricao = descricao; + } + + public Short getQuantidade() { + return quantidade; + } + + public void setQuantidade(Short quantidade) { + this.quantidade = quantidade; + } + + public BigDecimal getPreco() { + return preco; + } + + public void setPreco(BigDecimal preco) { + this.preco = preco; + } + + public Fabricante getFabricante() { + return fabricante; + } + + public void setFabricante(Fabricante fabricante) { + this.fabricante = fabricante; + } + + public String getCaminho() { + return caminho; + } + + public void setCaminho(String caminho) { + this.caminho = caminho; + } +} diff --git a/286_ViewParam/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Usuario.java b/286_ViewParam/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Usuario.java new file mode 100644 index 0000000..ae51941 --- /dev/null +++ b/286_ViewParam/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Usuario.java @@ -0,0 +1,93 @@ +package br.pro.delfino.drogaria.domain; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.JoinColumn; +import javax.persistence.OneToOne; +import javax.persistence.Transient; + +@SuppressWarnings("serial") +@Entity +public class Usuario extends GenericDomain { + @Column(length = 32, nullable = false) + private String senha; + + @Transient + private String senhaSemCriptografia; + + @Column(nullable = false) + private Character tipo; + + @Column(nullable = false) + private Boolean ativo; + + @OneToOne + @JoinColumn(nullable = false) + private Pessoa pessoa; + + public String getSenha() { + return senha; + } + + public void setSenha(String senha) { + this.senha = senha; + } + + public String getSenhaSemCriptografia() { + return senhaSemCriptografia; + } + + public void setSenhaSemCriptografia(String senhaSemCriptografia) { + this.senhaSemCriptografia = senhaSemCriptografia; + } + + public Character getTipo() { + return tipo; + } + + @Transient + public String getTipoFormatado() { + String tipoFormatado = null; + + if (tipo == 'A') { + tipoFormatado = "Administrador"; + } else if (tipo == 'B') { + tipoFormatado = "Balconista"; + } else if (tipo == 'G') { + tipoFormatado = "Gerente"; + } + + return tipoFormatado; + } + + public void setTipo(Character tipo) { + this.tipo = tipo; + } + + public Boolean getAtivo() { + return ativo; + } + + @Transient + public String getAtivoFormatado(){ + String ativoFormatado = "Não"; + + if(ativo){ + ativoFormatado = "Sim"; + } + + return ativoFormatado; + } + + public void setAtivo(Boolean ativo) { + this.ativo = ativo; + } + + public Pessoa getPessoa() { + return pessoa; + } + + public void setPessoa(Pessoa pessoa) { + this.pessoa = pessoa; + } +} diff --git a/286_ViewParam/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Venda.java b/286_ViewParam/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Venda.java new file mode 100644 index 0000000..3f4c226 --- /dev/null +++ b/286_ViewParam/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Venda.java @@ -0,0 +1,61 @@ +package br.pro.delfino.drogaria.domain; + +import java.math.BigDecimal; +import java.util.Date; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.JoinColumn; +import javax.persistence.ManyToOne; +import javax.persistence.Temporal; +import javax.persistence.TemporalType; + +@SuppressWarnings("serial") +@Entity +public class Venda extends GenericDomain { + @Column(nullable = false) + @Temporal(TemporalType.TIMESTAMP) + private Date horario; + + @Column(nullable = false, precision = 7, scale = 2) + private BigDecimal precoTotal; + + @ManyToOne + private Cliente cliente; + + @ManyToOne + @JoinColumn(nullable = false) + private Funcionario funcionario; + + public Date getHorario() { + return horario; + } + + public void setHorario(Date horario) { + this.horario = horario; + } + + public BigDecimal getPrecoTotal() { + return precoTotal; + } + + public void setPrecoTotal(BigDecimal precoTotal) { + this.precoTotal = precoTotal; + } + + public Cliente getCliente() { + return cliente; + } + + public void setCliente(Cliente cliente) { + this.cliente = cliente; + } + + public Funcionario getFuncionario() { + return funcionario; + } + + public void setFuncionario(Funcionario funcionario) { + this.funcionario = funcionario; + } +} diff --git a/286_ViewParam/Drogaria/src/main/java/br/pro/delfino/drogaria/service/DrogariaService.java b/286_ViewParam/Drogaria/src/main/java/br/pro/delfino/drogaria/service/DrogariaService.java new file mode 100644 index 0000000..fbb1f2b --- /dev/null +++ b/286_ViewParam/Drogaria/src/main/java/br/pro/delfino/drogaria/service/DrogariaService.java @@ -0,0 +1,13 @@ +package br.pro.delfino.drogaria.service; + +import javax.ws.rs.GET; +import javax.ws.rs.Path; + +// http://localhost:8080/Drogaria/rest/drogaria +@Path("drogaria") +public class DrogariaService { + @GET + public String exibir(){ + return "Curso de Java"; + } +} diff --git a/286_ViewParam/Drogaria/src/main/java/br/pro/delfino/drogaria/service/FabricanteService.java b/286_ViewParam/Drogaria/src/main/java/br/pro/delfino/drogaria/service/FabricanteService.java new file mode 100644 index 0000000..1dbc0d1 --- /dev/null +++ b/286_ViewParam/Drogaria/src/main/java/br/pro/delfino/drogaria/service/FabricanteService.java @@ -0,0 +1,85 @@ +package br.pro.delfino.drogaria.service; + +import java.util.List; + +import javax.ws.rs.DELETE; +import javax.ws.rs.GET; +import javax.ws.rs.POST; +import javax.ws.rs.PUT; +import javax.ws.rs.Path; +import javax.ws.rs.PathParam; + +import com.google.gson.Gson; + +import br.pro.delfino.drogaria.dao.FabricanteDAO; +import br.pro.delfino.drogaria.domain.Fabricante; + +@Path("fabricante") +public class FabricanteService { + // http://127.0.0.1:8080/Drogaria/rest/fabricante + @GET + public String listar() { + FabricanteDAO fabricanteDAO = new FabricanteDAO(); + List fabricantes = fabricanteDAO.listar("descricao"); + + Gson gson = new Gson(); + String json = gson.toJson(fabricantes); + + return json; + } + + // http://127.0.0.1:8080/Drogaria/rest/fabricante/{codigo} + // http://127.0.0.1:8080/Drogaria/rest/fabricante/10 + @GET + @Path("{codigo}") + public String buscar(@PathParam("codigo") Long codigo) { + FabricanteDAO fabricanteDAO = new FabricanteDAO(); + Fabricante fabricante = fabricanteDAO.buscar(codigo); + + Gson gson = new Gson(); + String json = gson.toJson(fabricante); + + return json; + } + + // http://127.0.0.1:8080/Drogaria/rest/fabricante + @POST + public String salvar(String json) { + Gson gson = new Gson(); + Fabricante fabricante = gson.fromJson(json, Fabricante.class); + + FabricanteDAO fabricanteDAO = new FabricanteDAO(); + fabricanteDAO.merge(fabricante); + + String jsonSaida = gson.toJson(fabricante); + return jsonSaida; + } + + // http://127.0.0.1:8080/Drogaria/rest/fabricante + @PUT + public String editar(String json) { + Gson gson = new Gson(); + Fabricante fabricante = gson.fromJson(json, Fabricante.class); + + FabricanteDAO fabricanteDAO = new FabricanteDAO(); + fabricanteDAO.editar(fabricante); + + String jsonSaida = gson.toJson(fabricante); + return jsonSaida; + } + + // http://127.0.0.1:8080/Drogaria/rest/fabricante/{codigo} + // http://127.0.0.1:8080/Drogaria/rest/fabricante/10 + @DELETE + @Path("{codigo}") + public String excluir(@PathParam("codigo") Long codigo){ + FabricanteDAO fabricanteDAO = new FabricanteDAO(); + + Fabricante fabricante = fabricanteDAO.buscar(codigo); + fabricanteDAO.excluir(fabricante); + + Gson gson = new Gson(); + String saida = gson.toJson(fabricante); + return saida; + } +} diff --git a/286_ViewParam/Drogaria/src/main/java/br/pro/delfino/drogaria/service/ProdutoService.java b/286_ViewParam/Drogaria/src/main/java/br/pro/delfino/drogaria/service/ProdutoService.java new file mode 100644 index 0000000..4dfdf40 --- /dev/null +++ b/286_ViewParam/Drogaria/src/main/java/br/pro/delfino/drogaria/service/ProdutoService.java @@ -0,0 +1,39 @@ +package br.pro.delfino.drogaria.service; + +import java.util.List; + +import javax.ws.rs.GET; +import javax.ws.rs.POST; +import javax.ws.rs.Path; + +import com.google.gson.Gson; + +import br.pro.delfino.drogaria.dao.ProdutoDAO; +import br.pro.delfino.drogaria.domain.Produto; + +// http://127.0.0.1:8080/Drogaria/rest/produto +@Path("produto") +public class ProdutoService { + @GET + public String listar(){ + ProdutoDAO produtoDAO = new ProdutoDAO(); + List produtos = produtoDAO.listar("descricao"); + + Gson gson = new Gson(); + String json = gson.toJson(produtos); + + return json; + } + + @POST + public String salvar (String json){ + Gson gson = new Gson(); + Produto produto = gson.fromJson(json, Produto.class); + + ProdutoDAO produtoDAO = new ProdutoDAO(); + produto = produtoDAO.merge(produto); + + String jsonSaida = gson.toJson(produto); + return jsonSaida; + } +} diff --git a/286_ViewParam/Drogaria/src/main/java/br/pro/delfino/drogaria/util/DrogariaResourceConfig.java b/286_ViewParam/Drogaria/src/main/java/br/pro/delfino/drogaria/util/DrogariaResourceConfig.java new file mode 100644 index 0000000..2c997a9 --- /dev/null +++ b/286_ViewParam/Drogaria/src/main/java/br/pro/delfino/drogaria/util/DrogariaResourceConfig.java @@ -0,0 +1,13 @@ +package br.pro.delfino.drogaria.util; + +import javax.ws.rs.ApplicationPath; + +import org.glassfish.jersey.server.ResourceConfig; + +//http://localhost:8080/Drogaria/rest +@ApplicationPath("rest") +public class DrogariaResourceConfig extends ResourceConfig { + public DrogariaResourceConfig(){ + packages("br.pro.delfino.drogaria.service"); + } +} diff --git a/286_ViewParam/Drogaria/src/main/java/br/pro/delfino/drogaria/util/HibernateContexto.java b/286_ViewParam/Drogaria/src/main/java/br/pro/delfino/drogaria/util/HibernateContexto.java new file mode 100644 index 0000000..71869d7 --- /dev/null +++ b/286_ViewParam/Drogaria/src/main/java/br/pro/delfino/drogaria/util/HibernateContexto.java @@ -0,0 +1,18 @@ +package br.pro.delfino.drogaria.util; + +import javax.servlet.ServletContextEvent; +import javax.servlet.ServletContextListener; + +public class HibernateContexto implements ServletContextListener { + + @Override + public void contextDestroyed(ServletContextEvent event) { + HibernateUtil.getFabricaDeSessoes().close(); + } + + @Override + public void contextInitialized(ServletContextEvent event) { + HibernateUtil.getFabricaDeSessoes(); + } + +} diff --git a/286_ViewParam/Drogaria/src/main/java/br/pro/delfino/drogaria/util/HibernateUtil.java b/286_ViewParam/Drogaria/src/main/java/br/pro/delfino/drogaria/util/HibernateUtil.java new file mode 100644 index 0000000..693551b --- /dev/null +++ b/286_ViewParam/Drogaria/src/main/java/br/pro/delfino/drogaria/util/HibernateUtil.java @@ -0,0 +1,47 @@ +package br.pro.delfino.drogaria.util; + +import java.sql.Connection; +import java.sql.SQLException; + +import org.hibernate.Session; +import org.hibernate.SessionFactory; +import org.hibernate.boot.registry.StandardServiceRegistryBuilder; +import org.hibernate.cfg.Configuration; +import org.hibernate.jdbc.ReturningWork; +import org.hibernate.service.ServiceRegistry; + +public class HibernateUtil { + private static SessionFactory fabricaDeSessoes = criarFabricaDeSessoes(); + + public static SessionFactory getFabricaDeSessoes() { + return fabricaDeSessoes; + } + + public static Connection getConexao(){ + Session sessao = fabricaDeSessoes.openSession(); + + Connection conexao = sessao.doReturningWork(new ReturningWork() { + @Override + public Connection execute(Connection conn) throws SQLException { + return conn; + } + }); + + return conexao; + } + + private static SessionFactory criarFabricaDeSessoes() { + try { + Configuration configuracao = new Configuration().configure(); + + ServiceRegistry registro = new StandardServiceRegistryBuilder().applySettings(configuracao.getProperties()).build(); + + SessionFactory fabrica = configuracao.buildSessionFactory(registro); + + return fabrica; + } catch (Throwable ex) { + System.err.println("A fábrica de sessões não pode ser criada." + ex); + throw new ExceptionInInitializerError(ex); + } + } +} diff --git a/286_ViewParam/Drogaria/src/main/resources/hibernate.cfg.xml b/286_ViewParam/Drogaria/src/main/resources/hibernate.cfg.xml new file mode 100644 index 0000000..65f392e --- /dev/null +++ b/286_ViewParam/Drogaria/src/main/resources/hibernate.cfg.xml @@ -0,0 +1,51 @@ + + + + + + + + + + com.mysql.jdbc.Driver + jdbc:mysql://127.0.0.1:3306/drogaria + root + q1w2e3r4 + + + 1 + + + org.hibernate.dialect.MySQL5InnoDBDialect + + + thread + + + org.hibernate.cache.internal.NoCacheProvider + + + true + + + update + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/286_ViewParam/Drogaria/src/main/webapp/WEB-INF/springsecurity.taglib.xml b/286_ViewParam/Drogaria/src/main/webapp/WEB-INF/springsecurity.taglib.xml new file mode 100644 index 0000000..9d6938c --- /dev/null +++ b/286_ViewParam/Drogaria/src/main/webapp/WEB-INF/springsecurity.taglib.xml @@ -0,0 +1,32 @@ + + + + http://www.springframework.org/security/tags + + authorize + org.springframework.faces.security.FaceletsAuthorizeTagHandler + + + areAllGranted + org.springframework.faces.security.FaceletsAuthorizeTagUtils + boolean areAllGranted(java.lang.String) + + + areAnyGranted + org.springframework.faces.security.FaceletsAuthorizeTagUtils + boolean areAnyGranted(java.lang.String) + + + areNotGranted + org.springframework.faces.security.FaceletsAuthorizeTagUtils + boolean areNotGranted(java.lang.String) + + + isAllowed + org.springframework.faces.security.FaceletsAuthorizeTagUtils + boolean isAllowed(java.lang.String, + java.lang.String) + + \ No newline at end of file diff --git a/286_ViewParam/Drogaria/src/main/webapp/WEB-INF/web.xml b/286_ViewParam/Drogaria/src/main/webapp/WEB-INF/web.xml new file mode 100644 index 0000000..6b0cf5d --- /dev/null +++ b/286_ViewParam/Drogaria/src/main/webapp/WEB-INF/web.xml @@ -0,0 +1,48 @@ + + + + + Drogaria + + + + pages/principal.xhtml + + + + + javax.faces.PROJECT_STAGE + Development + + + + + primefaces.THEME + blitzer + + + + + primefaces.UPLOADER + native + + + + + Faces Servlet + javax.faces.webapp.FacesServlet + 1 + + + Faces Servlet + *.xhtml + + + + + br.pro.delfino.drogaria.util.HibernateContexto + + \ No newline at end of file diff --git a/286_ViewParam/Drogaria/src/main/webapp/pages/autenticacao.xhtml b/286_ViewParam/Drogaria/src/main/webapp/pages/autenticacao.xhtml new file mode 100644 index 0000000..e41a833 --- /dev/null +++ b/286_ViewParam/Drogaria/src/main/webapp/pages/autenticacao.xhtml @@ -0,0 +1,36 @@ + + + + + + Autenticação + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/286_ViewParam/Drogaria/src/main/webapp/pages/cidades.xhtml b/286_ViewParam/Drogaria/src/main/webapp/pages/cidades.xhtml new file mode 100644 index 0000000..504f3a3 --- /dev/null +++ b/286_ViewParam/Drogaria/src/main/webapp/pages/cidades.xhtml @@ -0,0 +1,100 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/286_ViewParam/Drogaria/src/main/webapp/pages/clientes.xhtml b/286_ViewParam/Drogaria/src/main/webapp/pages/clientes.xhtml new file mode 100644 index 0000000..4e3cfb5 --- /dev/null +++ b/286_ViewParam/Drogaria/src/main/webapp/pages/clientes.xhtml @@ -0,0 +1,94 @@ + + + + + + Clientes + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/286_ViewParam/Drogaria/src/main/webapp/pages/estados.xhtml b/286_ViewParam/Drogaria/src/main/webapp/pages/estados.xhtml new file mode 100644 index 0000000..0cddf5e --- /dev/null +++ b/286_ViewParam/Drogaria/src/main/webapp/pages/estados.xhtml @@ -0,0 +1,90 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/286_ViewParam/Drogaria/src/main/webapp/pages/fabricantes.xhtml b/286_ViewParam/Drogaria/src/main/webapp/pages/fabricantes.xhtml new file mode 100644 index 0000000..3904db0 --- /dev/null +++ b/286_ViewParam/Drogaria/src/main/webapp/pages/fabricantes.xhtml @@ -0,0 +1,78 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/286_ViewParam/Drogaria/src/main/webapp/pages/historico.xhtml b/286_ViewParam/Drogaria/src/main/webapp/pages/historico.xhtml new file mode 100644 index 0000000..184a864 --- /dev/null +++ b/286_ViewParam/Drogaria/src/main/webapp/pages/historico.xhtml @@ -0,0 +1,64 @@ + + + + + + Histórico + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/286_ViewParam/Drogaria/src/main/webapp/pages/pessoas.xhtml b/286_ViewParam/Drogaria/src/main/webapp/pages/pessoas.xhtml new file mode 100644 index 0000000..7d68e8c --- /dev/null +++ b/286_ViewParam/Drogaria/src/main/webapp/pages/pessoas.xhtml @@ -0,0 +1,162 @@ + + + + + + Pessoas + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/286_ViewParam/Drogaria/src/main/webapp/pages/principal.xhtml b/286_ViewParam/Drogaria/src/main/webapp/pages/principal.xhtml new file mode 100644 index 0000000..726842c --- /dev/null +++ b/286_ViewParam/Drogaria/src/main/webapp/pages/principal.xhtml @@ -0,0 +1,14 @@ + + + + + + + + + \ No newline at end of file diff --git a/286_ViewParam/Drogaria/src/main/webapp/pages/produtos.xhtml b/286_ViewParam/Drogaria/src/main/webapp/pages/produtos.xhtml new file mode 100644 index 0000000..56c5db4 --- /dev/null +++ b/286_ViewParam/Drogaria/src/main/webapp/pages/produtos.xhtml @@ -0,0 +1,141 @@ + + + + + + Produtos + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/286_ViewParam/Drogaria/src/main/webapp/pages/produtosEdicao.xhtml b/286_ViewParam/Drogaria/src/main/webapp/pages/produtosEdicao.xhtml new file mode 100644 index 0000000..9eae78a --- /dev/null +++ b/286_ViewParam/Drogaria/src/main/webapp/pages/produtosEdicao.xhtml @@ -0,0 +1,67 @@ + + + + + + + + + + + + Produtos + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/286_ViewParam/Drogaria/src/main/webapp/pages/produtosListagem.xhtml b/286_ViewParam/Drogaria/src/main/webapp/pages/produtosListagem.xhtml new file mode 100644 index 0000000..2b30417 --- /dev/null +++ b/286_ViewParam/Drogaria/src/main/webapp/pages/produtosListagem.xhtml @@ -0,0 +1,59 @@ + + + + + + + + + + + Produtos + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/286_ViewParam/Drogaria/src/main/webapp/pages/testeJSF.xhtml b/286_ViewParam/Drogaria/src/main/webapp/pages/testeJSF.xhtml new file mode 100644 index 0000000..c20659b --- /dev/null +++ b/286_ViewParam/Drogaria/src/main/webapp/pages/testeJSF.xhtml @@ -0,0 +1,12 @@ + + + + + + Teste JSF + + + + + \ No newline at end of file diff --git a/286_ViewParam/Drogaria/src/main/webapp/pages/testePrimeFaces.xhtml b/286_ViewParam/Drogaria/src/main/webapp/pages/testePrimeFaces.xhtml new file mode 100644 index 0000000..6c4d434 --- /dev/null +++ b/286_ViewParam/Drogaria/src/main/webapp/pages/testePrimeFaces.xhtml @@ -0,0 +1,14 @@ + + + + + + Teste PrimeFaces + + + + + \ No newline at end of file diff --git a/286_ViewParam/Drogaria/src/main/webapp/pages/usuarios.xhtml b/286_ViewParam/Drogaria/src/main/webapp/pages/usuarios.xhtml new file mode 100644 index 0000000..45dd761 --- /dev/null +++ b/286_ViewParam/Drogaria/src/main/webapp/pages/usuarios.xhtml @@ -0,0 +1,97 @@ + + + + + + Usuários + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/286_ViewParam/Drogaria/src/main/webapp/pages/vendas.xhtml b/286_ViewParam/Drogaria/src/main/webapp/pages/vendas.xhtml new file mode 100644 index 0000000..4485892 --- /dev/null +++ b/286_ViewParam/Drogaria/src/main/webapp/pages/vendas.xhtml @@ -0,0 +1,156 @@ + + + + + + Vendas + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/286_ViewParam/Drogaria/src/main/webapp/reports/estados.jasper b/286_ViewParam/Drogaria/src/main/webapp/reports/estados.jasper new file mode 100644 index 0000000..96a1278 Binary files /dev/null and b/286_ViewParam/Drogaria/src/main/webapp/reports/estados.jasper differ diff --git a/286_ViewParam/Drogaria/src/main/webapp/reports/estados.jrxml b/286_ViewParam/Drogaria/src/main/webapp/reports/estados.jrxml new file mode 100644 index 0000000..76da981 --- /dev/null +++ b/286_ViewParam/Drogaria/src/main/webapp/reports/estados.jrxml @@ -0,0 +1,102 @@ + + + + + + + + + + + + + + + + + + + + <band height="80" splitType="Stretch"> + <image hAlign="Center" vAlign="Middle"> + <reportElement x="0" y="0" width="555" height="80" uuid="6f3208e9-d291-48b3-b13d-3ec9ef72cd3e"> + <property name="com.jaspersoft.studio.unit.width" value="pixel"/> + </reportElement> + <imageExpression><![CDATA["C:/Programação Web com Java/Workspace/Drogaria/src/main/webapp/resources/images/banner.jpg"]]></imageExpression> + </image> + </band> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/286_ViewParam/Drogaria/src/main/webapp/reports/produtos.jasper b/286_ViewParam/Drogaria/src/main/webapp/reports/produtos.jasper new file mode 100644 index 0000000..ad55e5f Binary files /dev/null and b/286_ViewParam/Drogaria/src/main/webapp/reports/produtos.jasper differ diff --git a/286_ViewParam/Drogaria/src/main/webapp/reports/produtos.jrxml b/286_ViewParam/Drogaria/src/main/webapp/reports/produtos.jrxml new file mode 100644 index 0000000..800aed0 --- /dev/null +++ b/286_ViewParam/Drogaria/src/main/webapp/reports/produtos.jrxml @@ -0,0 +1,130 @@ + + + + + + + + + + + + + + + + + + + + + <band height="79" splitType="Stretch"> + <image hAlign="Center"> + <reportElement x="0" y="0" width="555" height="79" uuid="727feda0-73ba-4c27-aa2c-a431492bd3d6"> + <property name="com.jaspersoft.studio.unit.width" value="pixel"/> + </reportElement> + <imageExpression><![CDATA["C:/Programação Web com Java/Workspace/Drogaria/src/main/webapp/resources/images/banner.jpg"]]></imageExpression> + </image> + </band> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/286_ViewParam/Drogaria/src/main/webapp/resources/css/estilos.css b/286_ViewParam/Drogaria/src/main/webapp/resources/css/estilos.css new file mode 100644 index 0000000..4acdd7f --- /dev/null +++ b/286_ViewParam/Drogaria/src/main/webapp/resources/css/estilos.css @@ -0,0 +1,19 @@ +@CHARSET "UTF-8"; + +.imagemCentralizada { + display: block; + margin-left: auto; + margin-right: auto; +} + +.divTopo { + padding-bottom: 5px; +} + +.divCabecalho { + padding-bottom: 5px; +} + +.ui-widget, .ui-widget .ui-widget { + font-size: 100% !important; +} \ No newline at end of file diff --git a/286_ViewParam/Drogaria/src/main/webapp/resources/images/banner.jpg b/286_ViewParam/Drogaria/src/main/webapp/resources/images/banner.jpg new file mode 100644 index 0000000..f58cc21 Binary files /dev/null and b/286_ViewParam/Drogaria/src/main/webapp/resources/images/banner.jpg differ diff --git a/286_ViewParam/Drogaria/src/main/webapp/resources/js/scripts.js b/286_ViewParam/Drogaria/src/main/webapp/resources/js/scripts.js new file mode 100644 index 0000000..e39ad9b --- /dev/null +++ b/286_ViewParam/Drogaria/src/main/webapp/resources/js/scripts.js @@ -0,0 +1,26 @@ +PrimeFaces.locales['pt_BR'] = { + closeText: 'Fechar', + prevText: 'Anterior', + nextText: 'Próximo', + currentText: 'Começo', + monthNames: ['Janeiro','Fevereiro','Março','Abril','Maio','Junho','Julho','Agosto','Setembro','Outubro','Novembro','Dezembro'], + monthNamesShort: ['Jan','Fev','Mar','Abr','Mai','Jun', 'Jul','Ago','Set','Out','Nov','Dez'], + dayNames: ['Domingo','Segunda','Terça','Quarta','Quinta','Sexta','Sábado'], + dayNamesShort: ['Dom','Seg','Ter','Qua','Qui','Sex','Sáb'], + dayNamesMin: ['D','S','T','Q','Q','S','S'], + weekHeader: 'Semana', + firstDay: 0, + isRTL: false, + showMonthAfterYear: false, + yearSuffix: '', + timeOnlyTitle: 'Só Horas', + timeText: 'Tempo', + hourText: 'Hora', + minuteText: 'Minuto', + secondText: 'Segundo', + ampm: false, + month: 'Mês', + week: 'Semana', + day: 'Dia', + allDayText : 'Todo o Dia' +}; \ No newline at end of file diff --git a/286_ViewParam/Drogaria/src/main/webapp/templates/modelo.xhtml b/286_ViewParam/Drogaria/src/main/webapp/templates/modelo.xhtml new file mode 100644 index 0000000..62d3d1c --- /dev/null +++ b/286_ViewParam/Drogaria/src/main/webapp/templates/modelo.xhtml @@ -0,0 +1,55 @@ + + + + + + SiGDro + + + + + +
+
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+
+ \ No newline at end of file diff --git a/286_ViewParam/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/CaixaDAOTest.java b/286_ViewParam/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/CaixaDAOTest.java new file mode 100644 index 0000000..b5e6156 --- /dev/null +++ b/286_ViewParam/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/CaixaDAOTest.java @@ -0,0 +1,33 @@ +package br.pro.delfino.drogaria.dao; + +import java.math.BigDecimal; +import java.text.ParseException; +import java.text.SimpleDateFormat; + +import org.junit.Assert; +import org.junit.Ignore; +import org.junit.Test; + +import br.pro.delfino.drogaria.domain.Caixa; + +public class CaixaDAOTest { + @Test + @Ignore + public void salvar() throws ParseException { + Caixa caixa = new Caixa(); + caixa.setDataAbertura(new SimpleDateFormat("dd/MM/yyyy").parse("14/12/2015")); + caixa.setValorAbertura(new BigDecimal("100.00")); + + CaixaDAO caixaDAO = new CaixaDAO(); + caixaDAO.salvar(caixa); + } + + @Test + @Ignore + public void buscar() throws ParseException { + CaixaDAO caixaDAO = new CaixaDAO(); + Caixa caixa = caixaDAO.buscar(new SimpleDateFormat("dd/MM/yyyy").parse("13/12/2015")); + System.out.println(caixa); + Assert.assertNull(caixa); + } +} diff --git a/286_ViewParam/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/CidadeDAOTest.java b/286_ViewParam/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/CidadeDAOTest.java new file mode 100644 index 0000000..ec59599 --- /dev/null +++ b/286_ViewParam/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/CidadeDAOTest.java @@ -0,0 +1,130 @@ +package br.pro.delfino.drogaria.dao; + +import java.util.List; + +import org.junit.Ignore; +import org.junit.Test; + +import br.pro.delfino.drogaria.domain.Cidade; +import br.pro.delfino.drogaria.domain.Estado; + +public class CidadeDAOTest { + @Test + @Ignore + public void salvar() { + Long codigoEstado = 1L; + + EstadoDAO estadoDAO = new EstadoDAO(); + + Estado estado = estadoDAO.buscar(codigoEstado); + + Cidade cidade = new Cidade(); + cidade.setNome("Marília"); + cidade.setEstado(estado); + + CidadeDAO cidadeDAO = new CidadeDAO(); + cidadeDAO.salvar(cidade); + } + + @Test + @Ignore + public void listar() { + CidadeDAO cidadeDAO = new CidadeDAO(); + List resultado = cidadeDAO.listar(); + + for (Cidade cidade : resultado) { + System.out.println("Código da Cidade: " + cidade.getCodigo()); + System.out.println("Nome da Cidade: " + cidade.getNome()); + System.out.println("Código do Estado: " + cidade.getEstado().getCodigo()); + System.out.println("Sigla do Estado: " + cidade.getEstado().getSigla()); + System.out.println("Nome do Estado: " + cidade.getEstado().getNome()); + System.out.println(); + } + } + + @Test + @Ignore + public void buscar(){ + Long codigo = 7L; + + CidadeDAO cidadeDAO = new CidadeDAO(); + Cidade cidade = cidadeDAO.buscar(codigo); + + System.out.println("Código da Cidade: " + cidade.getCodigo()); + System.out.println("Nome da Cidade: " + cidade.getNome()); + System.out.println("Código do Estado: " + cidade.getEstado().getCodigo()); + System.out.println("Sigla do Estado: " + cidade.getEstado().getSigla()); + System.out.println("Nome do Estado: " + cidade.getEstado().getNome()); + } + + @Test + @Ignore + public void excluir(){ + Long codigo = 7L; + + CidadeDAO cidadeDAO = new CidadeDAO(); + Cidade cidade = cidadeDAO.buscar(codigo); + + cidadeDAO.excluir(cidade); + + System.out.println("Cidade Removida"); + System.out.println("Código da Cidade: " + cidade.getCodigo()); + System.out.println("Nome da Cidade: " + cidade.getNome()); + System.out.println("Código do Estado: " + cidade.getEstado().getCodigo()); + System.out.println("Sigla do Estado: " + cidade.getEstado().getSigla()); + System.out.println("Nome do Estado: " + cidade.getEstado().getNome()); + } + + @Test + @Ignore + public void editar(){ + Long codigoCidade = 6L; + Long codigoEstado = 11L; + + EstadoDAO estadoDAO = new EstadoDAO(); + Estado estado = estadoDAO.buscar(codigoEstado); + + System.out.println("Código do Estado: " + estado.getCodigo()); + System.out.println("Sigla do Estado: " + estado.getSigla()); + System.out.println("Nome do Estado: " + estado.getNome()); + + CidadeDAO cidadeDAO = new CidadeDAO(); + Cidade cidade = cidadeDAO.buscar(codigoCidade); + + System.out.println("Cidade A Ser Editada"); + System.out.println("Código da Cidade: " + cidade.getCodigo()); + System.out.println("Nome da Cidade: " + cidade.getNome()); + System.out.println("Código do Estado: " + cidade.getEstado().getCodigo()); + System.out.println("Sigla do Estado: " + cidade.getEstado().getSigla()); + System.out.println("Nome do Estado: " + cidade.getEstado().getNome()); + + cidade.setNome("Guarapuava"); + cidade.setEstado(estado); + + cidadeDAO.editar(cidade); + + System.out.println("Cidade Editada"); + System.out.println("Código da Cidade: " + cidade.getCodigo()); + System.out.println("Nome da Cidade: " + cidade.getNome()); + System.out.println("Código do Estado: " + cidade.getEstado().getCodigo()); + System.out.println("Sigla do Estado: " + cidade.getEstado().getSigla()); + System.out.println("Nome do Estado: " + cidade.getEstado().getNome()); + } + + @Test + public void buscarPorEstado() { + Long estadoCodigo = 3L; + + CidadeDAO cidadeDAO = new CidadeDAO(); + List resultado = cidadeDAO.buscarPorEstado(estadoCodigo); + + for (Cidade cidade : resultado) { + System.out.println("Código da Cidade: " + cidade.getCodigo()); + System.out.println("Nome da Cidade: " + cidade.getNome()); + System.out.println("Código do Estado: " + cidade.getEstado().getCodigo()); + System.out.println("Sigla do Estado: " + cidade.getEstado().getSigla()); + System.out.println("Nome do Estado: " + cidade.getEstado().getNome()); + System.out.println(); + } + } +} diff --git a/286_ViewParam/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/ClienteDAOTest.java b/286_ViewParam/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/ClienteDAOTest.java new file mode 100644 index 0000000..4d557d9 --- /dev/null +++ b/286_ViewParam/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/ClienteDAOTest.java @@ -0,0 +1,29 @@ +package br.pro.delfino.drogaria.dao; + +import java.text.ParseException; +import java.text.SimpleDateFormat; + +import org.junit.Ignore; +import org.junit.Test; + +import br.pro.delfino.drogaria.domain.Cliente; +import br.pro.delfino.drogaria.domain.Pessoa; + +public class ClienteDAOTest { + @Test + @Ignore + public void salvar() throws ParseException { + PessoaDAO pessoaDAO = new PessoaDAO(); + Pessoa pessoa = pessoaDAO.buscar(2L); + + Cliente cliente = new Cliente(); + cliente.setDataCadastro(new SimpleDateFormat("dd/MM/yyyy").parse("09/06/2015")); + cliente.setLiberado(false); + cliente.setPessoa(pessoa); + + ClienteDAO clienteDAO = new ClienteDAO(); + clienteDAO.salvar(cliente); + + System.out.println("Cliente salvo com sucesso."); + } +} diff --git a/286_ViewParam/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/EstadoDAOTest.java b/286_ViewParam/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/EstadoDAOTest.java new file mode 100644 index 0000000..f84a086 --- /dev/null +++ b/286_ViewParam/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/EstadoDAOTest.java @@ -0,0 +1,88 @@ +package br.pro.delfino.drogaria.dao; + +import java.util.List; + +import org.junit.Ignore; +import org.junit.Test; + +import br.pro.delfino.drogaria.domain.Estado; + +public class EstadoDAOTest { + @Test + @Ignore + public void salvar() { + Estado estado = new Estado(); + estado.setNome("Rio Grande do Sul"); + estado.setSigla("RS"); + + EstadoDAO estadoDAO = new EstadoDAO(); + estadoDAO.salvar(estado); + } + + @Test + @Ignore + public void listar() { + EstadoDAO estadoDAO = new EstadoDAO(); + List resultado = estadoDAO.listar(); + + System.out.println("Total de Registros Encontrados: " + resultado.size()); + + for (Estado estado : resultado) { + System.out.println(estado.getCodigo() + " - " + estado.getSigla() + " - " + estado.getNome()); + } + } + + @Test + @Ignore + public void buscar(){ + Long codigo = 3L; + + EstadoDAO estadoDAO = new EstadoDAO(); + Estado estado = estadoDAO.buscar(codigo); + + if(estado == null){ + System.out.println("Nenhum registro encontrado"); + }else{ + System.out.println("Registro encontrado:"); + System.out.println(estado.getCodigo() + " - " + estado.getSigla() + " - " + estado.getNome()); + } + } + + @Test + @Ignore + public void excluir(){ + Long codigo = 1L; + EstadoDAO estadoDAO = new EstadoDAO(); + Estado estado = estadoDAO.buscar(codigo); + + if(estado == null){ + System.out.println("Nenhum registro encontrado"); + }else{ + estadoDAO.excluir(estado); + System.out.println("Registro removido:"); + System.out.println(estado.getCodigo() + " - " + estado.getSigla() + " - " + estado.getNome()); + } + } + + @Test + @Ignore + public void editar(){ + Long codigo = 10L; + EstadoDAO estadoDAO = new EstadoDAO(); + Estado estado = estadoDAO.buscar(codigo); + + if(estado == null){ + System.out.println("Nenhum registro encontrado"); + }else{ + System.out.println("Registro editado - Antes:"); + System.out.println(estado.getCodigo() + " - " + estado.getSigla() + " - " + estado.getNome()); + + estado.setNome("Santa Catarina"); + estado.setSigla("SC"); + estadoDAO.editar(estado); + + System.out.println("Registro editado - Depois:"); + System.out.println(estado.getCodigo() + " - " + estado.getSigla() + " - " + estado.getNome()); + } + } +} diff --git a/286_ViewParam/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/FabricanteDAOTest.java b/286_ViewParam/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/FabricanteDAOTest.java new file mode 100644 index 0000000..56fb124 --- /dev/null +++ b/286_ViewParam/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/FabricanteDAOTest.java @@ -0,0 +1,63 @@ +package br.pro.delfino.drogaria.dao; + +import java.util.List; + +import org.junit.Ignore; +import org.junit.Test; + +import br.pro.delfino.drogaria.domain.Fabricante; + +public class FabricanteDAOTest { + @Test + @Ignore + public void salvar() { + Fabricante fabricante = new Fabricante(); + fabricante.setDescricao("Aché"); + + FabricanteDAO fabricanteDAO = new FabricanteDAO(); + fabricanteDAO.salvar(fabricante); + } + + @Test + @Ignore + public void listar() { + FabricanteDAO FabricanteDAO = new FabricanteDAO(); + List resultado = FabricanteDAO.listar(); + + System.out.println("Total de Registros Encontrados: " + resultado.size()); + + for (Fabricante fabricante : resultado) { + System.out.println(fabricante.getCodigo() + " - " + fabricante.getDescricao()); + } + } + + @Test + @Ignore + public void buscar(){ + Long codigo = 3L; + + FabricanteDAO fabricanteDAO = new FabricanteDAO(); + Fabricante fabricante = fabricanteDAO.buscar(codigo); + + if(fabricante == null){ + System.out.println("Nenhum registro encontrado"); + }else{ + System.out.println("Registro encontrado:"); + System.out.println(fabricante.getCodigo() + " - " + fabricante.getDescricao()); + } + } + + @Test + @Ignore + public void merge() { + //Fabricante fabricante = new Fabricante(); + //fabricante.setDescricao("Fabricante A"); + //FabricanteDAO fabricanteDAO = new FabricanteDAO(); + //fabricanteDAO.merge(fabricante); + + FabricanteDAO fabricanteDAO = new FabricanteDAO(); + Fabricante fabricante = fabricanteDAO.buscar(5L); + fabricante.setDescricao("Fabricante B"); + fabricanteDAO.merge(fabricante); + } +} diff --git a/286_ViewParam/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/FuncionarioDAOTest.java b/286_ViewParam/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/FuncionarioDAOTest.java new file mode 100644 index 0000000..06cfff7 --- /dev/null +++ b/286_ViewParam/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/FuncionarioDAOTest.java @@ -0,0 +1,5 @@ +package br.pro.delfino.drogaria.dao; + +public class FuncionarioDAOTest { + +} diff --git a/286_ViewParam/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/ProdutoDAOTest.java b/286_ViewParam/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/ProdutoDAOTest.java new file mode 100644 index 0000000..36f8563 --- /dev/null +++ b/286_ViewParam/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/ProdutoDAOTest.java @@ -0,0 +1,29 @@ +package br.pro.delfino.drogaria.dao; + +import java.math.BigDecimal; + +import org.junit.Ignore; +import org.junit.Test; + +import br.pro.delfino.drogaria.domain.Fabricante; +import br.pro.delfino.drogaria.domain.Produto; + +public class ProdutoDAOTest { + @Test + @Ignore + public void salvar(){ + FabricanteDAO fabricanteDAO = new FabricanteDAO(); + Fabricante fabricante = fabricanteDAO.buscar(new Long("3")); + + Produto produto = new Produto(); + produto.setDescricao("Cataflan 50mg com 20 Comprimidos"); + produto.setFabricante(fabricante); + produto.setPreco(new BigDecimal("13.70")); + produto.setQuantidade(new Short("7")); + + ProdutoDAO produtoDAO = new ProdutoDAO(); + produtoDAO.salvar(produto); + + System.out.println("Produto salvo com sucesso"); + } +} diff --git a/286_ViewParam/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/UsuarioDAOTest.java b/286_ViewParam/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/UsuarioDAOTest.java new file mode 100644 index 0000000..c567ec8 --- /dev/null +++ b/286_ViewParam/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/UsuarioDAOTest.java @@ -0,0 +1,47 @@ +package br.pro.delfino.drogaria.dao; + +import org.apache.shiro.crypto.hash.SimpleHash; +import org.junit.Ignore; +import org.junit.Test; + +import br.pro.delfino.drogaria.domain.Pessoa; +import br.pro.delfino.drogaria.domain.Usuario; + +public class UsuarioDAOTest { + @Test + @Ignore + public void salvar(){ + PessoaDAO pessoaDAO = new PessoaDAO(); + Pessoa pessoa = pessoaDAO.buscar(3L); + + System.out.println("Pessoa Encontrada"); + System.out.println("Nome: " + pessoa.getNome()); + System.out.println("CPF: " + pessoa.getCpf()); + + Usuario usuario = new Usuario(); + usuario.setAtivo(true); + usuario.setPessoa(pessoa); + usuario.setSenhaSemCriptografia("q1w2e3r4"); + + SimpleHash hash = new SimpleHash("md5", usuario.getSenhaSemCriptografia()); + usuario.setSenha(hash.toHex()); + + usuario.setTipo('B'); + + UsuarioDAO usuarioDAO = new UsuarioDAO(); + usuarioDAO.salvar(usuario); + + System.out.println("Usuário salvo com sucesso."); + } + + @Test + public void autenticar(){ + String cpf = "999.999.999-99"; + String senha = "12345678"; + + UsuarioDAO usuarioDAO = new UsuarioDAO(); + Usuario usuario = usuarioDAO.autenticar(cpf, senha); + + System.out.println("Usuário autentica: " + usuario); + } +} diff --git a/286_ViewParam/Drogaria/src/test/java/br/pro/delfino/drogaria/util/HibernateUtilTest.java b/286_ViewParam/Drogaria/src/test/java/br/pro/delfino/drogaria/util/HibernateUtilTest.java new file mode 100644 index 0000000..75776e0 --- /dev/null +++ b/286_ViewParam/Drogaria/src/test/java/br/pro/delfino/drogaria/util/HibernateUtilTest.java @@ -0,0 +1,13 @@ +package br.pro.delfino.drogaria.util; + +import org.hibernate.Session; +import org.junit.Test; + +public class HibernateUtilTest { + @Test + public void conectar(){ + Session sessao = HibernateUtil.getFabricaDeSessoes().openSession(); + sessao.close(); + HibernateUtil.getFabricaDeSessoes().close(); + } +} diff --git a/287_Schedule_Ajustes/Drogaria/.tern-project b/287_Schedule_Ajustes/Drogaria/.tern-project new file mode 100644 index 0000000..b6f48dd --- /dev/null +++ b/287_Schedule_Ajustes/Drogaria/.tern-project @@ -0,0 +1 @@ +{"ide":{},"libs":["ecma5","browser"],"plugins":{"guess-types":{},"angular":{}}} \ No newline at end of file diff --git a/287_Schedule_Ajustes/Drogaria/pom.xml b/287_Schedule_Ajustes/Drogaria/pom.xml new file mode 100644 index 0000000..39b1e60 --- /dev/null +++ b/287_Schedule_Ajustes/Drogaria/pom.xml @@ -0,0 +1,132 @@ + + 4.0.0 + br.pro.delfino.drogaria + Drogaria + 1.0 + war + + + + UTF-8 + + + + + + Drogaria + + + + + + org.apache.maven.plugins + maven-compiler-plugin + 3.3 + + 1.8 + 1.8 + + + + + + + + + + prime-repo + PrimeFaces Maven Repository + http://repository.primefaces.org + default + + + + + + + + org.hibernate + hibernate-core + 4.3.11.Final + + + + + mysql + mysql-connector-java + 5.1.36 + + + + + junit + junit + 4.12 + + + + + org.glassfish + javax.faces + 2.2.12 + + + + + org.primefaces + primefaces + 5.2 + + + + + org.primefaces.themes + all-themes + 1.0.10 + + + + + org.omnifaces + omnifaces + 1.11 + + + + + javax.servlet + javax.servlet-api + 3.1.0 + + + + + org.glassfish.jersey.containers + jersey-container-servlet + 2.22.1 + + + + + com.google.code.gson + gson + 2.4 + + + + + net.sf.jasperreports + jasperreports + 6.1.1 + + + + + org.apache.shiro + shiro-core + 1.2.4 + + + + \ No newline at end of file diff --git a/287_Schedule_Ajustes/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/AutenticacaoBean.java b/287_Schedule_Ajustes/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/AutenticacaoBean.java new file mode 100644 index 0000000..7e86b0d --- /dev/null +++ b/287_Schedule_Ajustes/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/AutenticacaoBean.java @@ -0,0 +1,60 @@ +package br.pro.delfino.drogaria.bean; + +import java.io.IOException; + +import javax.annotation.PostConstruct; +import javax.faces.bean.ManagedBean; +import javax.faces.bean.SessionScoped; + +import org.omnifaces.util.Faces; +import org.omnifaces.util.Messages; + +import br.pro.delfino.drogaria.dao.UsuarioDAO; +import br.pro.delfino.drogaria.domain.Pessoa; +import br.pro.delfino.drogaria.domain.Usuario; + +@ManagedBean +@SessionScoped +public class AutenticacaoBean { + private Usuario usuario; + private Usuario usuarioLogado; + + public Usuario getUsuario() { + return usuario; + } + + public void setUsuario(Usuario usuario) { + this.usuario = usuario; + } + + public Usuario getUsuarioLogado() { + return usuarioLogado; + } + + public void setUsuarioLogado(Usuario usuarioLogado) { + this.usuarioLogado = usuarioLogado; + } + + @PostConstruct + public void iniciar() { + usuario = new Usuario(); + usuario.setPessoa(new Pessoa()); + } + + public void autenticar() { + try { + UsuarioDAO usuarioDAO = new UsuarioDAO(); + usuarioLogado = usuarioDAO.autenticar(usuario.getPessoa().getCpf(), usuario.getSenha()); + + if(usuarioLogado == null){ + Messages.addGlobalError("CPF e/ou senha incorretos"); + return; + } + + Faces.redirect("./pages/principal.xhtml"); + } catch (IOException erro) { + erro.printStackTrace(); + Messages.addGlobalError(erro.getMessage()); + } + } +} diff --git a/287_Schedule_Ajustes/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/CidadeBean.java b/287_Schedule_Ajustes/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/CidadeBean.java new file mode 100644 index 0000000..4b03075 --- /dev/null +++ b/287_Schedule_Ajustes/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/CidadeBean.java @@ -0,0 +1,119 @@ +package br.pro.delfino.drogaria.bean; + +import java.io.Serializable; +import java.util.List; + +import javax.annotation.PostConstruct; +import javax.faces.bean.ManagedBean; +import javax.faces.bean.ViewScoped; +import javax.faces.event.ActionEvent; + +import org.omnifaces.util.Messages; + +import br.pro.delfino.drogaria.dao.CidadeDAO; +import br.pro.delfino.drogaria.dao.EstadoDAO; +import br.pro.delfino.drogaria.domain.Cidade; +import br.pro.delfino.drogaria.domain.Estado; + +@SuppressWarnings("serial") +@ManagedBean +@ViewScoped +public class CidadeBean implements Serializable { + private Cidade cidade; + private List cidades; + private List estados; + + public Cidade getCidade() { + return cidade; + } + + public void setCidade(Cidade cidade) { + this.cidade = cidade; + } + + public List getCidades() { + return cidades; + } + + public void setCidades(List cidades) { + this.cidades = cidades; + } + + public List getEstados() { + return estados; + } + + public void setEstados(List estados) { + this.estados = estados; + } + + @PostConstruct + public void listar() { + try { + CidadeDAO cidadeDAO = new CidadeDAO(); + cidades = cidadeDAO.listar("nome"); + } catch (RuntimeException erro) { + Messages.addFlashGlobalError("Ocorreu um erro ao tentar listar as cidades"); + erro.printStackTrace(); + } + } + + public void novo() { + try { + cidade = new Cidade(); + + EstadoDAO estadoDAO = new EstadoDAO(); + estados = estadoDAO.listar("nome"); + } catch (RuntimeException erro) { + Messages.addFlashGlobalError("Ocorreu um erro ao gerar uma nova cidade"); + erro.printStackTrace(); + } + } + + public void salvar() { + try { + CidadeDAO cidadeDAO = new CidadeDAO(); + cidadeDAO.merge(cidade); + + cidade = new Cidade(); + + EstadoDAO estadoDAO = new EstadoDAO(); + estados = estadoDAO.listar(); + + cidades = cidadeDAO.listar(); + + Messages.addGlobalInfo("Cidade salva com sucesso"); + } catch (RuntimeException erro) { + Messages.addFlashGlobalError("Ocorreu um erro ao tentar salvar uma nova cidade"); + erro.printStackTrace(); + } + } + + public void excluir(ActionEvent evento) { + try { + cidade = (Cidade) evento.getComponent().getAttributes().get("cidadeSelecionada"); + + CidadeDAO cidadeDAO = new CidadeDAO(); + cidadeDAO.excluir(cidade); + + cidades = cidadeDAO.listar(); + + Messages.addGlobalInfo("Cidade removida com sucesso"); + } catch (RuntimeException erro) { + Messages.addFlashGlobalError("Ocorreu um erro ao tentar remover a cidade"); + erro.printStackTrace(); + } + } + + public void editar(ActionEvent evento){ + try { + cidade = (Cidade) evento.getComponent().getAttributes().get("cidadeSelecionada"); + + EstadoDAO estadoDAO = new EstadoDAO(); + estados = estadoDAO.listar(); + } catch (RuntimeException erro) { + Messages.addFlashGlobalError("Ocorreu um erro ao tentar selecionar uma cidade"); + erro.printStackTrace(); + } + } +} diff --git a/287_Schedule_Ajustes/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/ClienteBean.java b/287_Schedule_Ajustes/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/ClienteBean.java new file mode 100644 index 0000000..c96b115 --- /dev/null +++ b/287_Schedule_Ajustes/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/ClienteBean.java @@ -0,0 +1,91 @@ +package br.pro.delfino.drogaria.bean; + +import java.io.Serializable; +import java.util.List; + +import javax.annotation.PostConstruct; +import javax.faces.bean.ManagedBean; +import javax.faces.bean.ViewScoped; + +import org.omnifaces.util.Messages; + +import br.pro.delfino.drogaria.dao.ClienteDAO; +import br.pro.delfino.drogaria.dao.PessoaDAO; +import br.pro.delfino.drogaria.domain.Cliente; +import br.pro.delfino.drogaria.domain.Pessoa; + +@SuppressWarnings("serial") +@ManagedBean +@ViewScoped +public class ClienteBean implements Serializable { + private Cliente cliente; + + private List clientes; + private List pessoas; + + public Cliente getCliente() { + return cliente; + } + + public void setCliente(Cliente cliente) { + this.cliente = cliente; + } + + public List getClientes() { + return clientes; + } + + public void setClientes(List clientes) { + this.clientes = clientes; + } + + public List getPessoas() { + return pessoas; + } + + public void setPessoas(List pessoas) { + this.pessoas = pessoas; + } + + @PostConstruct + public void listar() { + try { + ClienteDAO clienteDAO = new ClienteDAO(); + clientes = clienteDAO.listar("dataCadastro"); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar listar os clientes"); + erro.printStackTrace(); + } + } + + public void novo() { + try { + cliente = new Cliente(); + + PessoaDAO pessoaDAO = new PessoaDAO(); + pessoas = pessoaDAO.listar("nome"); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar criar um novo cliente"); + erro.printStackTrace(); + } + } + + public void salvar() { + try { + ClienteDAO clienteDAO = new ClienteDAO(); + clienteDAO.merge(cliente); + + cliente = new Cliente(); + + clientes = clienteDAO.listar("dataCadastro"); + + PessoaDAO pessoaDAO = new PessoaDAO(); + pessoas = pessoaDAO.listar("nome"); + + Messages.addGlobalInfo("Cliente salvo com sucesso"); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar salvar o cliente"); + erro.printStackTrace(); + } + } +} diff --git a/287_Schedule_Ajustes/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/EstadoBean.java b/287_Schedule_Ajustes/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/EstadoBean.java new file mode 100644 index 0000000..b4921fe --- /dev/null +++ b/287_Schedule_Ajustes/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/EstadoBean.java @@ -0,0 +1,88 @@ +package br.pro.delfino.drogaria.bean; + +import java.io.Serializable; +import java.util.List; + +import javax.annotation.PostConstruct; +import javax.faces.bean.ManagedBean; +import javax.faces.bean.ViewScoped; +import javax.faces.event.ActionEvent; + +import org.omnifaces.util.Messages; + +import br.pro.delfino.drogaria.dao.EstadoDAO; +import br.pro.delfino.drogaria.domain.Estado; + +@SuppressWarnings("serial") +@ManagedBean +@ViewScoped +public class EstadoBean implements Serializable { + private Estado estado; + private List estados; + + public Estado getEstado() { + return estado; + } + + public void setEstado(Estado estado) { + this.estado = estado; + } + + public List getEstados() { + return estados; + } + + public void setEstados(List estados) { + this.estados = estados; + } + + @PostConstruct + public void listar() { + try { + EstadoDAO estadoDAO = new EstadoDAO(); + estados = estadoDAO.listar(); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar listar os estados"); + erro.printStackTrace(); + } + } + + public void novo() { + estado = new Estado(); + } + + public void salvar() { + try { + EstadoDAO estadoDAO = new EstadoDAO(); + estadoDAO.merge(estado); + + estado = new Estado(); + estados = estadoDAO.listar(); + + Messages.addGlobalInfo("Estado salvo com sucesso"); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar salvar o estado"); + erro.printStackTrace(); + } + } + + public void excluir(ActionEvent evento) { + try { + estado = (Estado) evento.getComponent().getAttributes().get("estadoSelecionado"); + + EstadoDAO estadoDAO = new EstadoDAO(); + estadoDAO.excluir(estado); + + estados = estadoDAO.listar(); + + Messages.addGlobalInfo("Estado removido com sucesso"); + } catch (RuntimeException erro) { + Messages.addFlashGlobalError("Ocorreu um erro ao tentar remover o estado"); + erro.printStackTrace(); + } + } + + public void editar(ActionEvent evento) { + estado = (Estado) evento.getComponent().getAttributes().get("estadoSelecionado"); + } +} diff --git a/287_Schedule_Ajustes/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/FabricanteBean.java b/287_Schedule_Ajustes/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/FabricanteBean.java new file mode 100644 index 0000000..7fddf7d --- /dev/null +++ b/287_Schedule_Ajustes/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/FabricanteBean.java @@ -0,0 +1,116 @@ +package br.pro.delfino.drogaria.bean; + +import java.io.Serializable; +import java.util.Arrays; +import java.util.List; + +import javax.annotation.PostConstruct; +import javax.faces.bean.ManagedBean; +import javax.faces.bean.ViewScoped; +import javax.faces.event.ActionEvent; +import javax.ws.rs.client.Client; +import javax.ws.rs.client.ClientBuilder; +import javax.ws.rs.client.Entity; +import javax.ws.rs.client.WebTarget; + +import org.omnifaces.util.Messages; + +import com.google.gson.Gson; + +import br.pro.delfino.drogaria.domain.Fabricante; + +@SuppressWarnings("serial") +@ManagedBean +@ViewScoped +public class FabricanteBean implements Serializable { + private Fabricante fabricante; + private List fabricantes; + + public Fabricante getFabricante() { + return fabricante; + } + + public void setFabricante(Fabricante fabricante) { + this.fabricante = fabricante; + } + + public List getFabricantes() { + return fabricantes; + } + + public void setFabricantes(List fabricantes) { + this.fabricantes = fabricantes; + } + + @PostConstruct + public void listar() { + try { + Client cliente = ClientBuilder.newClient(); + WebTarget caminho = cliente.target("http://127.0.0.1:8080/Drogaria/rest/fabricante"); + String json = caminho.request().get(String.class); + + Gson gson = new Gson(); + Fabricante[] vetor = gson.fromJson(json, Fabricante[].class); + + fabricantes = Arrays.asList(vetor); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar listar os fabricantes"); + erro.printStackTrace(); + } + } + + public void novo() { + fabricante = new Fabricante(); + } + + public void salvar() { + try { + Client cliente = ClientBuilder.newClient(); + WebTarget caminho = cliente.target("http://127.0.0.1:8080/Drogaria/rest/fabricante"); + + Gson gson = new Gson(); + + String json = gson.toJson(fabricante); + caminho.request().post(Entity.json(json)); + + fabricante = new Fabricante(); + + json = caminho.request().get(String.class); + Fabricante[] vetor = gson.fromJson(json, Fabricante[].class); + fabricantes = Arrays.asList(vetor); + + Messages.addGlobalInfo("Fabricante salvo com sucesso"); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar salvar o fabricante"); + erro.printStackTrace(); + } + } + + public void excluir(ActionEvent evento) { + try { + fabricante = (Fabricante) evento.getComponent().getAttributes().get("fabricanteSelecionado"); + + Client cliente = ClientBuilder.newClient(); + + WebTarget caminho = cliente.target("http://127.0.0.1:8080/Drogaria/rest/fabricante"); + WebTarget caminhoExcluir = caminho.path("{codigo}").resolveTemplate("codigo", fabricante.getCodigo()); + + caminhoExcluir.request().delete(); + String json = caminho.request().get(String.class); + + Gson gson = new Gson(); + Fabricante[] vetor = gson.fromJson(json, Fabricante[].class); + + fabricantes = Arrays.asList(vetor); + + Messages.addGlobalInfo("Fabricante removido com sucesso"); + } catch (RuntimeException erro) { + Messages.addFlashGlobalError("Ocorreu um erro ao tentar remover o fabricante"); + erro.printStackTrace(); + } + } + + public void editar(ActionEvent evento) { + fabricante = (Fabricante) evento.getComponent().getAttributes().get("fabricanteSelecionado"); + } +} diff --git a/287_Schedule_Ajustes/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/HistoricoBean.java b/287_Schedule_Ajustes/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/HistoricoBean.java new file mode 100644 index 0000000..a042b04 --- /dev/null +++ b/287_Schedule_Ajustes/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/HistoricoBean.java @@ -0,0 +1,89 @@ +package br.pro.delfino.drogaria.bean; + +import java.io.Serializable; +import java.util.Date; + +import javax.annotation.PostConstruct; +import javax.faces.bean.ManagedBean; +import javax.faces.bean.ViewScoped; + +import org.omnifaces.util.Messages; + +import br.pro.delfino.drogaria.dao.HistoricoDAO; +import br.pro.delfino.drogaria.dao.ProdutoDAO; +import br.pro.delfino.drogaria.domain.Historico; +import br.pro.delfino.drogaria.domain.Produto; + +@SuppressWarnings("serial") +@ManagedBean +@ViewScoped +public class HistoricoBean implements Serializable { + private Produto produto; + private Boolean exibePainelDados; + + private Historico historico; + + public Produto getProduto() { + return produto; + } + + public void setProduto(Produto produto) { + this.produto = produto; + } + + public Boolean getExibePainelDados() { + return exibePainelDados; + } + + public void setExibePainelDados(Boolean exibePainelDados) { + this.exibePainelDados = exibePainelDados; + } + + public Historico getHistorico() { + return historico; + } + + public void setHistorico(Historico historico) { + this.historico = historico; + } + + @PostConstruct + public void novo() { + historico = new Historico(); + produto = new Produto(); + exibePainelDados = false; + } + + public void buscar() { + try { + ProdutoDAO produtoDAO = new ProdutoDAO(); + Produto resultado = produtoDAO.buscar(produto.getCodigo()); + + if (resultado == null) { + exibePainelDados = false; + Messages.addGlobalWarn("Não existe produto cadastrado para o código informado"); + } else { + exibePainelDados = true; + produto = resultado; + } + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar buscar o produto"); + erro.printStackTrace(); + } + } + + public void salvar() { + try { + historico.setHorario(new Date()); + historico.setProduto(produto); + + HistoricoDAO historicoDAO = new HistoricoDAO(); + historicoDAO.salvar(historico); + + Messages.addGlobalInfo("Histórico salvo com sucesso"); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar salvar o histórico"); + erro.printStackTrace(); + } + } +} diff --git a/287_Schedule_Ajustes/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/ImagemBean.java b/287_Schedule_Ajustes/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/ImagemBean.java new file mode 100644 index 0000000..eb963a8 --- /dev/null +++ b/287_Schedule_Ajustes/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/ImagemBean.java @@ -0,0 +1,48 @@ +package br.pro.delfino.drogaria.bean; + +import java.io.IOException; +import java.io.InputStream; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; + +import javax.faces.bean.ManagedBean; +import javax.faces.bean.ManagedProperty; +import javax.faces.bean.RequestScoped; + +import org.primefaces.model.DefaultStreamedContent; +import org.primefaces.model.StreamedContent; + +@ManagedBean +@RequestScoped +public class ImagemBean { + @ManagedProperty("#{param.caminho}") + private String caminho; + + private StreamedContent foto; + + public String getCaminho() { + return caminho; + } + + public void setCaminho(String caminho) { + this.caminho = caminho; + } + + public StreamedContent getFoto() throws IOException { + if(caminho == null || caminho.isEmpty()){ + Path path = Paths.get("C:/Programação Web com Java/Uploads/branco.png"); + InputStream stream = Files.newInputStream(path); + foto = new DefaultStreamedContent(stream); + }else{ + Path path = Paths.get(caminho); + InputStream stream = Files.newInputStream(path); + foto = new DefaultStreamedContent(stream); + } + return foto; + } + + public void setFoto(StreamedContent foto) { + this.foto = foto; + } +} diff --git a/287_Schedule_Ajustes/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/PessoaBean.java b/287_Schedule_Ajustes/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/PessoaBean.java new file mode 100644 index 0000000..931edf7 --- /dev/null +++ b/287_Schedule_Ajustes/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/PessoaBean.java @@ -0,0 +1,156 @@ +package br.pro.delfino.drogaria.bean; + +import java.io.Serializable; +import java.util.ArrayList; +import java.util.List; + +import javax.annotation.PostConstruct; +import javax.faces.bean.ManagedBean; +import javax.faces.bean.ViewScoped; +import javax.faces.event.ActionEvent; + +import org.omnifaces.util.Messages; + +import br.pro.delfino.drogaria.dao.CidadeDAO; +import br.pro.delfino.drogaria.dao.EstadoDAO; +import br.pro.delfino.drogaria.dao.PessoaDAO; +import br.pro.delfino.drogaria.domain.Cidade; +import br.pro.delfino.drogaria.domain.Estado; +import br.pro.delfino.drogaria.domain.Pessoa; + +@SuppressWarnings("serial") +@ManagedBean +@ViewScoped +public class PessoaBean implements Serializable { + private Pessoa pessoa; + private List pessoas; + + private Estado estado; + private List estados; + + private List cidades; + + public Pessoa getPessoa() { + return pessoa; + } + + public void setPessoa(Pessoa pessoa) { + this.pessoa = pessoa; + } + + public List getPessoas() { + return pessoas; + } + + public void setPessoas(List pessoas) { + this.pessoas = pessoas; + } + + public Estado getEstado() { + return estado; + } + + public void setEstado(Estado estado) { + this.estado = estado; + } + + public List getEstados() { + return estados; + } + + public void setEstados(List estados) { + this.estados = estados; + } + + public List getCidades() { + return cidades; + } + + public void setCidades(List cidades) { + this.cidades = cidades; + } + + @PostConstruct + public void listar() { + try { + PessoaDAO pessoaDAO = new PessoaDAO(); + pessoas = pessoaDAO.listar("nome"); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar listar as pessoas"); + erro.printStackTrace(); + } + } + + public void novo() { + try { + pessoa = new Pessoa(); + + estado = new Estado(); + + EstadoDAO estadoDAO = new EstadoDAO(); + estados = estadoDAO.listar("nome"); + + cidades = new ArrayList<>(); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar gerar uma nova pessoa"); + erro.printStackTrace(); + } + } + + public void editar(ActionEvent evento) { + try{ + pessoa = (Pessoa) evento.getComponent().getAttributes().get("pessoaSelecionada"); + + estado = pessoa.getCidade().getEstado(); + + EstadoDAO estadoDAO = new EstadoDAO(); + estados = estadoDAO.listar("nome"); + + CidadeDAO cidadeDAO = new CidadeDAO(); + cidades = cidadeDAO.buscarPorEstado(estado.getCodigo()); + }catch(RuntimeException erro){ + Messages.addGlobalError("Ocorreu um erro ao tentar selecionar uma pessoa"); + } + } + + public void salvar() { + try { + PessoaDAO pessoaDAO = new PessoaDAO(); + pessoaDAO.merge(pessoa); + + pessoas = pessoaDAO.listar("nome"); + + pessoa = new Pessoa(); + + estado = new Estado(); + + EstadoDAO estadoDAO = new EstadoDAO(); + estados = estadoDAO.listar("nome"); + + cidades = new ArrayList<>(); + + Messages.addGlobalInfo("Pessoa salva com sucesso"); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar salvar a pessoa"); + erro.printStackTrace(); + } + } + + public void excluir(ActionEvent evento) { + + } + + public void popular() { + try { + if (estado != null) { + CidadeDAO cidadeDAO = new CidadeDAO(); + cidades = cidadeDAO.buscarPorEstado(estado.getCodigo()); + } else { + cidades = new ArrayList<>(); + } + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar filtrar as cidades"); + erro.printStackTrace(); + } + } +} diff --git a/287_Schedule_Ajustes/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/ProdutoBean.java b/287_Schedule_Ajustes/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/ProdutoBean.java new file mode 100644 index 0000000..e48e0d1 --- /dev/null +++ b/287_Schedule_Ajustes/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/ProdutoBean.java @@ -0,0 +1,196 @@ +package br.pro.delfino.drogaria.bean; + +import java.io.IOException; +import java.io.Serializable; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; +import java.nio.file.StandardCopyOption; +import java.sql.Connection; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import javax.annotation.PostConstruct; +import javax.faces.bean.ManagedBean; +import javax.faces.bean.ViewScoped; +import javax.faces.event.ActionEvent; + +import org.omnifaces.util.Faces; +import org.omnifaces.util.Messages; +import org.primefaces.component.datatable.DataTable; +import org.primefaces.event.FileUploadEvent; +import org.primefaces.model.UploadedFile; + +import br.pro.delfino.drogaria.dao.FabricanteDAO; +import br.pro.delfino.drogaria.dao.ProdutoDAO; +import br.pro.delfino.drogaria.domain.Fabricante; +import br.pro.delfino.drogaria.domain.Produto; +import br.pro.delfino.drogaria.util.HibernateUtil; +import net.sf.jasperreports.engine.JRException; +import net.sf.jasperreports.engine.JasperFillManager; +import net.sf.jasperreports.engine.JasperPrint; +import net.sf.jasperreports.engine.JasperPrintManager; + +@SuppressWarnings("serial") +@ManagedBean +@ViewScoped +public class ProdutoBean implements Serializable { + private Produto produto; + private List produtos; + private List fabricantes; + + public Produto getProduto() { + return produto; + } + + public void setProduto(Produto produto) { + this.produto = produto; + } + + public List getProdutos() { + return produtos; + } + + public void setProdutos(List produtos) { + this.produtos = produtos; + } + + public List getFabricantes() { + return fabricantes; + } + + public void setFabricantes(List fabricantes) { + this.fabricantes = fabricantes; + } + + @PostConstruct + public void listar() { + try { + ProdutoDAO produtoDAO = new ProdutoDAO(); + produtos = produtoDAO.listar("descricao"); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar listar os produtos"); + erro.printStackTrace(); + } + } + + public void novo() { + try { + produto = new Produto(); + + FabricanteDAO fabricanteDAO = new FabricanteDAO(); + fabricantes = fabricanteDAO.listar("descricao"); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar gerar um novo produto"); + erro.printStackTrace(); + } + } + + public void editar(ActionEvent evento) { + try { + produto = (Produto) evento.getComponent().getAttributes().get("produtoSelecionado"); + produto.setCaminho("C:/Programação Web com Java/Uploads/" + produto.getCodigo() + ".png"); + + FabricanteDAO fabricanteDAO = new FabricanteDAO(); + fabricantes = fabricanteDAO.listar(); + } catch (RuntimeException erro) { + Messages.addFlashGlobalError("Ocorreu um erro ao tentar selecionar um produto"); + erro.printStackTrace(); + } + } + + public void salvar() { + try { + if (produto.getCaminho() == null) { + Messages.addGlobalError("O campo foto é obrigatório"); + return; + } + + ProdutoDAO produtoDAO = new ProdutoDAO(); + Produto produtoRetorno = produtoDAO.merge(produto); + + Path origem = Paths.get(produto.getCaminho()); + Path destino = Paths.get("C:/Programação Web com Java/Uploads/" + produtoRetorno.getCodigo() + ".png"); + Files.copy(origem, destino, StandardCopyOption.REPLACE_EXISTING); + + produto = new Produto(); + + FabricanteDAO fabricanteDAO = new FabricanteDAO(); + fabricantes = fabricanteDAO.listar(); + + produtos = produtoDAO.listar(); + + Messages.addGlobalInfo("Produto salvo com sucesso"); + } catch (RuntimeException | IOException erro) { + Messages.addFlashGlobalError("Ocorreu um erro ao tentar salvar o produto"); + erro.printStackTrace(); + } + } + + public void excluir(ActionEvent evento) { + try { + produto = (Produto) evento.getComponent().getAttributes().get("produtoSelecionado"); + + ProdutoDAO produtoDAO = new ProdutoDAO(); + produtoDAO.excluir(produto); + + Path arquivo = Paths.get("C:/Programação Web com Java/Uploads/" + produto.getCodigo() + ".png"); + Files.deleteIfExists(arquivo); + + produtos = produtoDAO.listar(); + + Messages.addGlobalInfo("Produto removido com sucesso"); + } catch (RuntimeException | IOException erro) { + Messages.addFlashGlobalError("Ocorreu um erro ao tentar remover o produto"); + erro.printStackTrace(); + } + } + + public void upload(FileUploadEvent evento) { + try { + UploadedFile arquivoUpload = evento.getFile(); + Path arquivoTemp = Files.createTempFile(null, null); + Files.copy(arquivoUpload.getInputstream(), arquivoTemp, StandardCopyOption.REPLACE_EXISTING); + produto.setCaminho(arquivoTemp.toString()); + + Messages.addGlobalInfo("Upload realizado com sucesso"); + } catch (IOException erro) { + Messages.addGlobalInfo("Ocorreu um erro ao tentar realizar o upload de arquivo"); + erro.printStackTrace(); + } + } + + public void imprimir() { + try { + DataTable tabela = (DataTable) Faces.getViewRoot().findComponent("formListagem:tabela"); + Map filtros = tabela.getFilters(); + + String proDescricao = (String) filtros.get("descricao"); + String fabDescricao = (String) filtros.get("fabricante.descricao"); + + String caminho = Faces.getRealPath("/reports/produtos.jasper"); + + Map parametros = new HashMap<>(); + if (proDescricao == null) { + parametros.put("PRODUTO_DESCRICAO", "%%"); + } else { + parametros.put("PRODUTO_DESCRICAO", "%" + proDescricao + "%"); + } + if (fabDescricao == null) { + parametros.put("FABRICANTE_DESCRICAO", "%%"); + } else { + parametros.put("FABRICANTE_DESCRICAO", "%" + fabDescricao + "%"); + } + + Connection conexao = HibernateUtil.getConexao(); + + JasperPrint relatorio = JasperFillManager.fillReport(caminho, parametros, conexao); + + JasperPrintManager.printReport(relatorio, true); + } catch (JRException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar gerar o relatório"); + erro.printStackTrace(); + } + } +} diff --git a/287_Schedule_Ajustes/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/ProdutoBean2.java b/287_Schedule_Ajustes/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/ProdutoBean2.java new file mode 100644 index 0000000..f36cd86 --- /dev/null +++ b/287_Schedule_Ajustes/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/ProdutoBean2.java @@ -0,0 +1,86 @@ +package br.pro.delfino.drogaria.bean; + +import java.io.Serializable; +import java.util.List; + +import javax.annotation.PostConstruct; +import javax.faces.bean.ManagedBean; +import javax.faces.bean.ViewScoped; + +import org.omnifaces.util.Messages; + +import br.pro.delfino.drogaria.dao.FabricanteDAO; +import br.pro.delfino.drogaria.dao.ProdutoDAO; +import br.pro.delfino.drogaria.domain.Fabricante; +import br.pro.delfino.drogaria.domain.Produto; + +@SuppressWarnings("serial") +@ManagedBean +@ViewScoped +public class ProdutoBean2 implements Serializable { + private Produto produto; + private Long codigoProduto; + + private List fabricantes; + private List produtos; + + private FabricanteDAO fabricanteDAO; + private ProdutoDAO produtoDAO; + + public Produto getProduto() { + return produto; + } + + public void setProduto(Produto produto) { + this.produto = produto; + } + + public Long getCodigoProduto() { + return codigoProduto; + } + + public void setCodigoProduto(Long codigoProduto) { + this.codigoProduto = codigoProduto; + } + + public void setFabricantes(List fabricantes) { + this.fabricantes = fabricantes; + } + + public List getFabricantes() { + return fabricantes; + } + public List getProdutos() { + return produtos; + } + + public void setProdutos(List produtos) { + this.produtos = produtos; + } + + @PostConstruct + public void iniciar(){ + fabricanteDAO = new FabricanteDAO(); + produtoDAO = new ProdutoDAO(); + } + + public void listar() { + try { + produtos = produtoDAO.listar("descricao"); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar listar os produtos"); + erro.printStackTrace(); + } + } + + public void carregarEdicao(){ + try { + produto = produtoDAO.buscar(codigoProduto); + + fabricantes = fabricanteDAO.listar("descricao"); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar carregar os dados para edição"); + erro.printStackTrace(); + } + } +} diff --git a/287_Schedule_Ajustes/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/UsuarioBean.java b/287_Schedule_Ajustes/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/UsuarioBean.java new file mode 100644 index 0000000..f526df8 --- /dev/null +++ b/287_Schedule_Ajustes/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/UsuarioBean.java @@ -0,0 +1,90 @@ +package br.pro.delfino.drogaria.bean; + +import java.io.Serializable; +import java.util.List; + +import javax.annotation.PostConstruct; +import javax.faces.bean.ManagedBean; +import javax.faces.bean.ViewScoped; + +import org.omnifaces.util.Messages; + +import br.pro.delfino.drogaria.dao.PessoaDAO; +import br.pro.delfino.drogaria.dao.UsuarioDAO; +import br.pro.delfino.drogaria.domain.Pessoa; +import br.pro.delfino.drogaria.domain.Usuario; + +@SuppressWarnings("serial") +@ManagedBean +@ViewScoped +public class UsuarioBean implements Serializable { + private Usuario usuario; + + private List pessoas; + private List usuarios; + + public Usuario getUsuario() { + return usuario; + } + + public void setUsuario(Usuario usuario) { + this.usuario = usuario; + } + + public List getPessoas() { + return pessoas; + } + + public void setPessoas(List pessoas) { + this.pessoas = pessoas; + } + + public List getUsuarios() { + return usuarios; + } + + public void setUsuarios(List usuarios) { + this.usuarios = usuarios; + } + + @PostConstruct + public void listar(){ + try{ + UsuarioDAO usuarioDAO = new UsuarioDAO(); + usuarios = usuarioDAO.listar("tipo"); + }catch(RuntimeException erro){ + Messages.addGlobalError("Ocorreu um erro ao tentar listar os usuários"); + erro.printStackTrace(); + } + } + + public void novo() { + try { + usuario = new Usuario(); + + PessoaDAO pessoaDAO = new PessoaDAO(); + pessoas = pessoaDAO.listar("nome"); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar criar um novo usuário"); + erro.printStackTrace(); + } + } + + public void salvar() { + try { + UsuarioDAO usuarioDAO = new UsuarioDAO(); + usuarioDAO.merge(usuario); + + usuario = new Usuario(); + usuarios = usuarioDAO.listar("tipo"); + + PessoaDAO pessoaDAO = new PessoaDAO(); + pessoas = pessoaDAO.listar("nome"); + + Messages.addGlobalInfo("Usuário salvo com sucesso"); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar salvar o usuário"); + erro.printStackTrace(); + } + } +} diff --git a/287_Schedule_Ajustes/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/VendaBean.java b/287_Schedule_Ajustes/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/VendaBean.java new file mode 100644 index 0000000..ada8ff2 --- /dev/null +++ b/287_Schedule_Ajustes/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/VendaBean.java @@ -0,0 +1,186 @@ +package br.pro.delfino.drogaria.bean; + +import java.io.Serializable; +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +import javax.annotation.PostConstruct; +import javax.faces.bean.ManagedBean; +import javax.faces.bean.ViewScoped; +import javax.faces.event.ActionEvent; + +import org.omnifaces.util.Messages; + +import br.pro.delfino.drogaria.dao.ClienteDAO; +import br.pro.delfino.drogaria.dao.FuncionarioDAO; +import br.pro.delfino.drogaria.dao.ProdutoDAO; +import br.pro.delfino.drogaria.dao.VendaDAO; +import br.pro.delfino.drogaria.domain.Cliente; +import br.pro.delfino.drogaria.domain.Funcionario; +import br.pro.delfino.drogaria.domain.ItemVenda; +import br.pro.delfino.drogaria.domain.Produto; +import br.pro.delfino.drogaria.domain.Venda; + +@SuppressWarnings("serial") +@ManagedBean +@ViewScoped +public class VendaBean implements Serializable { + private Venda venda; + + private List produtos; + private List itensVenda; + private List clientes; + private List funcionarios; + + public Venda getVenda() { + return venda; + } + + public void setVenda(Venda venda) { + this.venda = venda; + } + + public List getProdutos() { + return produtos; + } + + public void setProdutos(List produtos) { + this.produtos = produtos; + } + + public List getItensVenda() { + return itensVenda; + } + + public void setItensVenda(List itensVenda) { + this.itensVenda = itensVenda; + } + + public List getClientes() { + return clientes; + } + + public void setClientes(List clientes) { + this.clientes = clientes; + } + + public List getFuncionarios() { + return funcionarios; + } + + public void setFuncionarios(List funcionarios) { + this.funcionarios = funcionarios; + } + + @PostConstruct + public void novo() { + try { + venda = new Venda(); + venda.setPrecoTotal(new BigDecimal("0.00")); + + ProdutoDAO produtoDAO = new ProdutoDAO(); + produtos = produtoDAO.listar("descricao"); + + itensVenda = new ArrayList<>(); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar carregar a tela de vendas"); + erro.printStackTrace(); + } + } + + public void adicionar(ActionEvent evento) { + Produto produto = (Produto) evento.getComponent().getAttributes().get("produtoSelecionado"); + + int achou = -1; + for (int posicao = 0; posicao < itensVenda.size(); posicao++) { + if (itensVenda.get(posicao).getProduto().equals(produto)) { + achou = posicao; + } + } + + if (achou < 0) { + ItemVenda itemVenda = new ItemVenda(); + itemVenda.setPrecoParcial(produto.getPreco()); + itemVenda.setProduto(produto); + itemVenda.setQuantidade(new Short("1")); + + itensVenda.add(itemVenda); + } else { + ItemVenda itemVenda = itensVenda.get(achou); + itemVenda.setQuantidade(new Short(itemVenda.getQuantidade() + 1 + "")); + itemVenda.setPrecoParcial(produto.getPreco().multiply(new BigDecimal(itemVenda.getQuantidade()))); + } + + calcular(); + } + + public void remover(ActionEvent evento) { + ItemVenda itemVenda = (ItemVenda) evento.getComponent().getAttributes().get("itemSelecionado"); + + int achou = -1; + for (int posicao = 0; posicao < itensVenda.size(); posicao++) { + if (itensVenda.get(posicao).getProduto().equals(itemVenda.getProduto())) { + achou = posicao; + } + } + + if (achou > -1) { + itensVenda.remove(achou); + } + + calcular(); + } + + public void calcular() { + venda.setPrecoTotal(new BigDecimal("0.00")); + + for (int posicao = 0; posicao < itensVenda.size(); posicao++) { + ItemVenda itemVenda = itensVenda.get(posicao); + venda.setPrecoTotal(venda.getPrecoTotal().add(itemVenda.getPrecoParcial())); + } + } + + public void finalizar() { + try { + venda.setHorario(new Date()); + venda.setCliente(null); + venda.setFuncionario(null); + + FuncionarioDAO funcionarioDAO = new FuncionarioDAO(); + funcionarios = funcionarioDAO.listarOrdenado(); + + ClienteDAO clienteDAO = new ClienteDAO(); + clientes = clienteDAO.listarOrdenado(); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar finalizar a venda"); + erro.printStackTrace(); + } + } + + public void salvar() { + try { + if(venda.getPrecoTotal().signum() == 0){ + Messages.addGlobalError("Informe pelo menos um item para a venda"); + return; + } + + VendaDAO vendaDAO = new VendaDAO(); + vendaDAO.salvar(venda, itensVenda); + + venda = new Venda(); + venda.setPrecoTotal(new BigDecimal("0.00")); + + ProdutoDAO produtoDAO = new ProdutoDAO(); + produtos = produtoDAO.listar("descricao"); + + itensVenda = new ArrayList<>(); + + Messages.addGlobalInfo("Venda realizada com sucesso"); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar salvar a venda"); + erro.printStackTrace(); + } + } +} diff --git a/287_Schedule_Ajustes/Drogaria/src/main/java/br/pro/delfino/drogaria/converter/UpperCaseConverter.java b/287_Schedule_Ajustes/Drogaria/src/main/java/br/pro/delfino/drogaria/converter/UpperCaseConverter.java new file mode 100644 index 0000000..8a5d259 --- /dev/null +++ b/287_Schedule_Ajustes/Drogaria/src/main/java/br/pro/delfino/drogaria/converter/UpperCaseConverter.java @@ -0,0 +1,28 @@ +package br.pro.delfino.drogaria.converter; + +import javax.faces.component.UIComponent; +import javax.faces.context.FacesContext; +import javax.faces.convert.Converter; +import javax.faces.convert.FacesConverter; + +@FacesConverter("upperCaseConverter") +public class UpperCaseConverter implements Converter { + + @Override + public Object getAsObject(FacesContext context, UIComponent component, String value) { + if (value == null) { + return null; + } else { + return value.toUpperCase(); + } + } + + @Override + public String getAsString(FacesContext context, UIComponent component, Object value) { + if (value == null) { + return ""; + } else { + return value.toString(); + } + } +} diff --git a/287_Schedule_Ajustes/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/CaixaDAO.java b/287_Schedule_Ajustes/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/CaixaDAO.java new file mode 100644 index 0000000..fd8acd7 --- /dev/null +++ b/287_Schedule_Ajustes/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/CaixaDAO.java @@ -0,0 +1,26 @@ +package br.pro.delfino.drogaria.dao; + +import java.util.Date; + +import org.hibernate.Criteria; +import org.hibernate.Session; +import org.hibernate.criterion.Restrictions; + +import br.pro.delfino.drogaria.domain.Caixa; +import br.pro.delfino.drogaria.util.HibernateUtil; + +public class CaixaDAO extends GenericDAO { + public Caixa buscar(Date dataAbertura) { + Session sessao = HibernateUtil.getFabricaDeSessoes().openSession(); + try { + Criteria consulta = sessao.createCriteria(Caixa.class); + consulta.add(Restrictions.eq("dataAbertura", dataAbertura)); + Caixa resultado = (Caixa) consulta.uniqueResult(); + return resultado; + } catch (RuntimeException erro) { + throw erro; + } finally { + sessao.close(); + } + } +} diff --git a/287_Schedule_Ajustes/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/CidadeDAO.java b/287_Schedule_Ajustes/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/CidadeDAO.java new file mode 100644 index 0000000..e685e93 --- /dev/null +++ b/287_Schedule_Ajustes/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/CidadeDAO.java @@ -0,0 +1,29 @@ +package br.pro.delfino.drogaria.dao; + +import java.util.List; + +import org.hibernate.Criteria; +import org.hibernate.Session; +import org.hibernate.criterion.Order; +import org.hibernate.criterion.Restrictions; + +import br.pro.delfino.drogaria.domain.Cidade; +import br.pro.delfino.drogaria.util.HibernateUtil; + +public class CidadeDAO extends GenericDAO { + @SuppressWarnings("unchecked") + public List buscarPorEstado(Long estadoCodigo) { + Session sessao = HibernateUtil.getFabricaDeSessoes().openSession(); + try { + Criteria consulta = sessao.createCriteria(Cidade.class); + consulta.add(Restrictions.eq("estado.codigo", estadoCodigo)); + consulta.addOrder(Order.asc("nome")); + List resultado = consulta.list(); + return resultado; + } catch (RuntimeException erro) { + throw erro; + } finally { + sessao.close(); + } + } +} \ No newline at end of file diff --git a/287_Schedule_Ajustes/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/ClienteDAO.java b/287_Schedule_Ajustes/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/ClienteDAO.java new file mode 100644 index 0000000..e9796b5 --- /dev/null +++ b/287_Schedule_Ajustes/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/ClienteDAO.java @@ -0,0 +1,28 @@ +package br.pro.delfino.drogaria.dao; + +import java.util.List; + +import org.hibernate.Criteria; +import org.hibernate.Session; +import org.hibernate.criterion.Order; + +import br.pro.delfino.drogaria.domain.Cliente; +import br.pro.delfino.drogaria.util.HibernateUtil; + +public class ClienteDAO extends GenericDAO { + @SuppressWarnings("unchecked") + public List listarOrdenado() { + Session sessao = HibernateUtil.getFabricaDeSessoes().openSession(); + try { + Criteria consulta = sessao.createCriteria(Cliente.class); + consulta.createAlias("pessoa", "p"); + consulta.addOrder(Order.asc("p.nome")); + List resultado = consulta.list(); + return resultado; + } catch (RuntimeException erro) { + throw erro; + } finally { + sessao.close(); + } + } +} diff --git a/287_Schedule_Ajustes/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/EstadoDAO.java b/287_Schedule_Ajustes/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/EstadoDAO.java new file mode 100644 index 0000000..32b4a79 --- /dev/null +++ b/287_Schedule_Ajustes/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/EstadoDAO.java @@ -0,0 +1,7 @@ +package br.pro.delfino.drogaria.dao; + +import br.pro.delfino.drogaria.domain.Estado; + +public class EstadoDAO extends GenericDAO { + +} diff --git a/287_Schedule_Ajustes/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/FabricanteDAO.java b/287_Schedule_Ajustes/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/FabricanteDAO.java new file mode 100644 index 0000000..8b7f946 --- /dev/null +++ b/287_Schedule_Ajustes/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/FabricanteDAO.java @@ -0,0 +1,7 @@ +package br.pro.delfino.drogaria.dao; + +import br.pro.delfino.drogaria.domain.Fabricante; + +public class FabricanteDAO extends GenericDAO { + +} diff --git a/287_Schedule_Ajustes/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/FuncionarioDAO.java b/287_Schedule_Ajustes/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/FuncionarioDAO.java new file mode 100644 index 0000000..2b3114d --- /dev/null +++ b/287_Schedule_Ajustes/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/FuncionarioDAO.java @@ -0,0 +1,28 @@ +package br.pro.delfino.drogaria.dao; + +import java.util.List; + +import org.hibernate.Criteria; +import org.hibernate.Session; +import org.hibernate.criterion.Order; + +import br.pro.delfino.drogaria.domain.Funcionario; +import br.pro.delfino.drogaria.util.HibernateUtil; + +public class FuncionarioDAO extends GenericDAO{ + @SuppressWarnings("unchecked") + public List listarOrdenado() { + Session sessao = HibernateUtil.getFabricaDeSessoes().openSession(); + try { + Criteria consulta = sessao.createCriteria(Funcionario.class); + consulta.createAlias("pessoa", "p"); + consulta.addOrder(Order.asc("p.nome")); + List resultado = consulta.list(); + return resultado; + } catch (RuntimeException erro) { + throw erro; + } finally { + sessao.close(); + } + } +} diff --git a/287_Schedule_Ajustes/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/GenericDAO.java b/287_Schedule_Ajustes/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/GenericDAO.java new file mode 100644 index 0000000..b505cd3 --- /dev/null +++ b/287_Schedule_Ajustes/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/GenericDAO.java @@ -0,0 +1,140 @@ +package br.pro.delfino.drogaria.dao; + +import java.lang.reflect.ParameterizedType; +import java.util.List; + +import org.hibernate.Criteria; +import org.hibernate.Session; +import org.hibernate.Transaction; +import org.hibernate.criterion.Order; +import org.hibernate.criterion.Restrictions; + +import br.pro.delfino.drogaria.util.HibernateUtil; + +public class GenericDAO { + private Class classe; + + @SuppressWarnings("unchecked") + public GenericDAO() { + this.classe = (Class) ((ParameterizedType) getClass().getGenericSuperclass()) + .getActualTypeArguments()[0]; + } + + public void salvar(Entidade entidade) { + Session sessao = HibernateUtil.getFabricaDeSessoes().openSession(); + Transaction transacao = null; + + try { + transacao = sessao.beginTransaction(); + sessao.save(entidade); + transacao.commit(); + } catch (RuntimeException erro) { + if (transacao != null) { + transacao.rollback(); + } + throw erro; + } finally { + sessao.close(); + } + } + + @SuppressWarnings("unchecked") + public List listar() { + Session sessao = HibernateUtil.getFabricaDeSessoes().openSession(); + try { + Criteria consulta = sessao.createCriteria(classe); + List resultado = consulta.list(); + return resultado; + } catch (RuntimeException erro) { + throw erro; + } finally { + sessao.close(); + } + } + + @SuppressWarnings("unchecked") + public List listar(String campoOrdenacao) { + Session sessao = HibernateUtil.getFabricaDeSessoes().openSession(); + try { + Criteria consulta = sessao.createCriteria(classe); + consulta.addOrder(Order.asc(campoOrdenacao)); + List resultado = consulta.list(); + return resultado; + } catch (RuntimeException erro) { + throw erro; + } finally { + sessao.close(); + } + } + + @SuppressWarnings("unchecked") + public Entidade buscar(Long codigo) { + Session sessao = HibernateUtil.getFabricaDeSessoes().openSession(); + try { + Criteria consulta = sessao.createCriteria(classe); + consulta.add(Restrictions.idEq(codigo)); + Entidade resultado = (Entidade) consulta.uniqueResult(); + return resultado; + } catch (RuntimeException erro) { + throw erro; + } finally { + sessao.close(); + } + } + + public void excluir(Entidade entidade) { + Session sessao = HibernateUtil.getFabricaDeSessoes().openSession(); + Transaction transacao = null; + + try { + transacao = sessao.beginTransaction(); + sessao.delete(entidade); + transacao.commit(); + } catch (RuntimeException erro) { + if (transacao != null) { + transacao.rollback(); + } + throw erro; + } finally { + sessao.close(); + } + } + + public void editar(Entidade entidade) { + Session sessao = HibernateUtil.getFabricaDeSessoes().openSession(); + Transaction transacao = null; + + try { + transacao = sessao.beginTransaction(); + sessao.update(entidade); + transacao.commit(); + } catch (RuntimeException erro) { + if (transacao != null) { + transacao.rollback(); + } + throw erro; + } finally { + sessao.close(); + } + } + + @SuppressWarnings("unchecked") + public Entidade merge(Entidade entidade) { + Session sessao = HibernateUtil.getFabricaDeSessoes().openSession(); + Transaction transacao = null; + + try { + transacao = sessao.beginTransaction(); + Entidade retorno = (Entidade) sessao.merge(entidade); + transacao.commit(); + return retorno; + } catch (RuntimeException erro) { + if (transacao != null) { + transacao.rollback(); + } + throw erro; + } finally { + sessao.close(); + } + } +} diff --git a/287_Schedule_Ajustes/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/HistoricoDAO.java b/287_Schedule_Ajustes/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/HistoricoDAO.java new file mode 100644 index 0000000..7b30017 --- /dev/null +++ b/287_Schedule_Ajustes/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/HistoricoDAO.java @@ -0,0 +1,7 @@ +package br.pro.delfino.drogaria.dao; + +import br.pro.delfino.drogaria.domain.Historico; + +public class HistoricoDAO extends GenericDAO { + +} diff --git a/287_Schedule_Ajustes/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/MovimentacaoDAO.java b/287_Schedule_Ajustes/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/MovimentacaoDAO.java new file mode 100644 index 0000000..b6560e2 --- /dev/null +++ b/287_Schedule_Ajustes/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/MovimentacaoDAO.java @@ -0,0 +1,7 @@ +package br.pro.delfino.drogaria.dao; + +import br.pro.delfino.drogaria.domain.Movimentacao; + +public class MovimentacaoDAO extends GenericDAO { + +} diff --git a/287_Schedule_Ajustes/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/PessoaDAO.java b/287_Schedule_Ajustes/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/PessoaDAO.java new file mode 100644 index 0000000..bbd116b --- /dev/null +++ b/287_Schedule_Ajustes/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/PessoaDAO.java @@ -0,0 +1,7 @@ +package br.pro.delfino.drogaria.dao; + +import br.pro.delfino.drogaria.domain.Pessoa; + +public class PessoaDAO extends GenericDAO { + +} diff --git a/287_Schedule_Ajustes/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/ProdutoDAO.java b/287_Schedule_Ajustes/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/ProdutoDAO.java new file mode 100644 index 0000000..4c1e751 --- /dev/null +++ b/287_Schedule_Ajustes/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/ProdutoDAO.java @@ -0,0 +1,7 @@ +package br.pro.delfino.drogaria.dao; + +import br.pro.delfino.drogaria.domain.Produto; + +public class ProdutoDAO extends GenericDAO { + +} diff --git a/287_Schedule_Ajustes/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/UsuarioDAO.java b/287_Schedule_Ajustes/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/UsuarioDAO.java new file mode 100644 index 0000000..b4bf524 --- /dev/null +++ b/287_Schedule_Ajustes/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/UsuarioDAO.java @@ -0,0 +1,33 @@ +package br.pro.delfino.drogaria.dao; + +import org.apache.shiro.crypto.hash.SimpleHash; +import org.hibernate.Criteria; +import org.hibernate.Session; +import org.hibernate.criterion.Restrictions; + +import br.pro.delfino.drogaria.domain.Usuario; +import br.pro.delfino.drogaria.util.HibernateUtil; + +public class UsuarioDAO extends GenericDAO { + public Usuario autenticar(String cpf, String senha) { + Session sessao = HibernateUtil.getFabricaDeSessoes().openSession(); + + try{ + Criteria consulta = sessao.createCriteria(Usuario.class); + consulta.createAlias("pessoa", "p"); + + consulta.add(Restrictions.eq("p.cpf", cpf)); + + SimpleHash hash = new SimpleHash("md5", senha); + consulta.add(Restrictions.eq("senha", hash.toHex())); + + Usuario resultado = (Usuario) consulta.uniqueResult(); + + return resultado; + } catch (RuntimeException erro) { + throw erro; + } finally { + sessao.close(); + } + } +} diff --git a/287_Schedule_Ajustes/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/VendaDAO.java b/287_Schedule_Ajustes/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/VendaDAO.java new file mode 100644 index 0000000..3428939 --- /dev/null +++ b/287_Schedule_Ajustes/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/VendaDAO.java @@ -0,0 +1,49 @@ +package br.pro.delfino.drogaria.dao; + +import java.util.List; + +import org.hibernate.Session; +import org.hibernate.Transaction; + +import br.pro.delfino.drogaria.domain.ItemVenda; +import br.pro.delfino.drogaria.domain.Produto; +import br.pro.delfino.drogaria.domain.Venda; +import br.pro.delfino.drogaria.util.HibernateUtil; + +public class VendaDAO extends GenericDAO { + public void salvar(Venda venda, List itensVenda) { + Session sessao = HibernateUtil.getFabricaDeSessoes().openSession(); + Transaction transacao = null; + + try { + transacao = sessao.beginTransaction(); + + sessao.save(venda); + + for (int posicao = 0; posicao < itensVenda.size(); posicao++) { + ItemVenda itemVenda = itensVenda.get(posicao); + itemVenda.setVenda(venda); + + sessao.save(itemVenda); + + Produto produto = itemVenda.getProduto(); + int quantidade = produto.getQuantidade() - itemVenda.getQuantidade(); + if (quantidade >= 0) { + produto.setQuantidade(new Short(quantidade + "")); + sessao.update(produto); + } else { + throw new RuntimeException("Quantidade insuficiente em estoque"); + } + } + + transacao.commit(); + } catch (RuntimeException erro) { + if (transacao != null) { + transacao.rollback(); + } + throw erro; + } finally { + sessao.close(); + } + } +} diff --git a/287_Schedule_Ajustes/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Caixa.java b/287_Schedule_Ajustes/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Caixa.java new file mode 100644 index 0000000..61fc69b --- /dev/null +++ b/287_Schedule_Ajustes/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Caixa.java @@ -0,0 +1,62 @@ +package br.pro.delfino.drogaria.domain; + +import java.math.BigDecimal; +import java.util.Date; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.JoinColumn; +import javax.persistence.ManyToOne; +import javax.persistence.Temporal; +import javax.persistence.TemporalType; + +@SuppressWarnings("serial") +@Entity +public class Caixa extends GenericDomain { + @Column(nullable = false, unique = true) + @Temporal(TemporalType.DATE) + private Date dataAbertura; + + @Column(nullable = true) + @Temporal(TemporalType.DATE) + private Date dataFechamento; + + @Column(nullable = false, precision = 7, scale = 2) + private BigDecimal valorAbertura; + + @ManyToOne + @JoinColumn(nullable = false) + private Funcionario funcionario; + + public Date getDataAbertura() { + return dataAbertura; + } + + public void setDataAbertura(Date dataAbertura) { + this.dataAbertura = dataAbertura; + } + + public Date getDataFechamento() { + return dataFechamento; + } + + public void setDataFechamento(Date dataFechamento) { + this.dataFechamento = dataFechamento; + } + + public BigDecimal getValorAbertura() { + return valorAbertura; + } + + public void setValorAbertura(BigDecimal valorAbertura) { + this.valorAbertura = valorAbertura; + } + + public Funcionario getFuncionario() { + return funcionario; + } + + public void setFuncionario(Funcionario funcionario) { + this.funcionario = funcionario; + } +} diff --git a/287_Schedule_Ajustes/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Cidade.java b/287_Schedule_Ajustes/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Cidade.java new file mode 100644 index 0000000..cf94ede --- /dev/null +++ b/287_Schedule_Ajustes/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Cidade.java @@ -0,0 +1,33 @@ +package br.pro.delfino.drogaria.domain; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.JoinColumn; +import javax.persistence.ManyToOne; + +@SuppressWarnings("serial") +@Entity +public class Cidade extends GenericDomain { + @Column(length = 50, nullable = false) + private String nome; + + @ManyToOne + @JoinColumn(nullable = false) + private Estado estado; + + public String getNome() { + return nome; + } + + public void setNome(String nome) { + this.nome = nome; + } + + public Estado getEstado() { + return estado; + } + + public void setEstado(Estado estado) { + this.estado = estado; + } +} diff --git a/287_Schedule_Ajustes/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Cliente.java b/287_Schedule_Ajustes/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Cliente.java new file mode 100644 index 0000000..6ace9b9 --- /dev/null +++ b/287_Schedule_Ajustes/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Cliente.java @@ -0,0 +1,49 @@ +package br.pro.delfino.drogaria.domain; + +import java.util.Date; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.JoinColumn; +import javax.persistence.OneToOne; +import javax.persistence.Temporal; +import javax.persistence.TemporalType; + +@SuppressWarnings("serial") +@Entity +public class Cliente extends GenericDomain { + @Column(nullable = false) + @Temporal(TemporalType.DATE) + private Date dataCadastro; + + @Column(nullable = false) + private Boolean liberado; + + @OneToOne + @JoinColumn(nullable = false) + private Pessoa pessoa; + + public Date getDataCadastro() { + return dataCadastro; + } + + public void setDataCadastro(Date dataCadastro) { + this.dataCadastro = dataCadastro; + } + + public Boolean getLiberado() { + return liberado; + } + + public void setLiberado(Boolean liberado) { + this.liberado = liberado; + } + + public Pessoa getPessoa() { + return pessoa; + } + + public void setPessoa(Pessoa pessoa) { + this.pessoa = pessoa; + } +} diff --git a/287_Schedule_Ajustes/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Estado.java b/287_Schedule_Ajustes/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Estado.java new file mode 100644 index 0000000..1c06b98 --- /dev/null +++ b/287_Schedule_Ajustes/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Estado.java @@ -0,0 +1,30 @@ +package br.pro.delfino.drogaria.domain; + +import javax.persistence.Column; +import javax.persistence.Entity; + +@SuppressWarnings("serial") +@Entity +public class Estado extends GenericDomain { + @Column(length = 2, nullable = false) + private String sigla; + + @Column(length = 50, nullable = false) + private String nome; + + public String getSigla() { + return sigla; + } + + public void setSigla(String sigla) { + this.sigla = sigla; + } + + public String getNome() { + return nome; + } + + public void setNome(String nome) { + this.nome = nome; + } +} diff --git a/287_Schedule_Ajustes/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Fabricante.java b/287_Schedule_Ajustes/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Fabricante.java new file mode 100644 index 0000000..02eab8c --- /dev/null +++ b/287_Schedule_Ajustes/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Fabricante.java @@ -0,0 +1,19 @@ +package br.pro.delfino.drogaria.domain; + +import javax.persistence.Column; +import javax.persistence.Entity; + +@SuppressWarnings("serial") +@Entity +public class Fabricante extends GenericDomain { + @Column(length = 50, nullable = false) + private String descricao; + + public String getDescricao() { + return descricao; + } + + public void setDescricao(String descricao) { + this.descricao = descricao; + } +} diff --git a/287_Schedule_Ajustes/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Funcionario.java b/287_Schedule_Ajustes/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Funcionario.java new file mode 100644 index 0000000..dec9378 --- /dev/null +++ b/287_Schedule_Ajustes/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Funcionario.java @@ -0,0 +1,49 @@ +package br.pro.delfino.drogaria.domain; + +import java.util.Date; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.JoinColumn; +import javax.persistence.OneToOne; +import javax.persistence.Temporal; +import javax.persistence.TemporalType; + +@SuppressWarnings("serial") +@Entity +public class Funcionario extends GenericDomain { + @Column(length = 15, nullable = false) + private String carteiraTrabalho; + + @Column(nullable = false) + @Temporal(TemporalType.DATE) + private Date dataAdmissao; + + @OneToOne + @JoinColumn(nullable = false) + private Pessoa pessoa; + + public String getCarteiraTrabalho() { + return carteiraTrabalho; + } + + public void setCarteiraTrabalho(String carteiraTrabalho) { + this.carteiraTrabalho = carteiraTrabalho; + } + + public Date getDataAdmissao() { + return dataAdmissao; + } + + public void setDataAdmissao(Date dataAdmissao) { + this.dataAdmissao = dataAdmissao; + } + + public Pessoa getPessoa() { + return pessoa; + } + + public void setPessoa(Pessoa pessoa) { + this.pessoa = pessoa; + } +} diff --git a/287_Schedule_Ajustes/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/GenericDomain.java b/287_Schedule_Ajustes/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/GenericDomain.java new file mode 100644 index 0000000..f37efea --- /dev/null +++ b/287_Schedule_Ajustes/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/GenericDomain.java @@ -0,0 +1,54 @@ +package br.pro.delfino.drogaria.domain; + +import java.io.Serializable; + +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Id; +import javax.persistence.MappedSuperclass; + +@SuppressWarnings("serial") +@MappedSuperclass +public class GenericDomain implements Serializable { + @Id + @GeneratedValue(strategy = GenerationType.AUTO) + private Long codigo; + + public Long getCodigo() { + return codigo; + } + + public void setCodigo(Long codigo) { + this.codigo = codigo; + } + + @Override + public String toString() { + return String.format("%s[codigo=%d]", getClass().getSimpleName(), getCodigo()); + } + + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + ((codigo == null) ? 0 : codigo.hashCode()); + return result; + } + + @Override + public boolean equals(Object obj) { + if (this == obj) + return true; + if (obj == null) + return false; + if (getClass() != obj.getClass()) + return false; + GenericDomain other = (GenericDomain) obj; + if (codigo == null) { + if (other.codigo != null) + return false; + } else if (!codigo.equals(other.codigo)) + return false; + return true; + } +} diff --git a/287_Schedule_Ajustes/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Historico.java b/287_Schedule_Ajustes/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Historico.java new file mode 100644 index 0000000..dafdaeb --- /dev/null +++ b/287_Schedule_Ajustes/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Historico.java @@ -0,0 +1,49 @@ +package br.pro.delfino.drogaria.domain; + +import java.util.Date; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.JoinColumn; +import javax.persistence.ManyToOne; +import javax.persistence.Temporal; +import javax.persistence.TemporalType; + +@SuppressWarnings("serial") +@Entity +public class Historico extends GenericDomain { + @Column(nullable = false) + @Temporal(TemporalType.TIMESTAMP) + private Date horario; + + @Column(nullable = false, length = 500) + private String observacoes; + + @ManyToOne + @JoinColumn(nullable = false) + private Produto produto; + + public Date getHorario() { + return horario; + } + + public void setHorario(Date horario) { + this.horario = horario; + } + + public String getObservacoes() { + return observacoes; + } + + public void setObservacoes(String observacoes) { + this.observacoes = observacoes; + } + + public Produto getProduto() { + return produto; + } + + public void setProduto(Produto produto) { + this.produto = produto; + } +} diff --git a/287_Schedule_Ajustes/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/ItemVenda.java b/287_Schedule_Ajustes/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/ItemVenda.java new file mode 100644 index 0000000..590ab26 --- /dev/null +++ b/287_Schedule_Ajustes/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/ItemVenda.java @@ -0,0 +1,58 @@ +package br.pro.delfino.drogaria.domain; + +import java.math.BigDecimal; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.JoinColumn; +import javax.persistence.ManyToOne; + +@SuppressWarnings("serial") +@Entity +public class ItemVenda extends GenericDomain { + @Column(nullable = false) + private Short quantidade; + + @Column(nullable = false, precision = 7, scale = 2) + private BigDecimal precoParcial; + + @ManyToOne + @JoinColumn(nullable = false) + private Produto produto; + + @ManyToOne + @JoinColumn(nullable = false) + private Venda venda; + + public Short getQuantidade() { + return quantidade; + } + + public void setQuantidade(Short quantidade) { + this.quantidade = quantidade; + } + + public BigDecimal getPrecoParcial() { + return precoParcial; + } + + public void setPrecoParcial(BigDecimal precoParcial) { + this.precoParcial = precoParcial; + } + + public Produto getProduto() { + return produto; + } + + public void setProduto(Produto produto) { + this.produto = produto; + } + + public Venda getVenda() { + return venda; + } + + public void setVenda(Venda venda) { + this.venda = venda; + } +} diff --git a/287_Schedule_Ajustes/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Movimentacao.java b/287_Schedule_Ajustes/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Movimentacao.java new file mode 100644 index 0000000..c3d6319 --- /dev/null +++ b/287_Schedule_Ajustes/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Movimentacao.java @@ -0,0 +1,50 @@ +package br.pro.delfino.drogaria.domain; + +import java.math.BigDecimal; +import java.util.Date; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.JoinColumn; +import javax.persistence.ManyToOne; +import javax.persistence.Temporal; +import javax.persistence.TemporalType; + +@SuppressWarnings("serial") +@Entity +public class Movimentacao extends GenericDomain { + @Column(nullable = false) + @Temporal(TemporalType.TIMESTAMP) + private Date horario; + + @Column(nullable = false, precision = 7, scale = 2) + private BigDecimal valor; + + @ManyToOne + @JoinColumn(nullable = false) + private Caixa caixa; + + public Date getHorario() { + return horario; + } + + public void setHorario(Date horario) { + this.horario = horario; + } + + public BigDecimal getValor() { + return valor; + } + + public void setValor(BigDecimal valor) { + this.valor = valor; + } + + public Caixa getCaixa() { + return caixa; + } + + public void setCaixa(Caixa caixa) { + this.caixa = caixa; + } +} diff --git a/287_Schedule_Ajustes/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Pessoa.java b/287_Schedule_Ajustes/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Pessoa.java new file mode 100644 index 0000000..f354001 --- /dev/null +++ b/287_Schedule_Ajustes/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Pessoa.java @@ -0,0 +1,143 @@ +package br.pro.delfino.drogaria.domain; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.JoinColumn; +import javax.persistence.ManyToOne; + +@SuppressWarnings("serial") +@Entity +public class Pessoa extends GenericDomain { + @Column(length = 50, nullable = false) + private String nome; + + @Column(length = 14, nullable = false) + private String cpf; + + @Column(length = 12, nullable = false) + private String rg; + + @Column(length = 100, nullable = false) + private String rua; + + @Column(nullable = false) + private Short numero; + + @Column(length = 30, nullable = false) + private String bairro; + + @Column(length = 10, nullable = false) + private String cep; + + @Column(length = 10) + private String complemento; + + @Column(length = 13, nullable = false) + private String telefone; + + @Column(length = 14, nullable = false) + private String celular; + + @Column(length = 100, nullable = false) + private String email; + + @ManyToOne + @JoinColumn(nullable = false) + private Cidade cidade; + + public String getNome() { + return nome; + } + + public void setNome(String nome) { + this.nome = nome; + } + + public String getCpf() { + return cpf; + } + + public void setCpf(String cpf) { + this.cpf = cpf; + } + + public String getRg() { + return rg; + } + + public void setRg(String rg) { + this.rg = rg; + } + + public String getRua() { + return rua; + } + + public void setRua(String rua) { + this.rua = rua; + } + + public Short getNumero() { + return numero; + } + + public void setNumero(Short numero) { + this.numero = numero; + } + + public String getBairro() { + return bairro; + } + + public void setBairro(String bairro) { + this.bairro = bairro; + } + + public String getCep() { + return cep; + } + + public void setCep(String cep) { + this.cep = cep; + } + + public String getComplemento() { + return complemento; + } + + public void setComplemento(String complemento) { + this.complemento = complemento; + } + + public String getTelefone() { + return telefone; + } + + public void setTelefone(String telefone) { + this.telefone = telefone; + } + + public String getCelular() { + return celular; + } + + public void setCelular(String celular) { + this.celular = celular; + } + + public String getEmail() { + return email; + } + + public void setEmail(String email) { + this.email = email; + } + + public Cidade getCidade() { + return cidade; + } + + public void setCidade(Cidade cidade) { + this.cidade = cidade; + } +} diff --git a/287_Schedule_Ajustes/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Produto.java b/287_Schedule_Ajustes/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Produto.java new file mode 100644 index 0000000..82049b0 --- /dev/null +++ b/287_Schedule_Ajustes/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Produto.java @@ -0,0 +1,69 @@ +package br.pro.delfino.drogaria.domain; + +import java.math.BigDecimal; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.JoinColumn; +import javax.persistence.ManyToOne; +import javax.persistence.Transient; + +@SuppressWarnings("serial") +@Entity +public class Produto extends GenericDomain { + @Column(length = 80, nullable = false) + private String descricao; + + @Column(nullable = false) + private Short quantidade; + + @Column(nullable = false, precision = 6, scale = 2) + private BigDecimal preco; + + @ManyToOne + @JoinColumn(nullable = false) + private Fabricante fabricante; + + @Transient + private String caminho; + + public String getDescricao() { + return descricao; + } + + public void setDescricao(String descricao) { + this.descricao = descricao; + } + + public Short getQuantidade() { + return quantidade; + } + + public void setQuantidade(Short quantidade) { + this.quantidade = quantidade; + } + + public BigDecimal getPreco() { + return preco; + } + + public void setPreco(BigDecimal preco) { + this.preco = preco; + } + + public Fabricante getFabricante() { + return fabricante; + } + + public void setFabricante(Fabricante fabricante) { + this.fabricante = fabricante; + } + + public String getCaminho() { + return caminho; + } + + public void setCaminho(String caminho) { + this.caminho = caminho; + } +} diff --git a/287_Schedule_Ajustes/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Usuario.java b/287_Schedule_Ajustes/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Usuario.java new file mode 100644 index 0000000..ae51941 --- /dev/null +++ b/287_Schedule_Ajustes/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Usuario.java @@ -0,0 +1,93 @@ +package br.pro.delfino.drogaria.domain; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.JoinColumn; +import javax.persistence.OneToOne; +import javax.persistence.Transient; + +@SuppressWarnings("serial") +@Entity +public class Usuario extends GenericDomain { + @Column(length = 32, nullable = false) + private String senha; + + @Transient + private String senhaSemCriptografia; + + @Column(nullable = false) + private Character tipo; + + @Column(nullable = false) + private Boolean ativo; + + @OneToOne + @JoinColumn(nullable = false) + private Pessoa pessoa; + + public String getSenha() { + return senha; + } + + public void setSenha(String senha) { + this.senha = senha; + } + + public String getSenhaSemCriptografia() { + return senhaSemCriptografia; + } + + public void setSenhaSemCriptografia(String senhaSemCriptografia) { + this.senhaSemCriptografia = senhaSemCriptografia; + } + + public Character getTipo() { + return tipo; + } + + @Transient + public String getTipoFormatado() { + String tipoFormatado = null; + + if (tipo == 'A') { + tipoFormatado = "Administrador"; + } else if (tipo == 'B') { + tipoFormatado = "Balconista"; + } else if (tipo == 'G') { + tipoFormatado = "Gerente"; + } + + return tipoFormatado; + } + + public void setTipo(Character tipo) { + this.tipo = tipo; + } + + public Boolean getAtivo() { + return ativo; + } + + @Transient + public String getAtivoFormatado(){ + String ativoFormatado = "Não"; + + if(ativo){ + ativoFormatado = "Sim"; + } + + return ativoFormatado; + } + + public void setAtivo(Boolean ativo) { + this.ativo = ativo; + } + + public Pessoa getPessoa() { + return pessoa; + } + + public void setPessoa(Pessoa pessoa) { + this.pessoa = pessoa; + } +} diff --git a/287_Schedule_Ajustes/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Venda.java b/287_Schedule_Ajustes/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Venda.java new file mode 100644 index 0000000..3f4c226 --- /dev/null +++ b/287_Schedule_Ajustes/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Venda.java @@ -0,0 +1,61 @@ +package br.pro.delfino.drogaria.domain; + +import java.math.BigDecimal; +import java.util.Date; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.JoinColumn; +import javax.persistence.ManyToOne; +import javax.persistence.Temporal; +import javax.persistence.TemporalType; + +@SuppressWarnings("serial") +@Entity +public class Venda extends GenericDomain { + @Column(nullable = false) + @Temporal(TemporalType.TIMESTAMP) + private Date horario; + + @Column(nullable = false, precision = 7, scale = 2) + private BigDecimal precoTotal; + + @ManyToOne + private Cliente cliente; + + @ManyToOne + @JoinColumn(nullable = false) + private Funcionario funcionario; + + public Date getHorario() { + return horario; + } + + public void setHorario(Date horario) { + this.horario = horario; + } + + public BigDecimal getPrecoTotal() { + return precoTotal; + } + + public void setPrecoTotal(BigDecimal precoTotal) { + this.precoTotal = precoTotal; + } + + public Cliente getCliente() { + return cliente; + } + + public void setCliente(Cliente cliente) { + this.cliente = cliente; + } + + public Funcionario getFuncionario() { + return funcionario; + } + + public void setFuncionario(Funcionario funcionario) { + this.funcionario = funcionario; + } +} diff --git a/287_Schedule_Ajustes/Drogaria/src/main/java/br/pro/delfino/drogaria/service/DrogariaService.java b/287_Schedule_Ajustes/Drogaria/src/main/java/br/pro/delfino/drogaria/service/DrogariaService.java new file mode 100644 index 0000000..fbb1f2b --- /dev/null +++ b/287_Schedule_Ajustes/Drogaria/src/main/java/br/pro/delfino/drogaria/service/DrogariaService.java @@ -0,0 +1,13 @@ +package br.pro.delfino.drogaria.service; + +import javax.ws.rs.GET; +import javax.ws.rs.Path; + +// http://localhost:8080/Drogaria/rest/drogaria +@Path("drogaria") +public class DrogariaService { + @GET + public String exibir(){ + return "Curso de Java"; + } +} diff --git a/287_Schedule_Ajustes/Drogaria/src/main/java/br/pro/delfino/drogaria/service/FabricanteService.java b/287_Schedule_Ajustes/Drogaria/src/main/java/br/pro/delfino/drogaria/service/FabricanteService.java new file mode 100644 index 0000000..1dbc0d1 --- /dev/null +++ b/287_Schedule_Ajustes/Drogaria/src/main/java/br/pro/delfino/drogaria/service/FabricanteService.java @@ -0,0 +1,85 @@ +package br.pro.delfino.drogaria.service; + +import java.util.List; + +import javax.ws.rs.DELETE; +import javax.ws.rs.GET; +import javax.ws.rs.POST; +import javax.ws.rs.PUT; +import javax.ws.rs.Path; +import javax.ws.rs.PathParam; + +import com.google.gson.Gson; + +import br.pro.delfino.drogaria.dao.FabricanteDAO; +import br.pro.delfino.drogaria.domain.Fabricante; + +@Path("fabricante") +public class FabricanteService { + // http://127.0.0.1:8080/Drogaria/rest/fabricante + @GET + public String listar() { + FabricanteDAO fabricanteDAO = new FabricanteDAO(); + List fabricantes = fabricanteDAO.listar("descricao"); + + Gson gson = new Gson(); + String json = gson.toJson(fabricantes); + + return json; + } + + // http://127.0.0.1:8080/Drogaria/rest/fabricante/{codigo} + // http://127.0.0.1:8080/Drogaria/rest/fabricante/10 + @GET + @Path("{codigo}") + public String buscar(@PathParam("codigo") Long codigo) { + FabricanteDAO fabricanteDAO = new FabricanteDAO(); + Fabricante fabricante = fabricanteDAO.buscar(codigo); + + Gson gson = new Gson(); + String json = gson.toJson(fabricante); + + return json; + } + + // http://127.0.0.1:8080/Drogaria/rest/fabricante + @POST + public String salvar(String json) { + Gson gson = new Gson(); + Fabricante fabricante = gson.fromJson(json, Fabricante.class); + + FabricanteDAO fabricanteDAO = new FabricanteDAO(); + fabricanteDAO.merge(fabricante); + + String jsonSaida = gson.toJson(fabricante); + return jsonSaida; + } + + // http://127.0.0.1:8080/Drogaria/rest/fabricante + @PUT + public String editar(String json) { + Gson gson = new Gson(); + Fabricante fabricante = gson.fromJson(json, Fabricante.class); + + FabricanteDAO fabricanteDAO = new FabricanteDAO(); + fabricanteDAO.editar(fabricante); + + String jsonSaida = gson.toJson(fabricante); + return jsonSaida; + } + + // http://127.0.0.1:8080/Drogaria/rest/fabricante/{codigo} + // http://127.0.0.1:8080/Drogaria/rest/fabricante/10 + @DELETE + @Path("{codigo}") + public String excluir(@PathParam("codigo") Long codigo){ + FabricanteDAO fabricanteDAO = new FabricanteDAO(); + + Fabricante fabricante = fabricanteDAO.buscar(codigo); + fabricanteDAO.excluir(fabricante); + + Gson gson = new Gson(); + String saida = gson.toJson(fabricante); + return saida; + } +} diff --git a/287_Schedule_Ajustes/Drogaria/src/main/java/br/pro/delfino/drogaria/service/ProdutoService.java b/287_Schedule_Ajustes/Drogaria/src/main/java/br/pro/delfino/drogaria/service/ProdutoService.java new file mode 100644 index 0000000..4dfdf40 --- /dev/null +++ b/287_Schedule_Ajustes/Drogaria/src/main/java/br/pro/delfino/drogaria/service/ProdutoService.java @@ -0,0 +1,39 @@ +package br.pro.delfino.drogaria.service; + +import java.util.List; + +import javax.ws.rs.GET; +import javax.ws.rs.POST; +import javax.ws.rs.Path; + +import com.google.gson.Gson; + +import br.pro.delfino.drogaria.dao.ProdutoDAO; +import br.pro.delfino.drogaria.domain.Produto; + +// http://127.0.0.1:8080/Drogaria/rest/produto +@Path("produto") +public class ProdutoService { + @GET + public String listar(){ + ProdutoDAO produtoDAO = new ProdutoDAO(); + List produtos = produtoDAO.listar("descricao"); + + Gson gson = new Gson(); + String json = gson.toJson(produtos); + + return json; + } + + @POST + public String salvar (String json){ + Gson gson = new Gson(); + Produto produto = gson.fromJson(json, Produto.class); + + ProdutoDAO produtoDAO = new ProdutoDAO(); + produto = produtoDAO.merge(produto); + + String jsonSaida = gson.toJson(produto); + return jsonSaida; + } +} diff --git a/287_Schedule_Ajustes/Drogaria/src/main/java/br/pro/delfino/drogaria/util/DrogariaResourceConfig.java b/287_Schedule_Ajustes/Drogaria/src/main/java/br/pro/delfino/drogaria/util/DrogariaResourceConfig.java new file mode 100644 index 0000000..2c997a9 --- /dev/null +++ b/287_Schedule_Ajustes/Drogaria/src/main/java/br/pro/delfino/drogaria/util/DrogariaResourceConfig.java @@ -0,0 +1,13 @@ +package br.pro.delfino.drogaria.util; + +import javax.ws.rs.ApplicationPath; + +import org.glassfish.jersey.server.ResourceConfig; + +//http://localhost:8080/Drogaria/rest +@ApplicationPath("rest") +public class DrogariaResourceConfig extends ResourceConfig { + public DrogariaResourceConfig(){ + packages("br.pro.delfino.drogaria.service"); + } +} diff --git a/287_Schedule_Ajustes/Drogaria/src/main/java/br/pro/delfino/drogaria/util/HibernateContexto.java b/287_Schedule_Ajustes/Drogaria/src/main/java/br/pro/delfino/drogaria/util/HibernateContexto.java new file mode 100644 index 0000000..71869d7 --- /dev/null +++ b/287_Schedule_Ajustes/Drogaria/src/main/java/br/pro/delfino/drogaria/util/HibernateContexto.java @@ -0,0 +1,18 @@ +package br.pro.delfino.drogaria.util; + +import javax.servlet.ServletContextEvent; +import javax.servlet.ServletContextListener; + +public class HibernateContexto implements ServletContextListener { + + @Override + public void contextDestroyed(ServletContextEvent event) { + HibernateUtil.getFabricaDeSessoes().close(); + } + + @Override + public void contextInitialized(ServletContextEvent event) { + HibernateUtil.getFabricaDeSessoes(); + } + +} diff --git a/287_Schedule_Ajustes/Drogaria/src/main/java/br/pro/delfino/drogaria/util/HibernateUtil.java b/287_Schedule_Ajustes/Drogaria/src/main/java/br/pro/delfino/drogaria/util/HibernateUtil.java new file mode 100644 index 0000000..693551b --- /dev/null +++ b/287_Schedule_Ajustes/Drogaria/src/main/java/br/pro/delfino/drogaria/util/HibernateUtil.java @@ -0,0 +1,47 @@ +package br.pro.delfino.drogaria.util; + +import java.sql.Connection; +import java.sql.SQLException; + +import org.hibernate.Session; +import org.hibernate.SessionFactory; +import org.hibernate.boot.registry.StandardServiceRegistryBuilder; +import org.hibernate.cfg.Configuration; +import org.hibernate.jdbc.ReturningWork; +import org.hibernate.service.ServiceRegistry; + +public class HibernateUtil { + private static SessionFactory fabricaDeSessoes = criarFabricaDeSessoes(); + + public static SessionFactory getFabricaDeSessoes() { + return fabricaDeSessoes; + } + + public static Connection getConexao(){ + Session sessao = fabricaDeSessoes.openSession(); + + Connection conexao = sessao.doReturningWork(new ReturningWork() { + @Override + public Connection execute(Connection conn) throws SQLException { + return conn; + } + }); + + return conexao; + } + + private static SessionFactory criarFabricaDeSessoes() { + try { + Configuration configuracao = new Configuration().configure(); + + ServiceRegistry registro = new StandardServiceRegistryBuilder().applySettings(configuracao.getProperties()).build(); + + SessionFactory fabrica = configuracao.buildSessionFactory(registro); + + return fabrica; + } catch (Throwable ex) { + System.err.println("A fábrica de sessões não pode ser criada." + ex); + throw new ExceptionInInitializerError(ex); + } + } +} diff --git a/287_Schedule_Ajustes/Drogaria/src/main/resources/hibernate.cfg.xml b/287_Schedule_Ajustes/Drogaria/src/main/resources/hibernate.cfg.xml new file mode 100644 index 0000000..65f392e --- /dev/null +++ b/287_Schedule_Ajustes/Drogaria/src/main/resources/hibernate.cfg.xml @@ -0,0 +1,51 @@ + + + + + + + + + + com.mysql.jdbc.Driver + jdbc:mysql://127.0.0.1:3306/drogaria + root + q1w2e3r4 + + + 1 + + + org.hibernate.dialect.MySQL5InnoDBDialect + + + thread + + + org.hibernate.cache.internal.NoCacheProvider + + + true + + + update + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/287_Schedule_Ajustes/Drogaria/src/main/webapp/WEB-INF/springsecurity.taglib.xml b/287_Schedule_Ajustes/Drogaria/src/main/webapp/WEB-INF/springsecurity.taglib.xml new file mode 100644 index 0000000..9d6938c --- /dev/null +++ b/287_Schedule_Ajustes/Drogaria/src/main/webapp/WEB-INF/springsecurity.taglib.xml @@ -0,0 +1,32 @@ + + + + http://www.springframework.org/security/tags + + authorize + org.springframework.faces.security.FaceletsAuthorizeTagHandler + + + areAllGranted + org.springframework.faces.security.FaceletsAuthorizeTagUtils + boolean areAllGranted(java.lang.String) + + + areAnyGranted + org.springframework.faces.security.FaceletsAuthorizeTagUtils + boolean areAnyGranted(java.lang.String) + + + areNotGranted + org.springframework.faces.security.FaceletsAuthorizeTagUtils + boolean areNotGranted(java.lang.String) + + + isAllowed + org.springframework.faces.security.FaceletsAuthorizeTagUtils + boolean isAllowed(java.lang.String, + java.lang.String) + + \ No newline at end of file diff --git a/287_Schedule_Ajustes/Drogaria/src/main/webapp/WEB-INF/web.xml b/287_Schedule_Ajustes/Drogaria/src/main/webapp/WEB-INF/web.xml new file mode 100644 index 0000000..6b0cf5d --- /dev/null +++ b/287_Schedule_Ajustes/Drogaria/src/main/webapp/WEB-INF/web.xml @@ -0,0 +1,48 @@ + + + + + Drogaria + + + + pages/principal.xhtml + + + + + javax.faces.PROJECT_STAGE + Development + + + + + primefaces.THEME + blitzer + + + + + primefaces.UPLOADER + native + + + + + Faces Servlet + javax.faces.webapp.FacesServlet + 1 + + + Faces Servlet + *.xhtml + + + + + br.pro.delfino.drogaria.util.HibernateContexto + + \ No newline at end of file diff --git a/287_Schedule_Ajustes/Drogaria/src/main/webapp/pages/autenticacao.xhtml b/287_Schedule_Ajustes/Drogaria/src/main/webapp/pages/autenticacao.xhtml new file mode 100644 index 0000000..e41a833 --- /dev/null +++ b/287_Schedule_Ajustes/Drogaria/src/main/webapp/pages/autenticacao.xhtml @@ -0,0 +1,36 @@ + + + + + + Autenticação + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/287_Schedule_Ajustes/Drogaria/src/main/webapp/pages/cidades.xhtml b/287_Schedule_Ajustes/Drogaria/src/main/webapp/pages/cidades.xhtml new file mode 100644 index 0000000..504f3a3 --- /dev/null +++ b/287_Schedule_Ajustes/Drogaria/src/main/webapp/pages/cidades.xhtml @@ -0,0 +1,100 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/287_Schedule_Ajustes/Drogaria/src/main/webapp/pages/clientes.xhtml b/287_Schedule_Ajustes/Drogaria/src/main/webapp/pages/clientes.xhtml new file mode 100644 index 0000000..4e3cfb5 --- /dev/null +++ b/287_Schedule_Ajustes/Drogaria/src/main/webapp/pages/clientes.xhtml @@ -0,0 +1,94 @@ + + + + + + Clientes + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/287_Schedule_Ajustes/Drogaria/src/main/webapp/pages/estados.xhtml b/287_Schedule_Ajustes/Drogaria/src/main/webapp/pages/estados.xhtml new file mode 100644 index 0000000..0cddf5e --- /dev/null +++ b/287_Schedule_Ajustes/Drogaria/src/main/webapp/pages/estados.xhtml @@ -0,0 +1,90 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/287_Schedule_Ajustes/Drogaria/src/main/webapp/pages/fabricantes.xhtml b/287_Schedule_Ajustes/Drogaria/src/main/webapp/pages/fabricantes.xhtml new file mode 100644 index 0000000..3904db0 --- /dev/null +++ b/287_Schedule_Ajustes/Drogaria/src/main/webapp/pages/fabricantes.xhtml @@ -0,0 +1,78 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/287_Schedule_Ajustes/Drogaria/src/main/webapp/pages/historico.xhtml b/287_Schedule_Ajustes/Drogaria/src/main/webapp/pages/historico.xhtml new file mode 100644 index 0000000..184a864 --- /dev/null +++ b/287_Schedule_Ajustes/Drogaria/src/main/webapp/pages/historico.xhtml @@ -0,0 +1,64 @@ + + + + + + Histórico + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/287_Schedule_Ajustes/Drogaria/src/main/webapp/pages/pessoas.xhtml b/287_Schedule_Ajustes/Drogaria/src/main/webapp/pages/pessoas.xhtml new file mode 100644 index 0000000..7d68e8c --- /dev/null +++ b/287_Schedule_Ajustes/Drogaria/src/main/webapp/pages/pessoas.xhtml @@ -0,0 +1,162 @@ + + + + + + Pessoas + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/287_Schedule_Ajustes/Drogaria/src/main/webapp/pages/principal.xhtml b/287_Schedule_Ajustes/Drogaria/src/main/webapp/pages/principal.xhtml new file mode 100644 index 0000000..726842c --- /dev/null +++ b/287_Schedule_Ajustes/Drogaria/src/main/webapp/pages/principal.xhtml @@ -0,0 +1,14 @@ + + + + + + + + + \ No newline at end of file diff --git a/287_Schedule_Ajustes/Drogaria/src/main/webapp/pages/produtos.xhtml b/287_Schedule_Ajustes/Drogaria/src/main/webapp/pages/produtos.xhtml new file mode 100644 index 0000000..56c5db4 --- /dev/null +++ b/287_Schedule_Ajustes/Drogaria/src/main/webapp/pages/produtos.xhtml @@ -0,0 +1,141 @@ + + + + + + Produtos + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/287_Schedule_Ajustes/Drogaria/src/main/webapp/pages/produtosEdicao.xhtml b/287_Schedule_Ajustes/Drogaria/src/main/webapp/pages/produtosEdicao.xhtml new file mode 100644 index 0000000..9eae78a --- /dev/null +++ b/287_Schedule_Ajustes/Drogaria/src/main/webapp/pages/produtosEdicao.xhtml @@ -0,0 +1,67 @@ + + + + + + + + + + + + Produtos + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/287_Schedule_Ajustes/Drogaria/src/main/webapp/pages/produtosListagem.xhtml b/287_Schedule_Ajustes/Drogaria/src/main/webapp/pages/produtosListagem.xhtml new file mode 100644 index 0000000..2b30417 --- /dev/null +++ b/287_Schedule_Ajustes/Drogaria/src/main/webapp/pages/produtosListagem.xhtml @@ -0,0 +1,59 @@ + + + + + + + + + + + Produtos + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/287_Schedule_Ajustes/Drogaria/src/main/webapp/pages/testeJSF.xhtml b/287_Schedule_Ajustes/Drogaria/src/main/webapp/pages/testeJSF.xhtml new file mode 100644 index 0000000..c20659b --- /dev/null +++ b/287_Schedule_Ajustes/Drogaria/src/main/webapp/pages/testeJSF.xhtml @@ -0,0 +1,12 @@ + + + + + + Teste JSF + + + + + \ No newline at end of file diff --git a/287_Schedule_Ajustes/Drogaria/src/main/webapp/pages/testePrimeFaces.xhtml b/287_Schedule_Ajustes/Drogaria/src/main/webapp/pages/testePrimeFaces.xhtml new file mode 100644 index 0000000..6c4d434 --- /dev/null +++ b/287_Schedule_Ajustes/Drogaria/src/main/webapp/pages/testePrimeFaces.xhtml @@ -0,0 +1,14 @@ + + + + + + Teste PrimeFaces + + + + + \ No newline at end of file diff --git a/287_Schedule_Ajustes/Drogaria/src/main/webapp/pages/usuarios.xhtml b/287_Schedule_Ajustes/Drogaria/src/main/webapp/pages/usuarios.xhtml new file mode 100644 index 0000000..45dd761 --- /dev/null +++ b/287_Schedule_Ajustes/Drogaria/src/main/webapp/pages/usuarios.xhtml @@ -0,0 +1,97 @@ + + + + + + Usuários + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/287_Schedule_Ajustes/Drogaria/src/main/webapp/pages/vendas.xhtml b/287_Schedule_Ajustes/Drogaria/src/main/webapp/pages/vendas.xhtml new file mode 100644 index 0000000..4485892 --- /dev/null +++ b/287_Schedule_Ajustes/Drogaria/src/main/webapp/pages/vendas.xhtml @@ -0,0 +1,156 @@ + + + + + + Vendas + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/287_Schedule_Ajustes/Drogaria/src/main/webapp/reports/estados.jasper b/287_Schedule_Ajustes/Drogaria/src/main/webapp/reports/estados.jasper new file mode 100644 index 0000000..96a1278 Binary files /dev/null and b/287_Schedule_Ajustes/Drogaria/src/main/webapp/reports/estados.jasper differ diff --git a/287_Schedule_Ajustes/Drogaria/src/main/webapp/reports/estados.jrxml b/287_Schedule_Ajustes/Drogaria/src/main/webapp/reports/estados.jrxml new file mode 100644 index 0000000..76da981 --- /dev/null +++ b/287_Schedule_Ajustes/Drogaria/src/main/webapp/reports/estados.jrxml @@ -0,0 +1,102 @@ + + + + + + + + + + + + + + + + + + + + <band height="80" splitType="Stretch"> + <image hAlign="Center" vAlign="Middle"> + <reportElement x="0" y="0" width="555" height="80" uuid="6f3208e9-d291-48b3-b13d-3ec9ef72cd3e"> + <property name="com.jaspersoft.studio.unit.width" value="pixel"/> + </reportElement> + <imageExpression><![CDATA["C:/Programação Web com Java/Workspace/Drogaria/src/main/webapp/resources/images/banner.jpg"]]></imageExpression> + </image> + </band> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/287_Schedule_Ajustes/Drogaria/src/main/webapp/reports/produtos.jasper b/287_Schedule_Ajustes/Drogaria/src/main/webapp/reports/produtos.jasper new file mode 100644 index 0000000..ad55e5f Binary files /dev/null and b/287_Schedule_Ajustes/Drogaria/src/main/webapp/reports/produtos.jasper differ diff --git a/287_Schedule_Ajustes/Drogaria/src/main/webapp/reports/produtos.jrxml b/287_Schedule_Ajustes/Drogaria/src/main/webapp/reports/produtos.jrxml new file mode 100644 index 0000000..800aed0 --- /dev/null +++ b/287_Schedule_Ajustes/Drogaria/src/main/webapp/reports/produtos.jrxml @@ -0,0 +1,130 @@ + + + + + + + + + + + + + + + + + + + + + <band height="79" splitType="Stretch"> + <image hAlign="Center"> + <reportElement x="0" y="0" width="555" height="79" uuid="727feda0-73ba-4c27-aa2c-a431492bd3d6"> + <property name="com.jaspersoft.studio.unit.width" value="pixel"/> + </reportElement> + <imageExpression><![CDATA["C:/Programação Web com Java/Workspace/Drogaria/src/main/webapp/resources/images/banner.jpg"]]></imageExpression> + </image> + </band> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/287_Schedule_Ajustes/Drogaria/src/main/webapp/resources/css/estilos.css b/287_Schedule_Ajustes/Drogaria/src/main/webapp/resources/css/estilos.css new file mode 100644 index 0000000..4acdd7f --- /dev/null +++ b/287_Schedule_Ajustes/Drogaria/src/main/webapp/resources/css/estilos.css @@ -0,0 +1,19 @@ +@CHARSET "UTF-8"; + +.imagemCentralizada { + display: block; + margin-left: auto; + margin-right: auto; +} + +.divTopo { + padding-bottom: 5px; +} + +.divCabecalho { + padding-bottom: 5px; +} + +.ui-widget, .ui-widget .ui-widget { + font-size: 100% !important; +} \ No newline at end of file diff --git a/287_Schedule_Ajustes/Drogaria/src/main/webapp/resources/images/banner.jpg b/287_Schedule_Ajustes/Drogaria/src/main/webapp/resources/images/banner.jpg new file mode 100644 index 0000000..f58cc21 Binary files /dev/null and b/287_Schedule_Ajustes/Drogaria/src/main/webapp/resources/images/banner.jpg differ diff --git a/287_Schedule_Ajustes/Drogaria/src/main/webapp/resources/js/scripts.js b/287_Schedule_Ajustes/Drogaria/src/main/webapp/resources/js/scripts.js new file mode 100644 index 0000000..e39ad9b --- /dev/null +++ b/287_Schedule_Ajustes/Drogaria/src/main/webapp/resources/js/scripts.js @@ -0,0 +1,26 @@ +PrimeFaces.locales['pt_BR'] = { + closeText: 'Fechar', + prevText: 'Anterior', + nextText: 'Próximo', + currentText: 'Começo', + monthNames: ['Janeiro','Fevereiro','Março','Abril','Maio','Junho','Julho','Agosto','Setembro','Outubro','Novembro','Dezembro'], + monthNamesShort: ['Jan','Fev','Mar','Abr','Mai','Jun', 'Jul','Ago','Set','Out','Nov','Dez'], + dayNames: ['Domingo','Segunda','Terça','Quarta','Quinta','Sexta','Sábado'], + dayNamesShort: ['Dom','Seg','Ter','Qua','Qui','Sex','Sáb'], + dayNamesMin: ['D','S','T','Q','Q','S','S'], + weekHeader: 'Semana', + firstDay: 0, + isRTL: false, + showMonthAfterYear: false, + yearSuffix: '', + timeOnlyTitle: 'Só Horas', + timeText: 'Tempo', + hourText: 'Hora', + minuteText: 'Minuto', + secondText: 'Segundo', + ampm: false, + month: 'Mês', + week: 'Semana', + day: 'Dia', + allDayText : 'Todo o Dia' +}; \ No newline at end of file diff --git a/287_Schedule_Ajustes/Drogaria/src/main/webapp/templates/modelo.xhtml b/287_Schedule_Ajustes/Drogaria/src/main/webapp/templates/modelo.xhtml new file mode 100644 index 0000000..62d3d1c --- /dev/null +++ b/287_Schedule_Ajustes/Drogaria/src/main/webapp/templates/modelo.xhtml @@ -0,0 +1,55 @@ + + + + + + SiGDro + + + + + +
+
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+
+ \ No newline at end of file diff --git a/287_Schedule_Ajustes/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/CaixaDAOTest.java b/287_Schedule_Ajustes/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/CaixaDAOTest.java new file mode 100644 index 0000000..b5e6156 --- /dev/null +++ b/287_Schedule_Ajustes/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/CaixaDAOTest.java @@ -0,0 +1,33 @@ +package br.pro.delfino.drogaria.dao; + +import java.math.BigDecimal; +import java.text.ParseException; +import java.text.SimpleDateFormat; + +import org.junit.Assert; +import org.junit.Ignore; +import org.junit.Test; + +import br.pro.delfino.drogaria.domain.Caixa; + +public class CaixaDAOTest { + @Test + @Ignore + public void salvar() throws ParseException { + Caixa caixa = new Caixa(); + caixa.setDataAbertura(new SimpleDateFormat("dd/MM/yyyy").parse("14/12/2015")); + caixa.setValorAbertura(new BigDecimal("100.00")); + + CaixaDAO caixaDAO = new CaixaDAO(); + caixaDAO.salvar(caixa); + } + + @Test + @Ignore + public void buscar() throws ParseException { + CaixaDAO caixaDAO = new CaixaDAO(); + Caixa caixa = caixaDAO.buscar(new SimpleDateFormat("dd/MM/yyyy").parse("13/12/2015")); + System.out.println(caixa); + Assert.assertNull(caixa); + } +} diff --git a/287_Schedule_Ajustes/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/CidadeDAOTest.java b/287_Schedule_Ajustes/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/CidadeDAOTest.java new file mode 100644 index 0000000..ec59599 --- /dev/null +++ b/287_Schedule_Ajustes/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/CidadeDAOTest.java @@ -0,0 +1,130 @@ +package br.pro.delfino.drogaria.dao; + +import java.util.List; + +import org.junit.Ignore; +import org.junit.Test; + +import br.pro.delfino.drogaria.domain.Cidade; +import br.pro.delfino.drogaria.domain.Estado; + +public class CidadeDAOTest { + @Test + @Ignore + public void salvar() { + Long codigoEstado = 1L; + + EstadoDAO estadoDAO = new EstadoDAO(); + + Estado estado = estadoDAO.buscar(codigoEstado); + + Cidade cidade = new Cidade(); + cidade.setNome("Marília"); + cidade.setEstado(estado); + + CidadeDAO cidadeDAO = new CidadeDAO(); + cidadeDAO.salvar(cidade); + } + + @Test + @Ignore + public void listar() { + CidadeDAO cidadeDAO = new CidadeDAO(); + List resultado = cidadeDAO.listar(); + + for (Cidade cidade : resultado) { + System.out.println("Código da Cidade: " + cidade.getCodigo()); + System.out.println("Nome da Cidade: " + cidade.getNome()); + System.out.println("Código do Estado: " + cidade.getEstado().getCodigo()); + System.out.println("Sigla do Estado: " + cidade.getEstado().getSigla()); + System.out.println("Nome do Estado: " + cidade.getEstado().getNome()); + System.out.println(); + } + } + + @Test + @Ignore + public void buscar(){ + Long codigo = 7L; + + CidadeDAO cidadeDAO = new CidadeDAO(); + Cidade cidade = cidadeDAO.buscar(codigo); + + System.out.println("Código da Cidade: " + cidade.getCodigo()); + System.out.println("Nome da Cidade: " + cidade.getNome()); + System.out.println("Código do Estado: " + cidade.getEstado().getCodigo()); + System.out.println("Sigla do Estado: " + cidade.getEstado().getSigla()); + System.out.println("Nome do Estado: " + cidade.getEstado().getNome()); + } + + @Test + @Ignore + public void excluir(){ + Long codigo = 7L; + + CidadeDAO cidadeDAO = new CidadeDAO(); + Cidade cidade = cidadeDAO.buscar(codigo); + + cidadeDAO.excluir(cidade); + + System.out.println("Cidade Removida"); + System.out.println("Código da Cidade: " + cidade.getCodigo()); + System.out.println("Nome da Cidade: " + cidade.getNome()); + System.out.println("Código do Estado: " + cidade.getEstado().getCodigo()); + System.out.println("Sigla do Estado: " + cidade.getEstado().getSigla()); + System.out.println("Nome do Estado: " + cidade.getEstado().getNome()); + } + + @Test + @Ignore + public void editar(){ + Long codigoCidade = 6L; + Long codigoEstado = 11L; + + EstadoDAO estadoDAO = new EstadoDAO(); + Estado estado = estadoDAO.buscar(codigoEstado); + + System.out.println("Código do Estado: " + estado.getCodigo()); + System.out.println("Sigla do Estado: " + estado.getSigla()); + System.out.println("Nome do Estado: " + estado.getNome()); + + CidadeDAO cidadeDAO = new CidadeDAO(); + Cidade cidade = cidadeDAO.buscar(codigoCidade); + + System.out.println("Cidade A Ser Editada"); + System.out.println("Código da Cidade: " + cidade.getCodigo()); + System.out.println("Nome da Cidade: " + cidade.getNome()); + System.out.println("Código do Estado: " + cidade.getEstado().getCodigo()); + System.out.println("Sigla do Estado: " + cidade.getEstado().getSigla()); + System.out.println("Nome do Estado: " + cidade.getEstado().getNome()); + + cidade.setNome("Guarapuava"); + cidade.setEstado(estado); + + cidadeDAO.editar(cidade); + + System.out.println("Cidade Editada"); + System.out.println("Código da Cidade: " + cidade.getCodigo()); + System.out.println("Nome da Cidade: " + cidade.getNome()); + System.out.println("Código do Estado: " + cidade.getEstado().getCodigo()); + System.out.println("Sigla do Estado: " + cidade.getEstado().getSigla()); + System.out.println("Nome do Estado: " + cidade.getEstado().getNome()); + } + + @Test + public void buscarPorEstado() { + Long estadoCodigo = 3L; + + CidadeDAO cidadeDAO = new CidadeDAO(); + List resultado = cidadeDAO.buscarPorEstado(estadoCodigo); + + for (Cidade cidade : resultado) { + System.out.println("Código da Cidade: " + cidade.getCodigo()); + System.out.println("Nome da Cidade: " + cidade.getNome()); + System.out.println("Código do Estado: " + cidade.getEstado().getCodigo()); + System.out.println("Sigla do Estado: " + cidade.getEstado().getSigla()); + System.out.println("Nome do Estado: " + cidade.getEstado().getNome()); + System.out.println(); + } + } +} diff --git a/287_Schedule_Ajustes/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/ClienteDAOTest.java b/287_Schedule_Ajustes/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/ClienteDAOTest.java new file mode 100644 index 0000000..4d557d9 --- /dev/null +++ b/287_Schedule_Ajustes/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/ClienteDAOTest.java @@ -0,0 +1,29 @@ +package br.pro.delfino.drogaria.dao; + +import java.text.ParseException; +import java.text.SimpleDateFormat; + +import org.junit.Ignore; +import org.junit.Test; + +import br.pro.delfino.drogaria.domain.Cliente; +import br.pro.delfino.drogaria.domain.Pessoa; + +public class ClienteDAOTest { + @Test + @Ignore + public void salvar() throws ParseException { + PessoaDAO pessoaDAO = new PessoaDAO(); + Pessoa pessoa = pessoaDAO.buscar(2L); + + Cliente cliente = new Cliente(); + cliente.setDataCadastro(new SimpleDateFormat("dd/MM/yyyy").parse("09/06/2015")); + cliente.setLiberado(false); + cliente.setPessoa(pessoa); + + ClienteDAO clienteDAO = new ClienteDAO(); + clienteDAO.salvar(cliente); + + System.out.println("Cliente salvo com sucesso."); + } +} diff --git a/287_Schedule_Ajustes/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/EstadoDAOTest.java b/287_Schedule_Ajustes/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/EstadoDAOTest.java new file mode 100644 index 0000000..f84a086 --- /dev/null +++ b/287_Schedule_Ajustes/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/EstadoDAOTest.java @@ -0,0 +1,88 @@ +package br.pro.delfino.drogaria.dao; + +import java.util.List; + +import org.junit.Ignore; +import org.junit.Test; + +import br.pro.delfino.drogaria.domain.Estado; + +public class EstadoDAOTest { + @Test + @Ignore + public void salvar() { + Estado estado = new Estado(); + estado.setNome("Rio Grande do Sul"); + estado.setSigla("RS"); + + EstadoDAO estadoDAO = new EstadoDAO(); + estadoDAO.salvar(estado); + } + + @Test + @Ignore + public void listar() { + EstadoDAO estadoDAO = new EstadoDAO(); + List resultado = estadoDAO.listar(); + + System.out.println("Total de Registros Encontrados: " + resultado.size()); + + for (Estado estado : resultado) { + System.out.println(estado.getCodigo() + " - " + estado.getSigla() + " - " + estado.getNome()); + } + } + + @Test + @Ignore + public void buscar(){ + Long codigo = 3L; + + EstadoDAO estadoDAO = new EstadoDAO(); + Estado estado = estadoDAO.buscar(codigo); + + if(estado == null){ + System.out.println("Nenhum registro encontrado"); + }else{ + System.out.println("Registro encontrado:"); + System.out.println(estado.getCodigo() + " - " + estado.getSigla() + " - " + estado.getNome()); + } + } + + @Test + @Ignore + public void excluir(){ + Long codigo = 1L; + EstadoDAO estadoDAO = new EstadoDAO(); + Estado estado = estadoDAO.buscar(codigo); + + if(estado == null){ + System.out.println("Nenhum registro encontrado"); + }else{ + estadoDAO.excluir(estado); + System.out.println("Registro removido:"); + System.out.println(estado.getCodigo() + " - " + estado.getSigla() + " - " + estado.getNome()); + } + } + + @Test + @Ignore + public void editar(){ + Long codigo = 10L; + EstadoDAO estadoDAO = new EstadoDAO(); + Estado estado = estadoDAO.buscar(codigo); + + if(estado == null){ + System.out.println("Nenhum registro encontrado"); + }else{ + System.out.println("Registro editado - Antes:"); + System.out.println(estado.getCodigo() + " - " + estado.getSigla() + " - " + estado.getNome()); + + estado.setNome("Santa Catarina"); + estado.setSigla("SC"); + estadoDAO.editar(estado); + + System.out.println("Registro editado - Depois:"); + System.out.println(estado.getCodigo() + " - " + estado.getSigla() + " - " + estado.getNome()); + } + } +} diff --git a/287_Schedule_Ajustes/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/FabricanteDAOTest.java b/287_Schedule_Ajustes/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/FabricanteDAOTest.java new file mode 100644 index 0000000..56fb124 --- /dev/null +++ b/287_Schedule_Ajustes/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/FabricanteDAOTest.java @@ -0,0 +1,63 @@ +package br.pro.delfino.drogaria.dao; + +import java.util.List; + +import org.junit.Ignore; +import org.junit.Test; + +import br.pro.delfino.drogaria.domain.Fabricante; + +public class FabricanteDAOTest { + @Test + @Ignore + public void salvar() { + Fabricante fabricante = new Fabricante(); + fabricante.setDescricao("Aché"); + + FabricanteDAO fabricanteDAO = new FabricanteDAO(); + fabricanteDAO.salvar(fabricante); + } + + @Test + @Ignore + public void listar() { + FabricanteDAO FabricanteDAO = new FabricanteDAO(); + List resultado = FabricanteDAO.listar(); + + System.out.println("Total de Registros Encontrados: " + resultado.size()); + + for (Fabricante fabricante : resultado) { + System.out.println(fabricante.getCodigo() + " - " + fabricante.getDescricao()); + } + } + + @Test + @Ignore + public void buscar(){ + Long codigo = 3L; + + FabricanteDAO fabricanteDAO = new FabricanteDAO(); + Fabricante fabricante = fabricanteDAO.buscar(codigo); + + if(fabricante == null){ + System.out.println("Nenhum registro encontrado"); + }else{ + System.out.println("Registro encontrado:"); + System.out.println(fabricante.getCodigo() + " - " + fabricante.getDescricao()); + } + } + + @Test + @Ignore + public void merge() { + //Fabricante fabricante = new Fabricante(); + //fabricante.setDescricao("Fabricante A"); + //FabricanteDAO fabricanteDAO = new FabricanteDAO(); + //fabricanteDAO.merge(fabricante); + + FabricanteDAO fabricanteDAO = new FabricanteDAO(); + Fabricante fabricante = fabricanteDAO.buscar(5L); + fabricante.setDescricao("Fabricante B"); + fabricanteDAO.merge(fabricante); + } +} diff --git a/287_Schedule_Ajustes/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/FuncionarioDAOTest.java b/287_Schedule_Ajustes/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/FuncionarioDAOTest.java new file mode 100644 index 0000000..06cfff7 --- /dev/null +++ b/287_Schedule_Ajustes/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/FuncionarioDAOTest.java @@ -0,0 +1,5 @@ +package br.pro.delfino.drogaria.dao; + +public class FuncionarioDAOTest { + +} diff --git a/287_Schedule_Ajustes/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/ProdutoDAOTest.java b/287_Schedule_Ajustes/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/ProdutoDAOTest.java new file mode 100644 index 0000000..36f8563 --- /dev/null +++ b/287_Schedule_Ajustes/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/ProdutoDAOTest.java @@ -0,0 +1,29 @@ +package br.pro.delfino.drogaria.dao; + +import java.math.BigDecimal; + +import org.junit.Ignore; +import org.junit.Test; + +import br.pro.delfino.drogaria.domain.Fabricante; +import br.pro.delfino.drogaria.domain.Produto; + +public class ProdutoDAOTest { + @Test + @Ignore + public void salvar(){ + FabricanteDAO fabricanteDAO = new FabricanteDAO(); + Fabricante fabricante = fabricanteDAO.buscar(new Long("3")); + + Produto produto = new Produto(); + produto.setDescricao("Cataflan 50mg com 20 Comprimidos"); + produto.setFabricante(fabricante); + produto.setPreco(new BigDecimal("13.70")); + produto.setQuantidade(new Short("7")); + + ProdutoDAO produtoDAO = new ProdutoDAO(); + produtoDAO.salvar(produto); + + System.out.println("Produto salvo com sucesso"); + } +} diff --git a/287_Schedule_Ajustes/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/UsuarioDAOTest.java b/287_Schedule_Ajustes/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/UsuarioDAOTest.java new file mode 100644 index 0000000..c567ec8 --- /dev/null +++ b/287_Schedule_Ajustes/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/UsuarioDAOTest.java @@ -0,0 +1,47 @@ +package br.pro.delfino.drogaria.dao; + +import org.apache.shiro.crypto.hash.SimpleHash; +import org.junit.Ignore; +import org.junit.Test; + +import br.pro.delfino.drogaria.domain.Pessoa; +import br.pro.delfino.drogaria.domain.Usuario; + +public class UsuarioDAOTest { + @Test + @Ignore + public void salvar(){ + PessoaDAO pessoaDAO = new PessoaDAO(); + Pessoa pessoa = pessoaDAO.buscar(3L); + + System.out.println("Pessoa Encontrada"); + System.out.println("Nome: " + pessoa.getNome()); + System.out.println("CPF: " + pessoa.getCpf()); + + Usuario usuario = new Usuario(); + usuario.setAtivo(true); + usuario.setPessoa(pessoa); + usuario.setSenhaSemCriptografia("q1w2e3r4"); + + SimpleHash hash = new SimpleHash("md5", usuario.getSenhaSemCriptografia()); + usuario.setSenha(hash.toHex()); + + usuario.setTipo('B'); + + UsuarioDAO usuarioDAO = new UsuarioDAO(); + usuarioDAO.salvar(usuario); + + System.out.println("Usuário salvo com sucesso."); + } + + @Test + public void autenticar(){ + String cpf = "999.999.999-99"; + String senha = "12345678"; + + UsuarioDAO usuarioDAO = new UsuarioDAO(); + Usuario usuario = usuarioDAO.autenticar(cpf, senha); + + System.out.println("Usuário autentica: " + usuario); + } +} diff --git a/287_Schedule_Ajustes/Drogaria/src/test/java/br/pro/delfino/drogaria/util/HibernateUtilTest.java b/287_Schedule_Ajustes/Drogaria/src/test/java/br/pro/delfino/drogaria/util/HibernateUtilTest.java new file mode 100644 index 0000000..75776e0 --- /dev/null +++ b/287_Schedule_Ajustes/Drogaria/src/test/java/br/pro/delfino/drogaria/util/HibernateUtilTest.java @@ -0,0 +1,13 @@ +package br.pro.delfino.drogaria.util; + +import org.hibernate.Session; +import org.junit.Test; + +public class HibernateUtilTest { + @Test + public void conectar(){ + Session sessao = HibernateUtil.getFabricaDeSessoes().openSession(); + sessao.close(); + HibernateUtil.getFabricaDeSessoes().close(); + } +} diff --git a/288_Schedule_Tela/Drogaria/.tern-project b/288_Schedule_Tela/Drogaria/.tern-project new file mode 100644 index 0000000..b6f48dd --- /dev/null +++ b/288_Schedule_Tela/Drogaria/.tern-project @@ -0,0 +1 @@ +{"ide":{},"libs":["ecma5","browser"],"plugins":{"guess-types":{},"angular":{}}} \ No newline at end of file diff --git a/288_Schedule_Tela/Drogaria/pom.xml b/288_Schedule_Tela/Drogaria/pom.xml new file mode 100644 index 0000000..39b1e60 --- /dev/null +++ b/288_Schedule_Tela/Drogaria/pom.xml @@ -0,0 +1,132 @@ + + 4.0.0 + br.pro.delfino.drogaria + Drogaria + 1.0 + war + + + + UTF-8 + + + + + + Drogaria + + + + + + org.apache.maven.plugins + maven-compiler-plugin + 3.3 + + 1.8 + 1.8 + + + + + + + + + + prime-repo + PrimeFaces Maven Repository + http://repository.primefaces.org + default + + + + + + + + org.hibernate + hibernate-core + 4.3.11.Final + + + + + mysql + mysql-connector-java + 5.1.36 + + + + + junit + junit + 4.12 + + + + + org.glassfish + javax.faces + 2.2.12 + + + + + org.primefaces + primefaces + 5.2 + + + + + org.primefaces.themes + all-themes + 1.0.10 + + + + + org.omnifaces + omnifaces + 1.11 + + + + + javax.servlet + javax.servlet-api + 3.1.0 + + + + + org.glassfish.jersey.containers + jersey-container-servlet + 2.22.1 + + + + + com.google.code.gson + gson + 2.4 + + + + + net.sf.jasperreports + jasperreports + 6.1.1 + + + + + org.apache.shiro + shiro-core + 1.2.4 + + + + \ No newline at end of file diff --git a/288_Schedule_Tela/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/AutenticacaoBean.java b/288_Schedule_Tela/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/AutenticacaoBean.java new file mode 100644 index 0000000..7e86b0d --- /dev/null +++ b/288_Schedule_Tela/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/AutenticacaoBean.java @@ -0,0 +1,60 @@ +package br.pro.delfino.drogaria.bean; + +import java.io.IOException; + +import javax.annotation.PostConstruct; +import javax.faces.bean.ManagedBean; +import javax.faces.bean.SessionScoped; + +import org.omnifaces.util.Faces; +import org.omnifaces.util.Messages; + +import br.pro.delfino.drogaria.dao.UsuarioDAO; +import br.pro.delfino.drogaria.domain.Pessoa; +import br.pro.delfino.drogaria.domain.Usuario; + +@ManagedBean +@SessionScoped +public class AutenticacaoBean { + private Usuario usuario; + private Usuario usuarioLogado; + + public Usuario getUsuario() { + return usuario; + } + + public void setUsuario(Usuario usuario) { + this.usuario = usuario; + } + + public Usuario getUsuarioLogado() { + return usuarioLogado; + } + + public void setUsuarioLogado(Usuario usuarioLogado) { + this.usuarioLogado = usuarioLogado; + } + + @PostConstruct + public void iniciar() { + usuario = new Usuario(); + usuario.setPessoa(new Pessoa()); + } + + public void autenticar() { + try { + UsuarioDAO usuarioDAO = new UsuarioDAO(); + usuarioLogado = usuarioDAO.autenticar(usuario.getPessoa().getCpf(), usuario.getSenha()); + + if(usuarioLogado == null){ + Messages.addGlobalError("CPF e/ou senha incorretos"); + return; + } + + Faces.redirect("./pages/principal.xhtml"); + } catch (IOException erro) { + erro.printStackTrace(); + Messages.addGlobalError(erro.getMessage()); + } + } +} diff --git a/288_Schedule_Tela/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/CaixaBean.java b/288_Schedule_Tela/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/CaixaBean.java new file mode 100644 index 0000000..b077f8e --- /dev/null +++ b/288_Schedule_Tela/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/CaixaBean.java @@ -0,0 +1,27 @@ +package br.pro.delfino.drogaria.bean; + +import javax.annotation.PostConstruct; +import javax.faces.bean.ManagedBean; +import javax.faces.bean.ViewScoped; + +import org.primefaces.model.DefaultScheduleModel; +import org.primefaces.model.ScheduleModel; + +@ManagedBean +@ViewScoped +public class CaixaBean { + private ScheduleModel caixas; + + public ScheduleModel getCaixas() { + return caixas; + } + + public void setCaixas(ScheduleModel caixas) { + this.caixas = caixas; + } + + @PostConstruct + public void listar(){ + caixas = new DefaultScheduleModel(); + } +} diff --git a/288_Schedule_Tela/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/CidadeBean.java b/288_Schedule_Tela/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/CidadeBean.java new file mode 100644 index 0000000..4b03075 --- /dev/null +++ b/288_Schedule_Tela/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/CidadeBean.java @@ -0,0 +1,119 @@ +package br.pro.delfino.drogaria.bean; + +import java.io.Serializable; +import java.util.List; + +import javax.annotation.PostConstruct; +import javax.faces.bean.ManagedBean; +import javax.faces.bean.ViewScoped; +import javax.faces.event.ActionEvent; + +import org.omnifaces.util.Messages; + +import br.pro.delfino.drogaria.dao.CidadeDAO; +import br.pro.delfino.drogaria.dao.EstadoDAO; +import br.pro.delfino.drogaria.domain.Cidade; +import br.pro.delfino.drogaria.domain.Estado; + +@SuppressWarnings("serial") +@ManagedBean +@ViewScoped +public class CidadeBean implements Serializable { + private Cidade cidade; + private List cidades; + private List estados; + + public Cidade getCidade() { + return cidade; + } + + public void setCidade(Cidade cidade) { + this.cidade = cidade; + } + + public List getCidades() { + return cidades; + } + + public void setCidades(List cidades) { + this.cidades = cidades; + } + + public List getEstados() { + return estados; + } + + public void setEstados(List estados) { + this.estados = estados; + } + + @PostConstruct + public void listar() { + try { + CidadeDAO cidadeDAO = new CidadeDAO(); + cidades = cidadeDAO.listar("nome"); + } catch (RuntimeException erro) { + Messages.addFlashGlobalError("Ocorreu um erro ao tentar listar as cidades"); + erro.printStackTrace(); + } + } + + public void novo() { + try { + cidade = new Cidade(); + + EstadoDAO estadoDAO = new EstadoDAO(); + estados = estadoDAO.listar("nome"); + } catch (RuntimeException erro) { + Messages.addFlashGlobalError("Ocorreu um erro ao gerar uma nova cidade"); + erro.printStackTrace(); + } + } + + public void salvar() { + try { + CidadeDAO cidadeDAO = new CidadeDAO(); + cidadeDAO.merge(cidade); + + cidade = new Cidade(); + + EstadoDAO estadoDAO = new EstadoDAO(); + estados = estadoDAO.listar(); + + cidades = cidadeDAO.listar(); + + Messages.addGlobalInfo("Cidade salva com sucesso"); + } catch (RuntimeException erro) { + Messages.addFlashGlobalError("Ocorreu um erro ao tentar salvar uma nova cidade"); + erro.printStackTrace(); + } + } + + public void excluir(ActionEvent evento) { + try { + cidade = (Cidade) evento.getComponent().getAttributes().get("cidadeSelecionada"); + + CidadeDAO cidadeDAO = new CidadeDAO(); + cidadeDAO.excluir(cidade); + + cidades = cidadeDAO.listar(); + + Messages.addGlobalInfo("Cidade removida com sucesso"); + } catch (RuntimeException erro) { + Messages.addFlashGlobalError("Ocorreu um erro ao tentar remover a cidade"); + erro.printStackTrace(); + } + } + + public void editar(ActionEvent evento){ + try { + cidade = (Cidade) evento.getComponent().getAttributes().get("cidadeSelecionada"); + + EstadoDAO estadoDAO = new EstadoDAO(); + estados = estadoDAO.listar(); + } catch (RuntimeException erro) { + Messages.addFlashGlobalError("Ocorreu um erro ao tentar selecionar uma cidade"); + erro.printStackTrace(); + } + } +} diff --git a/288_Schedule_Tela/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/ClienteBean.java b/288_Schedule_Tela/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/ClienteBean.java new file mode 100644 index 0000000..c96b115 --- /dev/null +++ b/288_Schedule_Tela/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/ClienteBean.java @@ -0,0 +1,91 @@ +package br.pro.delfino.drogaria.bean; + +import java.io.Serializable; +import java.util.List; + +import javax.annotation.PostConstruct; +import javax.faces.bean.ManagedBean; +import javax.faces.bean.ViewScoped; + +import org.omnifaces.util.Messages; + +import br.pro.delfino.drogaria.dao.ClienteDAO; +import br.pro.delfino.drogaria.dao.PessoaDAO; +import br.pro.delfino.drogaria.domain.Cliente; +import br.pro.delfino.drogaria.domain.Pessoa; + +@SuppressWarnings("serial") +@ManagedBean +@ViewScoped +public class ClienteBean implements Serializable { + private Cliente cliente; + + private List clientes; + private List pessoas; + + public Cliente getCliente() { + return cliente; + } + + public void setCliente(Cliente cliente) { + this.cliente = cliente; + } + + public List getClientes() { + return clientes; + } + + public void setClientes(List clientes) { + this.clientes = clientes; + } + + public List getPessoas() { + return pessoas; + } + + public void setPessoas(List pessoas) { + this.pessoas = pessoas; + } + + @PostConstruct + public void listar() { + try { + ClienteDAO clienteDAO = new ClienteDAO(); + clientes = clienteDAO.listar("dataCadastro"); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar listar os clientes"); + erro.printStackTrace(); + } + } + + public void novo() { + try { + cliente = new Cliente(); + + PessoaDAO pessoaDAO = new PessoaDAO(); + pessoas = pessoaDAO.listar("nome"); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar criar um novo cliente"); + erro.printStackTrace(); + } + } + + public void salvar() { + try { + ClienteDAO clienteDAO = new ClienteDAO(); + clienteDAO.merge(cliente); + + cliente = new Cliente(); + + clientes = clienteDAO.listar("dataCadastro"); + + PessoaDAO pessoaDAO = new PessoaDAO(); + pessoas = pessoaDAO.listar("nome"); + + Messages.addGlobalInfo("Cliente salvo com sucesso"); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar salvar o cliente"); + erro.printStackTrace(); + } + } +} diff --git a/288_Schedule_Tela/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/EstadoBean.java b/288_Schedule_Tela/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/EstadoBean.java new file mode 100644 index 0000000..b4921fe --- /dev/null +++ b/288_Schedule_Tela/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/EstadoBean.java @@ -0,0 +1,88 @@ +package br.pro.delfino.drogaria.bean; + +import java.io.Serializable; +import java.util.List; + +import javax.annotation.PostConstruct; +import javax.faces.bean.ManagedBean; +import javax.faces.bean.ViewScoped; +import javax.faces.event.ActionEvent; + +import org.omnifaces.util.Messages; + +import br.pro.delfino.drogaria.dao.EstadoDAO; +import br.pro.delfino.drogaria.domain.Estado; + +@SuppressWarnings("serial") +@ManagedBean +@ViewScoped +public class EstadoBean implements Serializable { + private Estado estado; + private List estados; + + public Estado getEstado() { + return estado; + } + + public void setEstado(Estado estado) { + this.estado = estado; + } + + public List getEstados() { + return estados; + } + + public void setEstados(List estados) { + this.estados = estados; + } + + @PostConstruct + public void listar() { + try { + EstadoDAO estadoDAO = new EstadoDAO(); + estados = estadoDAO.listar(); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar listar os estados"); + erro.printStackTrace(); + } + } + + public void novo() { + estado = new Estado(); + } + + public void salvar() { + try { + EstadoDAO estadoDAO = new EstadoDAO(); + estadoDAO.merge(estado); + + estado = new Estado(); + estados = estadoDAO.listar(); + + Messages.addGlobalInfo("Estado salvo com sucesso"); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar salvar o estado"); + erro.printStackTrace(); + } + } + + public void excluir(ActionEvent evento) { + try { + estado = (Estado) evento.getComponent().getAttributes().get("estadoSelecionado"); + + EstadoDAO estadoDAO = new EstadoDAO(); + estadoDAO.excluir(estado); + + estados = estadoDAO.listar(); + + Messages.addGlobalInfo("Estado removido com sucesso"); + } catch (RuntimeException erro) { + Messages.addFlashGlobalError("Ocorreu um erro ao tentar remover o estado"); + erro.printStackTrace(); + } + } + + public void editar(ActionEvent evento) { + estado = (Estado) evento.getComponent().getAttributes().get("estadoSelecionado"); + } +} diff --git a/288_Schedule_Tela/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/FabricanteBean.java b/288_Schedule_Tela/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/FabricanteBean.java new file mode 100644 index 0000000..7fddf7d --- /dev/null +++ b/288_Schedule_Tela/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/FabricanteBean.java @@ -0,0 +1,116 @@ +package br.pro.delfino.drogaria.bean; + +import java.io.Serializable; +import java.util.Arrays; +import java.util.List; + +import javax.annotation.PostConstruct; +import javax.faces.bean.ManagedBean; +import javax.faces.bean.ViewScoped; +import javax.faces.event.ActionEvent; +import javax.ws.rs.client.Client; +import javax.ws.rs.client.ClientBuilder; +import javax.ws.rs.client.Entity; +import javax.ws.rs.client.WebTarget; + +import org.omnifaces.util.Messages; + +import com.google.gson.Gson; + +import br.pro.delfino.drogaria.domain.Fabricante; + +@SuppressWarnings("serial") +@ManagedBean +@ViewScoped +public class FabricanteBean implements Serializable { + private Fabricante fabricante; + private List fabricantes; + + public Fabricante getFabricante() { + return fabricante; + } + + public void setFabricante(Fabricante fabricante) { + this.fabricante = fabricante; + } + + public List getFabricantes() { + return fabricantes; + } + + public void setFabricantes(List fabricantes) { + this.fabricantes = fabricantes; + } + + @PostConstruct + public void listar() { + try { + Client cliente = ClientBuilder.newClient(); + WebTarget caminho = cliente.target("http://127.0.0.1:8080/Drogaria/rest/fabricante"); + String json = caminho.request().get(String.class); + + Gson gson = new Gson(); + Fabricante[] vetor = gson.fromJson(json, Fabricante[].class); + + fabricantes = Arrays.asList(vetor); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar listar os fabricantes"); + erro.printStackTrace(); + } + } + + public void novo() { + fabricante = new Fabricante(); + } + + public void salvar() { + try { + Client cliente = ClientBuilder.newClient(); + WebTarget caminho = cliente.target("http://127.0.0.1:8080/Drogaria/rest/fabricante"); + + Gson gson = new Gson(); + + String json = gson.toJson(fabricante); + caminho.request().post(Entity.json(json)); + + fabricante = new Fabricante(); + + json = caminho.request().get(String.class); + Fabricante[] vetor = gson.fromJson(json, Fabricante[].class); + fabricantes = Arrays.asList(vetor); + + Messages.addGlobalInfo("Fabricante salvo com sucesso"); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar salvar o fabricante"); + erro.printStackTrace(); + } + } + + public void excluir(ActionEvent evento) { + try { + fabricante = (Fabricante) evento.getComponent().getAttributes().get("fabricanteSelecionado"); + + Client cliente = ClientBuilder.newClient(); + + WebTarget caminho = cliente.target("http://127.0.0.1:8080/Drogaria/rest/fabricante"); + WebTarget caminhoExcluir = caminho.path("{codigo}").resolveTemplate("codigo", fabricante.getCodigo()); + + caminhoExcluir.request().delete(); + String json = caminho.request().get(String.class); + + Gson gson = new Gson(); + Fabricante[] vetor = gson.fromJson(json, Fabricante[].class); + + fabricantes = Arrays.asList(vetor); + + Messages.addGlobalInfo("Fabricante removido com sucesso"); + } catch (RuntimeException erro) { + Messages.addFlashGlobalError("Ocorreu um erro ao tentar remover o fabricante"); + erro.printStackTrace(); + } + } + + public void editar(ActionEvent evento) { + fabricante = (Fabricante) evento.getComponent().getAttributes().get("fabricanteSelecionado"); + } +} diff --git a/288_Schedule_Tela/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/HistoricoBean.java b/288_Schedule_Tela/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/HistoricoBean.java new file mode 100644 index 0000000..a042b04 --- /dev/null +++ b/288_Schedule_Tela/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/HistoricoBean.java @@ -0,0 +1,89 @@ +package br.pro.delfino.drogaria.bean; + +import java.io.Serializable; +import java.util.Date; + +import javax.annotation.PostConstruct; +import javax.faces.bean.ManagedBean; +import javax.faces.bean.ViewScoped; + +import org.omnifaces.util.Messages; + +import br.pro.delfino.drogaria.dao.HistoricoDAO; +import br.pro.delfino.drogaria.dao.ProdutoDAO; +import br.pro.delfino.drogaria.domain.Historico; +import br.pro.delfino.drogaria.domain.Produto; + +@SuppressWarnings("serial") +@ManagedBean +@ViewScoped +public class HistoricoBean implements Serializable { + private Produto produto; + private Boolean exibePainelDados; + + private Historico historico; + + public Produto getProduto() { + return produto; + } + + public void setProduto(Produto produto) { + this.produto = produto; + } + + public Boolean getExibePainelDados() { + return exibePainelDados; + } + + public void setExibePainelDados(Boolean exibePainelDados) { + this.exibePainelDados = exibePainelDados; + } + + public Historico getHistorico() { + return historico; + } + + public void setHistorico(Historico historico) { + this.historico = historico; + } + + @PostConstruct + public void novo() { + historico = new Historico(); + produto = new Produto(); + exibePainelDados = false; + } + + public void buscar() { + try { + ProdutoDAO produtoDAO = new ProdutoDAO(); + Produto resultado = produtoDAO.buscar(produto.getCodigo()); + + if (resultado == null) { + exibePainelDados = false; + Messages.addGlobalWarn("Não existe produto cadastrado para o código informado"); + } else { + exibePainelDados = true; + produto = resultado; + } + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar buscar o produto"); + erro.printStackTrace(); + } + } + + public void salvar() { + try { + historico.setHorario(new Date()); + historico.setProduto(produto); + + HistoricoDAO historicoDAO = new HistoricoDAO(); + historicoDAO.salvar(historico); + + Messages.addGlobalInfo("Histórico salvo com sucesso"); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar salvar o histórico"); + erro.printStackTrace(); + } + } +} diff --git a/288_Schedule_Tela/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/ImagemBean.java b/288_Schedule_Tela/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/ImagemBean.java new file mode 100644 index 0000000..eb963a8 --- /dev/null +++ b/288_Schedule_Tela/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/ImagemBean.java @@ -0,0 +1,48 @@ +package br.pro.delfino.drogaria.bean; + +import java.io.IOException; +import java.io.InputStream; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; + +import javax.faces.bean.ManagedBean; +import javax.faces.bean.ManagedProperty; +import javax.faces.bean.RequestScoped; + +import org.primefaces.model.DefaultStreamedContent; +import org.primefaces.model.StreamedContent; + +@ManagedBean +@RequestScoped +public class ImagemBean { + @ManagedProperty("#{param.caminho}") + private String caminho; + + private StreamedContent foto; + + public String getCaminho() { + return caminho; + } + + public void setCaminho(String caminho) { + this.caminho = caminho; + } + + public StreamedContent getFoto() throws IOException { + if(caminho == null || caminho.isEmpty()){ + Path path = Paths.get("C:/Programação Web com Java/Uploads/branco.png"); + InputStream stream = Files.newInputStream(path); + foto = new DefaultStreamedContent(stream); + }else{ + Path path = Paths.get(caminho); + InputStream stream = Files.newInputStream(path); + foto = new DefaultStreamedContent(stream); + } + return foto; + } + + public void setFoto(StreamedContent foto) { + this.foto = foto; + } +} diff --git a/288_Schedule_Tela/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/PessoaBean.java b/288_Schedule_Tela/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/PessoaBean.java new file mode 100644 index 0000000..931edf7 --- /dev/null +++ b/288_Schedule_Tela/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/PessoaBean.java @@ -0,0 +1,156 @@ +package br.pro.delfino.drogaria.bean; + +import java.io.Serializable; +import java.util.ArrayList; +import java.util.List; + +import javax.annotation.PostConstruct; +import javax.faces.bean.ManagedBean; +import javax.faces.bean.ViewScoped; +import javax.faces.event.ActionEvent; + +import org.omnifaces.util.Messages; + +import br.pro.delfino.drogaria.dao.CidadeDAO; +import br.pro.delfino.drogaria.dao.EstadoDAO; +import br.pro.delfino.drogaria.dao.PessoaDAO; +import br.pro.delfino.drogaria.domain.Cidade; +import br.pro.delfino.drogaria.domain.Estado; +import br.pro.delfino.drogaria.domain.Pessoa; + +@SuppressWarnings("serial") +@ManagedBean +@ViewScoped +public class PessoaBean implements Serializable { + private Pessoa pessoa; + private List pessoas; + + private Estado estado; + private List estados; + + private List cidades; + + public Pessoa getPessoa() { + return pessoa; + } + + public void setPessoa(Pessoa pessoa) { + this.pessoa = pessoa; + } + + public List getPessoas() { + return pessoas; + } + + public void setPessoas(List pessoas) { + this.pessoas = pessoas; + } + + public Estado getEstado() { + return estado; + } + + public void setEstado(Estado estado) { + this.estado = estado; + } + + public List getEstados() { + return estados; + } + + public void setEstados(List estados) { + this.estados = estados; + } + + public List getCidades() { + return cidades; + } + + public void setCidades(List cidades) { + this.cidades = cidades; + } + + @PostConstruct + public void listar() { + try { + PessoaDAO pessoaDAO = new PessoaDAO(); + pessoas = pessoaDAO.listar("nome"); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar listar as pessoas"); + erro.printStackTrace(); + } + } + + public void novo() { + try { + pessoa = new Pessoa(); + + estado = new Estado(); + + EstadoDAO estadoDAO = new EstadoDAO(); + estados = estadoDAO.listar("nome"); + + cidades = new ArrayList<>(); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar gerar uma nova pessoa"); + erro.printStackTrace(); + } + } + + public void editar(ActionEvent evento) { + try{ + pessoa = (Pessoa) evento.getComponent().getAttributes().get("pessoaSelecionada"); + + estado = pessoa.getCidade().getEstado(); + + EstadoDAO estadoDAO = new EstadoDAO(); + estados = estadoDAO.listar("nome"); + + CidadeDAO cidadeDAO = new CidadeDAO(); + cidades = cidadeDAO.buscarPorEstado(estado.getCodigo()); + }catch(RuntimeException erro){ + Messages.addGlobalError("Ocorreu um erro ao tentar selecionar uma pessoa"); + } + } + + public void salvar() { + try { + PessoaDAO pessoaDAO = new PessoaDAO(); + pessoaDAO.merge(pessoa); + + pessoas = pessoaDAO.listar("nome"); + + pessoa = new Pessoa(); + + estado = new Estado(); + + EstadoDAO estadoDAO = new EstadoDAO(); + estados = estadoDAO.listar("nome"); + + cidades = new ArrayList<>(); + + Messages.addGlobalInfo("Pessoa salva com sucesso"); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar salvar a pessoa"); + erro.printStackTrace(); + } + } + + public void excluir(ActionEvent evento) { + + } + + public void popular() { + try { + if (estado != null) { + CidadeDAO cidadeDAO = new CidadeDAO(); + cidades = cidadeDAO.buscarPorEstado(estado.getCodigo()); + } else { + cidades = new ArrayList<>(); + } + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar filtrar as cidades"); + erro.printStackTrace(); + } + } +} diff --git a/288_Schedule_Tela/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/ProdutoBean.java b/288_Schedule_Tela/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/ProdutoBean.java new file mode 100644 index 0000000..e48e0d1 --- /dev/null +++ b/288_Schedule_Tela/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/ProdutoBean.java @@ -0,0 +1,196 @@ +package br.pro.delfino.drogaria.bean; + +import java.io.IOException; +import java.io.Serializable; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; +import java.nio.file.StandardCopyOption; +import java.sql.Connection; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import javax.annotation.PostConstruct; +import javax.faces.bean.ManagedBean; +import javax.faces.bean.ViewScoped; +import javax.faces.event.ActionEvent; + +import org.omnifaces.util.Faces; +import org.omnifaces.util.Messages; +import org.primefaces.component.datatable.DataTable; +import org.primefaces.event.FileUploadEvent; +import org.primefaces.model.UploadedFile; + +import br.pro.delfino.drogaria.dao.FabricanteDAO; +import br.pro.delfino.drogaria.dao.ProdutoDAO; +import br.pro.delfino.drogaria.domain.Fabricante; +import br.pro.delfino.drogaria.domain.Produto; +import br.pro.delfino.drogaria.util.HibernateUtil; +import net.sf.jasperreports.engine.JRException; +import net.sf.jasperreports.engine.JasperFillManager; +import net.sf.jasperreports.engine.JasperPrint; +import net.sf.jasperreports.engine.JasperPrintManager; + +@SuppressWarnings("serial") +@ManagedBean +@ViewScoped +public class ProdutoBean implements Serializable { + private Produto produto; + private List produtos; + private List fabricantes; + + public Produto getProduto() { + return produto; + } + + public void setProduto(Produto produto) { + this.produto = produto; + } + + public List getProdutos() { + return produtos; + } + + public void setProdutos(List produtos) { + this.produtos = produtos; + } + + public List getFabricantes() { + return fabricantes; + } + + public void setFabricantes(List fabricantes) { + this.fabricantes = fabricantes; + } + + @PostConstruct + public void listar() { + try { + ProdutoDAO produtoDAO = new ProdutoDAO(); + produtos = produtoDAO.listar("descricao"); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar listar os produtos"); + erro.printStackTrace(); + } + } + + public void novo() { + try { + produto = new Produto(); + + FabricanteDAO fabricanteDAO = new FabricanteDAO(); + fabricantes = fabricanteDAO.listar("descricao"); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar gerar um novo produto"); + erro.printStackTrace(); + } + } + + public void editar(ActionEvent evento) { + try { + produto = (Produto) evento.getComponent().getAttributes().get("produtoSelecionado"); + produto.setCaminho("C:/Programação Web com Java/Uploads/" + produto.getCodigo() + ".png"); + + FabricanteDAO fabricanteDAO = new FabricanteDAO(); + fabricantes = fabricanteDAO.listar(); + } catch (RuntimeException erro) { + Messages.addFlashGlobalError("Ocorreu um erro ao tentar selecionar um produto"); + erro.printStackTrace(); + } + } + + public void salvar() { + try { + if (produto.getCaminho() == null) { + Messages.addGlobalError("O campo foto é obrigatório"); + return; + } + + ProdutoDAO produtoDAO = new ProdutoDAO(); + Produto produtoRetorno = produtoDAO.merge(produto); + + Path origem = Paths.get(produto.getCaminho()); + Path destino = Paths.get("C:/Programação Web com Java/Uploads/" + produtoRetorno.getCodigo() + ".png"); + Files.copy(origem, destino, StandardCopyOption.REPLACE_EXISTING); + + produto = new Produto(); + + FabricanteDAO fabricanteDAO = new FabricanteDAO(); + fabricantes = fabricanteDAO.listar(); + + produtos = produtoDAO.listar(); + + Messages.addGlobalInfo("Produto salvo com sucesso"); + } catch (RuntimeException | IOException erro) { + Messages.addFlashGlobalError("Ocorreu um erro ao tentar salvar o produto"); + erro.printStackTrace(); + } + } + + public void excluir(ActionEvent evento) { + try { + produto = (Produto) evento.getComponent().getAttributes().get("produtoSelecionado"); + + ProdutoDAO produtoDAO = new ProdutoDAO(); + produtoDAO.excluir(produto); + + Path arquivo = Paths.get("C:/Programação Web com Java/Uploads/" + produto.getCodigo() + ".png"); + Files.deleteIfExists(arquivo); + + produtos = produtoDAO.listar(); + + Messages.addGlobalInfo("Produto removido com sucesso"); + } catch (RuntimeException | IOException erro) { + Messages.addFlashGlobalError("Ocorreu um erro ao tentar remover o produto"); + erro.printStackTrace(); + } + } + + public void upload(FileUploadEvent evento) { + try { + UploadedFile arquivoUpload = evento.getFile(); + Path arquivoTemp = Files.createTempFile(null, null); + Files.copy(arquivoUpload.getInputstream(), arquivoTemp, StandardCopyOption.REPLACE_EXISTING); + produto.setCaminho(arquivoTemp.toString()); + + Messages.addGlobalInfo("Upload realizado com sucesso"); + } catch (IOException erro) { + Messages.addGlobalInfo("Ocorreu um erro ao tentar realizar o upload de arquivo"); + erro.printStackTrace(); + } + } + + public void imprimir() { + try { + DataTable tabela = (DataTable) Faces.getViewRoot().findComponent("formListagem:tabela"); + Map filtros = tabela.getFilters(); + + String proDescricao = (String) filtros.get("descricao"); + String fabDescricao = (String) filtros.get("fabricante.descricao"); + + String caminho = Faces.getRealPath("/reports/produtos.jasper"); + + Map parametros = new HashMap<>(); + if (proDescricao == null) { + parametros.put("PRODUTO_DESCRICAO", "%%"); + } else { + parametros.put("PRODUTO_DESCRICAO", "%" + proDescricao + "%"); + } + if (fabDescricao == null) { + parametros.put("FABRICANTE_DESCRICAO", "%%"); + } else { + parametros.put("FABRICANTE_DESCRICAO", "%" + fabDescricao + "%"); + } + + Connection conexao = HibernateUtil.getConexao(); + + JasperPrint relatorio = JasperFillManager.fillReport(caminho, parametros, conexao); + + JasperPrintManager.printReport(relatorio, true); + } catch (JRException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar gerar o relatório"); + erro.printStackTrace(); + } + } +} diff --git a/288_Schedule_Tela/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/ProdutoBean2.java b/288_Schedule_Tela/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/ProdutoBean2.java new file mode 100644 index 0000000..f36cd86 --- /dev/null +++ b/288_Schedule_Tela/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/ProdutoBean2.java @@ -0,0 +1,86 @@ +package br.pro.delfino.drogaria.bean; + +import java.io.Serializable; +import java.util.List; + +import javax.annotation.PostConstruct; +import javax.faces.bean.ManagedBean; +import javax.faces.bean.ViewScoped; + +import org.omnifaces.util.Messages; + +import br.pro.delfino.drogaria.dao.FabricanteDAO; +import br.pro.delfino.drogaria.dao.ProdutoDAO; +import br.pro.delfino.drogaria.domain.Fabricante; +import br.pro.delfino.drogaria.domain.Produto; + +@SuppressWarnings("serial") +@ManagedBean +@ViewScoped +public class ProdutoBean2 implements Serializable { + private Produto produto; + private Long codigoProduto; + + private List fabricantes; + private List produtos; + + private FabricanteDAO fabricanteDAO; + private ProdutoDAO produtoDAO; + + public Produto getProduto() { + return produto; + } + + public void setProduto(Produto produto) { + this.produto = produto; + } + + public Long getCodigoProduto() { + return codigoProduto; + } + + public void setCodigoProduto(Long codigoProduto) { + this.codigoProduto = codigoProduto; + } + + public void setFabricantes(List fabricantes) { + this.fabricantes = fabricantes; + } + + public List getFabricantes() { + return fabricantes; + } + public List getProdutos() { + return produtos; + } + + public void setProdutos(List produtos) { + this.produtos = produtos; + } + + @PostConstruct + public void iniciar(){ + fabricanteDAO = new FabricanteDAO(); + produtoDAO = new ProdutoDAO(); + } + + public void listar() { + try { + produtos = produtoDAO.listar("descricao"); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar listar os produtos"); + erro.printStackTrace(); + } + } + + public void carregarEdicao(){ + try { + produto = produtoDAO.buscar(codigoProduto); + + fabricantes = fabricanteDAO.listar("descricao"); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar carregar os dados para edição"); + erro.printStackTrace(); + } + } +} diff --git a/288_Schedule_Tela/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/UsuarioBean.java b/288_Schedule_Tela/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/UsuarioBean.java new file mode 100644 index 0000000..f526df8 --- /dev/null +++ b/288_Schedule_Tela/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/UsuarioBean.java @@ -0,0 +1,90 @@ +package br.pro.delfino.drogaria.bean; + +import java.io.Serializable; +import java.util.List; + +import javax.annotation.PostConstruct; +import javax.faces.bean.ManagedBean; +import javax.faces.bean.ViewScoped; + +import org.omnifaces.util.Messages; + +import br.pro.delfino.drogaria.dao.PessoaDAO; +import br.pro.delfino.drogaria.dao.UsuarioDAO; +import br.pro.delfino.drogaria.domain.Pessoa; +import br.pro.delfino.drogaria.domain.Usuario; + +@SuppressWarnings("serial") +@ManagedBean +@ViewScoped +public class UsuarioBean implements Serializable { + private Usuario usuario; + + private List pessoas; + private List usuarios; + + public Usuario getUsuario() { + return usuario; + } + + public void setUsuario(Usuario usuario) { + this.usuario = usuario; + } + + public List getPessoas() { + return pessoas; + } + + public void setPessoas(List pessoas) { + this.pessoas = pessoas; + } + + public List getUsuarios() { + return usuarios; + } + + public void setUsuarios(List usuarios) { + this.usuarios = usuarios; + } + + @PostConstruct + public void listar(){ + try{ + UsuarioDAO usuarioDAO = new UsuarioDAO(); + usuarios = usuarioDAO.listar("tipo"); + }catch(RuntimeException erro){ + Messages.addGlobalError("Ocorreu um erro ao tentar listar os usuários"); + erro.printStackTrace(); + } + } + + public void novo() { + try { + usuario = new Usuario(); + + PessoaDAO pessoaDAO = new PessoaDAO(); + pessoas = pessoaDAO.listar("nome"); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar criar um novo usuário"); + erro.printStackTrace(); + } + } + + public void salvar() { + try { + UsuarioDAO usuarioDAO = new UsuarioDAO(); + usuarioDAO.merge(usuario); + + usuario = new Usuario(); + usuarios = usuarioDAO.listar("tipo"); + + PessoaDAO pessoaDAO = new PessoaDAO(); + pessoas = pessoaDAO.listar("nome"); + + Messages.addGlobalInfo("Usuário salvo com sucesso"); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar salvar o usuário"); + erro.printStackTrace(); + } + } +} diff --git a/288_Schedule_Tela/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/VendaBean.java b/288_Schedule_Tela/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/VendaBean.java new file mode 100644 index 0000000..ada8ff2 --- /dev/null +++ b/288_Schedule_Tela/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/VendaBean.java @@ -0,0 +1,186 @@ +package br.pro.delfino.drogaria.bean; + +import java.io.Serializable; +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +import javax.annotation.PostConstruct; +import javax.faces.bean.ManagedBean; +import javax.faces.bean.ViewScoped; +import javax.faces.event.ActionEvent; + +import org.omnifaces.util.Messages; + +import br.pro.delfino.drogaria.dao.ClienteDAO; +import br.pro.delfino.drogaria.dao.FuncionarioDAO; +import br.pro.delfino.drogaria.dao.ProdutoDAO; +import br.pro.delfino.drogaria.dao.VendaDAO; +import br.pro.delfino.drogaria.domain.Cliente; +import br.pro.delfino.drogaria.domain.Funcionario; +import br.pro.delfino.drogaria.domain.ItemVenda; +import br.pro.delfino.drogaria.domain.Produto; +import br.pro.delfino.drogaria.domain.Venda; + +@SuppressWarnings("serial") +@ManagedBean +@ViewScoped +public class VendaBean implements Serializable { + private Venda venda; + + private List produtos; + private List itensVenda; + private List clientes; + private List funcionarios; + + public Venda getVenda() { + return venda; + } + + public void setVenda(Venda venda) { + this.venda = venda; + } + + public List getProdutos() { + return produtos; + } + + public void setProdutos(List produtos) { + this.produtos = produtos; + } + + public List getItensVenda() { + return itensVenda; + } + + public void setItensVenda(List itensVenda) { + this.itensVenda = itensVenda; + } + + public List getClientes() { + return clientes; + } + + public void setClientes(List clientes) { + this.clientes = clientes; + } + + public List getFuncionarios() { + return funcionarios; + } + + public void setFuncionarios(List funcionarios) { + this.funcionarios = funcionarios; + } + + @PostConstruct + public void novo() { + try { + venda = new Venda(); + venda.setPrecoTotal(new BigDecimal("0.00")); + + ProdutoDAO produtoDAO = new ProdutoDAO(); + produtos = produtoDAO.listar("descricao"); + + itensVenda = new ArrayList<>(); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar carregar a tela de vendas"); + erro.printStackTrace(); + } + } + + public void adicionar(ActionEvent evento) { + Produto produto = (Produto) evento.getComponent().getAttributes().get("produtoSelecionado"); + + int achou = -1; + for (int posicao = 0; posicao < itensVenda.size(); posicao++) { + if (itensVenda.get(posicao).getProduto().equals(produto)) { + achou = posicao; + } + } + + if (achou < 0) { + ItemVenda itemVenda = new ItemVenda(); + itemVenda.setPrecoParcial(produto.getPreco()); + itemVenda.setProduto(produto); + itemVenda.setQuantidade(new Short("1")); + + itensVenda.add(itemVenda); + } else { + ItemVenda itemVenda = itensVenda.get(achou); + itemVenda.setQuantidade(new Short(itemVenda.getQuantidade() + 1 + "")); + itemVenda.setPrecoParcial(produto.getPreco().multiply(new BigDecimal(itemVenda.getQuantidade()))); + } + + calcular(); + } + + public void remover(ActionEvent evento) { + ItemVenda itemVenda = (ItemVenda) evento.getComponent().getAttributes().get("itemSelecionado"); + + int achou = -1; + for (int posicao = 0; posicao < itensVenda.size(); posicao++) { + if (itensVenda.get(posicao).getProduto().equals(itemVenda.getProduto())) { + achou = posicao; + } + } + + if (achou > -1) { + itensVenda.remove(achou); + } + + calcular(); + } + + public void calcular() { + venda.setPrecoTotal(new BigDecimal("0.00")); + + for (int posicao = 0; posicao < itensVenda.size(); posicao++) { + ItemVenda itemVenda = itensVenda.get(posicao); + venda.setPrecoTotal(venda.getPrecoTotal().add(itemVenda.getPrecoParcial())); + } + } + + public void finalizar() { + try { + venda.setHorario(new Date()); + venda.setCliente(null); + venda.setFuncionario(null); + + FuncionarioDAO funcionarioDAO = new FuncionarioDAO(); + funcionarios = funcionarioDAO.listarOrdenado(); + + ClienteDAO clienteDAO = new ClienteDAO(); + clientes = clienteDAO.listarOrdenado(); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar finalizar a venda"); + erro.printStackTrace(); + } + } + + public void salvar() { + try { + if(venda.getPrecoTotal().signum() == 0){ + Messages.addGlobalError("Informe pelo menos um item para a venda"); + return; + } + + VendaDAO vendaDAO = new VendaDAO(); + vendaDAO.salvar(venda, itensVenda); + + venda = new Venda(); + venda.setPrecoTotal(new BigDecimal("0.00")); + + ProdutoDAO produtoDAO = new ProdutoDAO(); + produtos = produtoDAO.listar("descricao"); + + itensVenda = new ArrayList<>(); + + Messages.addGlobalInfo("Venda realizada com sucesso"); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar salvar a venda"); + erro.printStackTrace(); + } + } +} diff --git a/288_Schedule_Tela/Drogaria/src/main/java/br/pro/delfino/drogaria/converter/UpperCaseConverter.java b/288_Schedule_Tela/Drogaria/src/main/java/br/pro/delfino/drogaria/converter/UpperCaseConverter.java new file mode 100644 index 0000000..8a5d259 --- /dev/null +++ b/288_Schedule_Tela/Drogaria/src/main/java/br/pro/delfino/drogaria/converter/UpperCaseConverter.java @@ -0,0 +1,28 @@ +package br.pro.delfino.drogaria.converter; + +import javax.faces.component.UIComponent; +import javax.faces.context.FacesContext; +import javax.faces.convert.Converter; +import javax.faces.convert.FacesConverter; + +@FacesConverter("upperCaseConverter") +public class UpperCaseConverter implements Converter { + + @Override + public Object getAsObject(FacesContext context, UIComponent component, String value) { + if (value == null) { + return null; + } else { + return value.toUpperCase(); + } + } + + @Override + public String getAsString(FacesContext context, UIComponent component, Object value) { + if (value == null) { + return ""; + } else { + return value.toString(); + } + } +} diff --git a/288_Schedule_Tela/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/CaixaDAO.java b/288_Schedule_Tela/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/CaixaDAO.java new file mode 100644 index 0000000..fd8acd7 --- /dev/null +++ b/288_Schedule_Tela/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/CaixaDAO.java @@ -0,0 +1,26 @@ +package br.pro.delfino.drogaria.dao; + +import java.util.Date; + +import org.hibernate.Criteria; +import org.hibernate.Session; +import org.hibernate.criterion.Restrictions; + +import br.pro.delfino.drogaria.domain.Caixa; +import br.pro.delfino.drogaria.util.HibernateUtil; + +public class CaixaDAO extends GenericDAO { + public Caixa buscar(Date dataAbertura) { + Session sessao = HibernateUtil.getFabricaDeSessoes().openSession(); + try { + Criteria consulta = sessao.createCriteria(Caixa.class); + consulta.add(Restrictions.eq("dataAbertura", dataAbertura)); + Caixa resultado = (Caixa) consulta.uniqueResult(); + return resultado; + } catch (RuntimeException erro) { + throw erro; + } finally { + sessao.close(); + } + } +} diff --git a/288_Schedule_Tela/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/CidadeDAO.java b/288_Schedule_Tela/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/CidadeDAO.java new file mode 100644 index 0000000..e685e93 --- /dev/null +++ b/288_Schedule_Tela/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/CidadeDAO.java @@ -0,0 +1,29 @@ +package br.pro.delfino.drogaria.dao; + +import java.util.List; + +import org.hibernate.Criteria; +import org.hibernate.Session; +import org.hibernate.criterion.Order; +import org.hibernate.criterion.Restrictions; + +import br.pro.delfino.drogaria.domain.Cidade; +import br.pro.delfino.drogaria.util.HibernateUtil; + +public class CidadeDAO extends GenericDAO { + @SuppressWarnings("unchecked") + public List buscarPorEstado(Long estadoCodigo) { + Session sessao = HibernateUtil.getFabricaDeSessoes().openSession(); + try { + Criteria consulta = sessao.createCriteria(Cidade.class); + consulta.add(Restrictions.eq("estado.codigo", estadoCodigo)); + consulta.addOrder(Order.asc("nome")); + List resultado = consulta.list(); + return resultado; + } catch (RuntimeException erro) { + throw erro; + } finally { + sessao.close(); + } + } +} \ No newline at end of file diff --git a/288_Schedule_Tela/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/ClienteDAO.java b/288_Schedule_Tela/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/ClienteDAO.java new file mode 100644 index 0000000..e9796b5 --- /dev/null +++ b/288_Schedule_Tela/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/ClienteDAO.java @@ -0,0 +1,28 @@ +package br.pro.delfino.drogaria.dao; + +import java.util.List; + +import org.hibernate.Criteria; +import org.hibernate.Session; +import org.hibernate.criterion.Order; + +import br.pro.delfino.drogaria.domain.Cliente; +import br.pro.delfino.drogaria.util.HibernateUtil; + +public class ClienteDAO extends GenericDAO { + @SuppressWarnings("unchecked") + public List listarOrdenado() { + Session sessao = HibernateUtil.getFabricaDeSessoes().openSession(); + try { + Criteria consulta = sessao.createCriteria(Cliente.class); + consulta.createAlias("pessoa", "p"); + consulta.addOrder(Order.asc("p.nome")); + List resultado = consulta.list(); + return resultado; + } catch (RuntimeException erro) { + throw erro; + } finally { + sessao.close(); + } + } +} diff --git a/288_Schedule_Tela/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/EstadoDAO.java b/288_Schedule_Tela/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/EstadoDAO.java new file mode 100644 index 0000000..32b4a79 --- /dev/null +++ b/288_Schedule_Tela/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/EstadoDAO.java @@ -0,0 +1,7 @@ +package br.pro.delfino.drogaria.dao; + +import br.pro.delfino.drogaria.domain.Estado; + +public class EstadoDAO extends GenericDAO { + +} diff --git a/288_Schedule_Tela/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/FabricanteDAO.java b/288_Schedule_Tela/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/FabricanteDAO.java new file mode 100644 index 0000000..8b7f946 --- /dev/null +++ b/288_Schedule_Tela/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/FabricanteDAO.java @@ -0,0 +1,7 @@ +package br.pro.delfino.drogaria.dao; + +import br.pro.delfino.drogaria.domain.Fabricante; + +public class FabricanteDAO extends GenericDAO { + +} diff --git a/288_Schedule_Tela/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/FuncionarioDAO.java b/288_Schedule_Tela/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/FuncionarioDAO.java new file mode 100644 index 0000000..2b3114d --- /dev/null +++ b/288_Schedule_Tela/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/FuncionarioDAO.java @@ -0,0 +1,28 @@ +package br.pro.delfino.drogaria.dao; + +import java.util.List; + +import org.hibernate.Criteria; +import org.hibernate.Session; +import org.hibernate.criterion.Order; + +import br.pro.delfino.drogaria.domain.Funcionario; +import br.pro.delfino.drogaria.util.HibernateUtil; + +public class FuncionarioDAO extends GenericDAO{ + @SuppressWarnings("unchecked") + public List listarOrdenado() { + Session sessao = HibernateUtil.getFabricaDeSessoes().openSession(); + try { + Criteria consulta = sessao.createCriteria(Funcionario.class); + consulta.createAlias("pessoa", "p"); + consulta.addOrder(Order.asc("p.nome")); + List resultado = consulta.list(); + return resultado; + } catch (RuntimeException erro) { + throw erro; + } finally { + sessao.close(); + } + } +} diff --git a/288_Schedule_Tela/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/GenericDAO.java b/288_Schedule_Tela/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/GenericDAO.java new file mode 100644 index 0000000..b505cd3 --- /dev/null +++ b/288_Schedule_Tela/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/GenericDAO.java @@ -0,0 +1,140 @@ +package br.pro.delfino.drogaria.dao; + +import java.lang.reflect.ParameterizedType; +import java.util.List; + +import org.hibernate.Criteria; +import org.hibernate.Session; +import org.hibernate.Transaction; +import org.hibernate.criterion.Order; +import org.hibernate.criterion.Restrictions; + +import br.pro.delfino.drogaria.util.HibernateUtil; + +public class GenericDAO { + private Class classe; + + @SuppressWarnings("unchecked") + public GenericDAO() { + this.classe = (Class) ((ParameterizedType) getClass().getGenericSuperclass()) + .getActualTypeArguments()[0]; + } + + public void salvar(Entidade entidade) { + Session sessao = HibernateUtil.getFabricaDeSessoes().openSession(); + Transaction transacao = null; + + try { + transacao = sessao.beginTransaction(); + sessao.save(entidade); + transacao.commit(); + } catch (RuntimeException erro) { + if (transacao != null) { + transacao.rollback(); + } + throw erro; + } finally { + sessao.close(); + } + } + + @SuppressWarnings("unchecked") + public List listar() { + Session sessao = HibernateUtil.getFabricaDeSessoes().openSession(); + try { + Criteria consulta = sessao.createCriteria(classe); + List resultado = consulta.list(); + return resultado; + } catch (RuntimeException erro) { + throw erro; + } finally { + sessao.close(); + } + } + + @SuppressWarnings("unchecked") + public List listar(String campoOrdenacao) { + Session sessao = HibernateUtil.getFabricaDeSessoes().openSession(); + try { + Criteria consulta = sessao.createCriteria(classe); + consulta.addOrder(Order.asc(campoOrdenacao)); + List resultado = consulta.list(); + return resultado; + } catch (RuntimeException erro) { + throw erro; + } finally { + sessao.close(); + } + } + + @SuppressWarnings("unchecked") + public Entidade buscar(Long codigo) { + Session sessao = HibernateUtil.getFabricaDeSessoes().openSession(); + try { + Criteria consulta = sessao.createCriteria(classe); + consulta.add(Restrictions.idEq(codigo)); + Entidade resultado = (Entidade) consulta.uniqueResult(); + return resultado; + } catch (RuntimeException erro) { + throw erro; + } finally { + sessao.close(); + } + } + + public void excluir(Entidade entidade) { + Session sessao = HibernateUtil.getFabricaDeSessoes().openSession(); + Transaction transacao = null; + + try { + transacao = sessao.beginTransaction(); + sessao.delete(entidade); + transacao.commit(); + } catch (RuntimeException erro) { + if (transacao != null) { + transacao.rollback(); + } + throw erro; + } finally { + sessao.close(); + } + } + + public void editar(Entidade entidade) { + Session sessao = HibernateUtil.getFabricaDeSessoes().openSession(); + Transaction transacao = null; + + try { + transacao = sessao.beginTransaction(); + sessao.update(entidade); + transacao.commit(); + } catch (RuntimeException erro) { + if (transacao != null) { + transacao.rollback(); + } + throw erro; + } finally { + sessao.close(); + } + } + + @SuppressWarnings("unchecked") + public Entidade merge(Entidade entidade) { + Session sessao = HibernateUtil.getFabricaDeSessoes().openSession(); + Transaction transacao = null; + + try { + transacao = sessao.beginTransaction(); + Entidade retorno = (Entidade) sessao.merge(entidade); + transacao.commit(); + return retorno; + } catch (RuntimeException erro) { + if (transacao != null) { + transacao.rollback(); + } + throw erro; + } finally { + sessao.close(); + } + } +} diff --git a/288_Schedule_Tela/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/HistoricoDAO.java b/288_Schedule_Tela/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/HistoricoDAO.java new file mode 100644 index 0000000..7b30017 --- /dev/null +++ b/288_Schedule_Tela/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/HistoricoDAO.java @@ -0,0 +1,7 @@ +package br.pro.delfino.drogaria.dao; + +import br.pro.delfino.drogaria.domain.Historico; + +public class HistoricoDAO extends GenericDAO { + +} diff --git a/288_Schedule_Tela/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/MovimentacaoDAO.java b/288_Schedule_Tela/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/MovimentacaoDAO.java new file mode 100644 index 0000000..b6560e2 --- /dev/null +++ b/288_Schedule_Tela/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/MovimentacaoDAO.java @@ -0,0 +1,7 @@ +package br.pro.delfino.drogaria.dao; + +import br.pro.delfino.drogaria.domain.Movimentacao; + +public class MovimentacaoDAO extends GenericDAO { + +} diff --git a/288_Schedule_Tela/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/PessoaDAO.java b/288_Schedule_Tela/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/PessoaDAO.java new file mode 100644 index 0000000..bbd116b --- /dev/null +++ b/288_Schedule_Tela/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/PessoaDAO.java @@ -0,0 +1,7 @@ +package br.pro.delfino.drogaria.dao; + +import br.pro.delfino.drogaria.domain.Pessoa; + +public class PessoaDAO extends GenericDAO { + +} diff --git a/288_Schedule_Tela/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/ProdutoDAO.java b/288_Schedule_Tela/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/ProdutoDAO.java new file mode 100644 index 0000000..4c1e751 --- /dev/null +++ b/288_Schedule_Tela/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/ProdutoDAO.java @@ -0,0 +1,7 @@ +package br.pro.delfino.drogaria.dao; + +import br.pro.delfino.drogaria.domain.Produto; + +public class ProdutoDAO extends GenericDAO { + +} diff --git a/288_Schedule_Tela/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/UsuarioDAO.java b/288_Schedule_Tela/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/UsuarioDAO.java new file mode 100644 index 0000000..b4bf524 --- /dev/null +++ b/288_Schedule_Tela/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/UsuarioDAO.java @@ -0,0 +1,33 @@ +package br.pro.delfino.drogaria.dao; + +import org.apache.shiro.crypto.hash.SimpleHash; +import org.hibernate.Criteria; +import org.hibernate.Session; +import org.hibernate.criterion.Restrictions; + +import br.pro.delfino.drogaria.domain.Usuario; +import br.pro.delfino.drogaria.util.HibernateUtil; + +public class UsuarioDAO extends GenericDAO { + public Usuario autenticar(String cpf, String senha) { + Session sessao = HibernateUtil.getFabricaDeSessoes().openSession(); + + try{ + Criteria consulta = sessao.createCriteria(Usuario.class); + consulta.createAlias("pessoa", "p"); + + consulta.add(Restrictions.eq("p.cpf", cpf)); + + SimpleHash hash = new SimpleHash("md5", senha); + consulta.add(Restrictions.eq("senha", hash.toHex())); + + Usuario resultado = (Usuario) consulta.uniqueResult(); + + return resultado; + } catch (RuntimeException erro) { + throw erro; + } finally { + sessao.close(); + } + } +} diff --git a/288_Schedule_Tela/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/VendaDAO.java b/288_Schedule_Tela/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/VendaDAO.java new file mode 100644 index 0000000..3428939 --- /dev/null +++ b/288_Schedule_Tela/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/VendaDAO.java @@ -0,0 +1,49 @@ +package br.pro.delfino.drogaria.dao; + +import java.util.List; + +import org.hibernate.Session; +import org.hibernate.Transaction; + +import br.pro.delfino.drogaria.domain.ItemVenda; +import br.pro.delfino.drogaria.domain.Produto; +import br.pro.delfino.drogaria.domain.Venda; +import br.pro.delfino.drogaria.util.HibernateUtil; + +public class VendaDAO extends GenericDAO { + public void salvar(Venda venda, List itensVenda) { + Session sessao = HibernateUtil.getFabricaDeSessoes().openSession(); + Transaction transacao = null; + + try { + transacao = sessao.beginTransaction(); + + sessao.save(venda); + + for (int posicao = 0; posicao < itensVenda.size(); posicao++) { + ItemVenda itemVenda = itensVenda.get(posicao); + itemVenda.setVenda(venda); + + sessao.save(itemVenda); + + Produto produto = itemVenda.getProduto(); + int quantidade = produto.getQuantidade() - itemVenda.getQuantidade(); + if (quantidade >= 0) { + produto.setQuantidade(new Short(quantidade + "")); + sessao.update(produto); + } else { + throw new RuntimeException("Quantidade insuficiente em estoque"); + } + } + + transacao.commit(); + } catch (RuntimeException erro) { + if (transacao != null) { + transacao.rollback(); + } + throw erro; + } finally { + sessao.close(); + } + } +} diff --git a/288_Schedule_Tela/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Caixa.java b/288_Schedule_Tela/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Caixa.java new file mode 100644 index 0000000..61fc69b --- /dev/null +++ b/288_Schedule_Tela/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Caixa.java @@ -0,0 +1,62 @@ +package br.pro.delfino.drogaria.domain; + +import java.math.BigDecimal; +import java.util.Date; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.JoinColumn; +import javax.persistence.ManyToOne; +import javax.persistence.Temporal; +import javax.persistence.TemporalType; + +@SuppressWarnings("serial") +@Entity +public class Caixa extends GenericDomain { + @Column(nullable = false, unique = true) + @Temporal(TemporalType.DATE) + private Date dataAbertura; + + @Column(nullable = true) + @Temporal(TemporalType.DATE) + private Date dataFechamento; + + @Column(nullable = false, precision = 7, scale = 2) + private BigDecimal valorAbertura; + + @ManyToOne + @JoinColumn(nullable = false) + private Funcionario funcionario; + + public Date getDataAbertura() { + return dataAbertura; + } + + public void setDataAbertura(Date dataAbertura) { + this.dataAbertura = dataAbertura; + } + + public Date getDataFechamento() { + return dataFechamento; + } + + public void setDataFechamento(Date dataFechamento) { + this.dataFechamento = dataFechamento; + } + + public BigDecimal getValorAbertura() { + return valorAbertura; + } + + public void setValorAbertura(BigDecimal valorAbertura) { + this.valorAbertura = valorAbertura; + } + + public Funcionario getFuncionario() { + return funcionario; + } + + public void setFuncionario(Funcionario funcionario) { + this.funcionario = funcionario; + } +} diff --git a/288_Schedule_Tela/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Cidade.java b/288_Schedule_Tela/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Cidade.java new file mode 100644 index 0000000..cf94ede --- /dev/null +++ b/288_Schedule_Tela/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Cidade.java @@ -0,0 +1,33 @@ +package br.pro.delfino.drogaria.domain; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.JoinColumn; +import javax.persistence.ManyToOne; + +@SuppressWarnings("serial") +@Entity +public class Cidade extends GenericDomain { + @Column(length = 50, nullable = false) + private String nome; + + @ManyToOne + @JoinColumn(nullable = false) + private Estado estado; + + public String getNome() { + return nome; + } + + public void setNome(String nome) { + this.nome = nome; + } + + public Estado getEstado() { + return estado; + } + + public void setEstado(Estado estado) { + this.estado = estado; + } +} diff --git a/288_Schedule_Tela/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Cliente.java b/288_Schedule_Tela/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Cliente.java new file mode 100644 index 0000000..6ace9b9 --- /dev/null +++ b/288_Schedule_Tela/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Cliente.java @@ -0,0 +1,49 @@ +package br.pro.delfino.drogaria.domain; + +import java.util.Date; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.JoinColumn; +import javax.persistence.OneToOne; +import javax.persistence.Temporal; +import javax.persistence.TemporalType; + +@SuppressWarnings("serial") +@Entity +public class Cliente extends GenericDomain { + @Column(nullable = false) + @Temporal(TemporalType.DATE) + private Date dataCadastro; + + @Column(nullable = false) + private Boolean liberado; + + @OneToOne + @JoinColumn(nullable = false) + private Pessoa pessoa; + + public Date getDataCadastro() { + return dataCadastro; + } + + public void setDataCadastro(Date dataCadastro) { + this.dataCadastro = dataCadastro; + } + + public Boolean getLiberado() { + return liberado; + } + + public void setLiberado(Boolean liberado) { + this.liberado = liberado; + } + + public Pessoa getPessoa() { + return pessoa; + } + + public void setPessoa(Pessoa pessoa) { + this.pessoa = pessoa; + } +} diff --git a/288_Schedule_Tela/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Estado.java b/288_Schedule_Tela/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Estado.java new file mode 100644 index 0000000..1c06b98 --- /dev/null +++ b/288_Schedule_Tela/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Estado.java @@ -0,0 +1,30 @@ +package br.pro.delfino.drogaria.domain; + +import javax.persistence.Column; +import javax.persistence.Entity; + +@SuppressWarnings("serial") +@Entity +public class Estado extends GenericDomain { + @Column(length = 2, nullable = false) + private String sigla; + + @Column(length = 50, nullable = false) + private String nome; + + public String getSigla() { + return sigla; + } + + public void setSigla(String sigla) { + this.sigla = sigla; + } + + public String getNome() { + return nome; + } + + public void setNome(String nome) { + this.nome = nome; + } +} diff --git a/288_Schedule_Tela/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Fabricante.java b/288_Schedule_Tela/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Fabricante.java new file mode 100644 index 0000000..02eab8c --- /dev/null +++ b/288_Schedule_Tela/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Fabricante.java @@ -0,0 +1,19 @@ +package br.pro.delfino.drogaria.domain; + +import javax.persistence.Column; +import javax.persistence.Entity; + +@SuppressWarnings("serial") +@Entity +public class Fabricante extends GenericDomain { + @Column(length = 50, nullable = false) + private String descricao; + + public String getDescricao() { + return descricao; + } + + public void setDescricao(String descricao) { + this.descricao = descricao; + } +} diff --git a/288_Schedule_Tela/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Funcionario.java b/288_Schedule_Tela/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Funcionario.java new file mode 100644 index 0000000..dec9378 --- /dev/null +++ b/288_Schedule_Tela/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Funcionario.java @@ -0,0 +1,49 @@ +package br.pro.delfino.drogaria.domain; + +import java.util.Date; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.JoinColumn; +import javax.persistence.OneToOne; +import javax.persistence.Temporal; +import javax.persistence.TemporalType; + +@SuppressWarnings("serial") +@Entity +public class Funcionario extends GenericDomain { + @Column(length = 15, nullable = false) + private String carteiraTrabalho; + + @Column(nullable = false) + @Temporal(TemporalType.DATE) + private Date dataAdmissao; + + @OneToOne + @JoinColumn(nullable = false) + private Pessoa pessoa; + + public String getCarteiraTrabalho() { + return carteiraTrabalho; + } + + public void setCarteiraTrabalho(String carteiraTrabalho) { + this.carteiraTrabalho = carteiraTrabalho; + } + + public Date getDataAdmissao() { + return dataAdmissao; + } + + public void setDataAdmissao(Date dataAdmissao) { + this.dataAdmissao = dataAdmissao; + } + + public Pessoa getPessoa() { + return pessoa; + } + + public void setPessoa(Pessoa pessoa) { + this.pessoa = pessoa; + } +} diff --git a/288_Schedule_Tela/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/GenericDomain.java b/288_Schedule_Tela/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/GenericDomain.java new file mode 100644 index 0000000..f37efea --- /dev/null +++ b/288_Schedule_Tela/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/GenericDomain.java @@ -0,0 +1,54 @@ +package br.pro.delfino.drogaria.domain; + +import java.io.Serializable; + +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Id; +import javax.persistence.MappedSuperclass; + +@SuppressWarnings("serial") +@MappedSuperclass +public class GenericDomain implements Serializable { + @Id + @GeneratedValue(strategy = GenerationType.AUTO) + private Long codigo; + + public Long getCodigo() { + return codigo; + } + + public void setCodigo(Long codigo) { + this.codigo = codigo; + } + + @Override + public String toString() { + return String.format("%s[codigo=%d]", getClass().getSimpleName(), getCodigo()); + } + + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + ((codigo == null) ? 0 : codigo.hashCode()); + return result; + } + + @Override + public boolean equals(Object obj) { + if (this == obj) + return true; + if (obj == null) + return false; + if (getClass() != obj.getClass()) + return false; + GenericDomain other = (GenericDomain) obj; + if (codigo == null) { + if (other.codigo != null) + return false; + } else if (!codigo.equals(other.codigo)) + return false; + return true; + } +} diff --git a/288_Schedule_Tela/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Historico.java b/288_Schedule_Tela/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Historico.java new file mode 100644 index 0000000..dafdaeb --- /dev/null +++ b/288_Schedule_Tela/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Historico.java @@ -0,0 +1,49 @@ +package br.pro.delfino.drogaria.domain; + +import java.util.Date; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.JoinColumn; +import javax.persistence.ManyToOne; +import javax.persistence.Temporal; +import javax.persistence.TemporalType; + +@SuppressWarnings("serial") +@Entity +public class Historico extends GenericDomain { + @Column(nullable = false) + @Temporal(TemporalType.TIMESTAMP) + private Date horario; + + @Column(nullable = false, length = 500) + private String observacoes; + + @ManyToOne + @JoinColumn(nullable = false) + private Produto produto; + + public Date getHorario() { + return horario; + } + + public void setHorario(Date horario) { + this.horario = horario; + } + + public String getObservacoes() { + return observacoes; + } + + public void setObservacoes(String observacoes) { + this.observacoes = observacoes; + } + + public Produto getProduto() { + return produto; + } + + public void setProduto(Produto produto) { + this.produto = produto; + } +} diff --git a/288_Schedule_Tela/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/ItemVenda.java b/288_Schedule_Tela/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/ItemVenda.java new file mode 100644 index 0000000..590ab26 --- /dev/null +++ b/288_Schedule_Tela/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/ItemVenda.java @@ -0,0 +1,58 @@ +package br.pro.delfino.drogaria.domain; + +import java.math.BigDecimal; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.JoinColumn; +import javax.persistence.ManyToOne; + +@SuppressWarnings("serial") +@Entity +public class ItemVenda extends GenericDomain { + @Column(nullable = false) + private Short quantidade; + + @Column(nullable = false, precision = 7, scale = 2) + private BigDecimal precoParcial; + + @ManyToOne + @JoinColumn(nullable = false) + private Produto produto; + + @ManyToOne + @JoinColumn(nullable = false) + private Venda venda; + + public Short getQuantidade() { + return quantidade; + } + + public void setQuantidade(Short quantidade) { + this.quantidade = quantidade; + } + + public BigDecimal getPrecoParcial() { + return precoParcial; + } + + public void setPrecoParcial(BigDecimal precoParcial) { + this.precoParcial = precoParcial; + } + + public Produto getProduto() { + return produto; + } + + public void setProduto(Produto produto) { + this.produto = produto; + } + + public Venda getVenda() { + return venda; + } + + public void setVenda(Venda venda) { + this.venda = venda; + } +} diff --git a/288_Schedule_Tela/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Movimentacao.java b/288_Schedule_Tela/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Movimentacao.java new file mode 100644 index 0000000..c3d6319 --- /dev/null +++ b/288_Schedule_Tela/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Movimentacao.java @@ -0,0 +1,50 @@ +package br.pro.delfino.drogaria.domain; + +import java.math.BigDecimal; +import java.util.Date; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.JoinColumn; +import javax.persistence.ManyToOne; +import javax.persistence.Temporal; +import javax.persistence.TemporalType; + +@SuppressWarnings("serial") +@Entity +public class Movimentacao extends GenericDomain { + @Column(nullable = false) + @Temporal(TemporalType.TIMESTAMP) + private Date horario; + + @Column(nullable = false, precision = 7, scale = 2) + private BigDecimal valor; + + @ManyToOne + @JoinColumn(nullable = false) + private Caixa caixa; + + public Date getHorario() { + return horario; + } + + public void setHorario(Date horario) { + this.horario = horario; + } + + public BigDecimal getValor() { + return valor; + } + + public void setValor(BigDecimal valor) { + this.valor = valor; + } + + public Caixa getCaixa() { + return caixa; + } + + public void setCaixa(Caixa caixa) { + this.caixa = caixa; + } +} diff --git a/288_Schedule_Tela/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Pessoa.java b/288_Schedule_Tela/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Pessoa.java new file mode 100644 index 0000000..f354001 --- /dev/null +++ b/288_Schedule_Tela/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Pessoa.java @@ -0,0 +1,143 @@ +package br.pro.delfino.drogaria.domain; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.JoinColumn; +import javax.persistence.ManyToOne; + +@SuppressWarnings("serial") +@Entity +public class Pessoa extends GenericDomain { + @Column(length = 50, nullable = false) + private String nome; + + @Column(length = 14, nullable = false) + private String cpf; + + @Column(length = 12, nullable = false) + private String rg; + + @Column(length = 100, nullable = false) + private String rua; + + @Column(nullable = false) + private Short numero; + + @Column(length = 30, nullable = false) + private String bairro; + + @Column(length = 10, nullable = false) + private String cep; + + @Column(length = 10) + private String complemento; + + @Column(length = 13, nullable = false) + private String telefone; + + @Column(length = 14, nullable = false) + private String celular; + + @Column(length = 100, nullable = false) + private String email; + + @ManyToOne + @JoinColumn(nullable = false) + private Cidade cidade; + + public String getNome() { + return nome; + } + + public void setNome(String nome) { + this.nome = nome; + } + + public String getCpf() { + return cpf; + } + + public void setCpf(String cpf) { + this.cpf = cpf; + } + + public String getRg() { + return rg; + } + + public void setRg(String rg) { + this.rg = rg; + } + + public String getRua() { + return rua; + } + + public void setRua(String rua) { + this.rua = rua; + } + + public Short getNumero() { + return numero; + } + + public void setNumero(Short numero) { + this.numero = numero; + } + + public String getBairro() { + return bairro; + } + + public void setBairro(String bairro) { + this.bairro = bairro; + } + + public String getCep() { + return cep; + } + + public void setCep(String cep) { + this.cep = cep; + } + + public String getComplemento() { + return complemento; + } + + public void setComplemento(String complemento) { + this.complemento = complemento; + } + + public String getTelefone() { + return telefone; + } + + public void setTelefone(String telefone) { + this.telefone = telefone; + } + + public String getCelular() { + return celular; + } + + public void setCelular(String celular) { + this.celular = celular; + } + + public String getEmail() { + return email; + } + + public void setEmail(String email) { + this.email = email; + } + + public Cidade getCidade() { + return cidade; + } + + public void setCidade(Cidade cidade) { + this.cidade = cidade; + } +} diff --git a/288_Schedule_Tela/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Produto.java b/288_Schedule_Tela/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Produto.java new file mode 100644 index 0000000..82049b0 --- /dev/null +++ b/288_Schedule_Tela/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Produto.java @@ -0,0 +1,69 @@ +package br.pro.delfino.drogaria.domain; + +import java.math.BigDecimal; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.JoinColumn; +import javax.persistence.ManyToOne; +import javax.persistence.Transient; + +@SuppressWarnings("serial") +@Entity +public class Produto extends GenericDomain { + @Column(length = 80, nullable = false) + private String descricao; + + @Column(nullable = false) + private Short quantidade; + + @Column(nullable = false, precision = 6, scale = 2) + private BigDecimal preco; + + @ManyToOne + @JoinColumn(nullable = false) + private Fabricante fabricante; + + @Transient + private String caminho; + + public String getDescricao() { + return descricao; + } + + public void setDescricao(String descricao) { + this.descricao = descricao; + } + + public Short getQuantidade() { + return quantidade; + } + + public void setQuantidade(Short quantidade) { + this.quantidade = quantidade; + } + + public BigDecimal getPreco() { + return preco; + } + + public void setPreco(BigDecimal preco) { + this.preco = preco; + } + + public Fabricante getFabricante() { + return fabricante; + } + + public void setFabricante(Fabricante fabricante) { + this.fabricante = fabricante; + } + + public String getCaminho() { + return caminho; + } + + public void setCaminho(String caminho) { + this.caminho = caminho; + } +} diff --git a/288_Schedule_Tela/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Usuario.java b/288_Schedule_Tela/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Usuario.java new file mode 100644 index 0000000..ae51941 --- /dev/null +++ b/288_Schedule_Tela/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Usuario.java @@ -0,0 +1,93 @@ +package br.pro.delfino.drogaria.domain; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.JoinColumn; +import javax.persistence.OneToOne; +import javax.persistence.Transient; + +@SuppressWarnings("serial") +@Entity +public class Usuario extends GenericDomain { + @Column(length = 32, nullable = false) + private String senha; + + @Transient + private String senhaSemCriptografia; + + @Column(nullable = false) + private Character tipo; + + @Column(nullable = false) + private Boolean ativo; + + @OneToOne + @JoinColumn(nullable = false) + private Pessoa pessoa; + + public String getSenha() { + return senha; + } + + public void setSenha(String senha) { + this.senha = senha; + } + + public String getSenhaSemCriptografia() { + return senhaSemCriptografia; + } + + public void setSenhaSemCriptografia(String senhaSemCriptografia) { + this.senhaSemCriptografia = senhaSemCriptografia; + } + + public Character getTipo() { + return tipo; + } + + @Transient + public String getTipoFormatado() { + String tipoFormatado = null; + + if (tipo == 'A') { + tipoFormatado = "Administrador"; + } else if (tipo == 'B') { + tipoFormatado = "Balconista"; + } else if (tipo == 'G') { + tipoFormatado = "Gerente"; + } + + return tipoFormatado; + } + + public void setTipo(Character tipo) { + this.tipo = tipo; + } + + public Boolean getAtivo() { + return ativo; + } + + @Transient + public String getAtivoFormatado(){ + String ativoFormatado = "Não"; + + if(ativo){ + ativoFormatado = "Sim"; + } + + return ativoFormatado; + } + + public void setAtivo(Boolean ativo) { + this.ativo = ativo; + } + + public Pessoa getPessoa() { + return pessoa; + } + + public void setPessoa(Pessoa pessoa) { + this.pessoa = pessoa; + } +} diff --git a/288_Schedule_Tela/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Venda.java b/288_Schedule_Tela/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Venda.java new file mode 100644 index 0000000..3f4c226 --- /dev/null +++ b/288_Schedule_Tela/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Venda.java @@ -0,0 +1,61 @@ +package br.pro.delfino.drogaria.domain; + +import java.math.BigDecimal; +import java.util.Date; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.JoinColumn; +import javax.persistence.ManyToOne; +import javax.persistence.Temporal; +import javax.persistence.TemporalType; + +@SuppressWarnings("serial") +@Entity +public class Venda extends GenericDomain { + @Column(nullable = false) + @Temporal(TemporalType.TIMESTAMP) + private Date horario; + + @Column(nullable = false, precision = 7, scale = 2) + private BigDecimal precoTotal; + + @ManyToOne + private Cliente cliente; + + @ManyToOne + @JoinColumn(nullable = false) + private Funcionario funcionario; + + public Date getHorario() { + return horario; + } + + public void setHorario(Date horario) { + this.horario = horario; + } + + public BigDecimal getPrecoTotal() { + return precoTotal; + } + + public void setPrecoTotal(BigDecimal precoTotal) { + this.precoTotal = precoTotal; + } + + public Cliente getCliente() { + return cliente; + } + + public void setCliente(Cliente cliente) { + this.cliente = cliente; + } + + public Funcionario getFuncionario() { + return funcionario; + } + + public void setFuncionario(Funcionario funcionario) { + this.funcionario = funcionario; + } +} diff --git a/288_Schedule_Tela/Drogaria/src/main/java/br/pro/delfino/drogaria/service/DrogariaService.java b/288_Schedule_Tela/Drogaria/src/main/java/br/pro/delfino/drogaria/service/DrogariaService.java new file mode 100644 index 0000000..fbb1f2b --- /dev/null +++ b/288_Schedule_Tela/Drogaria/src/main/java/br/pro/delfino/drogaria/service/DrogariaService.java @@ -0,0 +1,13 @@ +package br.pro.delfino.drogaria.service; + +import javax.ws.rs.GET; +import javax.ws.rs.Path; + +// http://localhost:8080/Drogaria/rest/drogaria +@Path("drogaria") +public class DrogariaService { + @GET + public String exibir(){ + return "Curso de Java"; + } +} diff --git a/288_Schedule_Tela/Drogaria/src/main/java/br/pro/delfino/drogaria/service/FabricanteService.java b/288_Schedule_Tela/Drogaria/src/main/java/br/pro/delfino/drogaria/service/FabricanteService.java new file mode 100644 index 0000000..1dbc0d1 --- /dev/null +++ b/288_Schedule_Tela/Drogaria/src/main/java/br/pro/delfino/drogaria/service/FabricanteService.java @@ -0,0 +1,85 @@ +package br.pro.delfino.drogaria.service; + +import java.util.List; + +import javax.ws.rs.DELETE; +import javax.ws.rs.GET; +import javax.ws.rs.POST; +import javax.ws.rs.PUT; +import javax.ws.rs.Path; +import javax.ws.rs.PathParam; + +import com.google.gson.Gson; + +import br.pro.delfino.drogaria.dao.FabricanteDAO; +import br.pro.delfino.drogaria.domain.Fabricante; + +@Path("fabricante") +public class FabricanteService { + // http://127.0.0.1:8080/Drogaria/rest/fabricante + @GET + public String listar() { + FabricanteDAO fabricanteDAO = new FabricanteDAO(); + List fabricantes = fabricanteDAO.listar("descricao"); + + Gson gson = new Gson(); + String json = gson.toJson(fabricantes); + + return json; + } + + // http://127.0.0.1:8080/Drogaria/rest/fabricante/{codigo} + // http://127.0.0.1:8080/Drogaria/rest/fabricante/10 + @GET + @Path("{codigo}") + public String buscar(@PathParam("codigo") Long codigo) { + FabricanteDAO fabricanteDAO = new FabricanteDAO(); + Fabricante fabricante = fabricanteDAO.buscar(codigo); + + Gson gson = new Gson(); + String json = gson.toJson(fabricante); + + return json; + } + + // http://127.0.0.1:8080/Drogaria/rest/fabricante + @POST + public String salvar(String json) { + Gson gson = new Gson(); + Fabricante fabricante = gson.fromJson(json, Fabricante.class); + + FabricanteDAO fabricanteDAO = new FabricanteDAO(); + fabricanteDAO.merge(fabricante); + + String jsonSaida = gson.toJson(fabricante); + return jsonSaida; + } + + // http://127.0.0.1:8080/Drogaria/rest/fabricante + @PUT + public String editar(String json) { + Gson gson = new Gson(); + Fabricante fabricante = gson.fromJson(json, Fabricante.class); + + FabricanteDAO fabricanteDAO = new FabricanteDAO(); + fabricanteDAO.editar(fabricante); + + String jsonSaida = gson.toJson(fabricante); + return jsonSaida; + } + + // http://127.0.0.1:8080/Drogaria/rest/fabricante/{codigo} + // http://127.0.0.1:8080/Drogaria/rest/fabricante/10 + @DELETE + @Path("{codigo}") + public String excluir(@PathParam("codigo") Long codigo){ + FabricanteDAO fabricanteDAO = new FabricanteDAO(); + + Fabricante fabricante = fabricanteDAO.buscar(codigo); + fabricanteDAO.excluir(fabricante); + + Gson gson = new Gson(); + String saida = gson.toJson(fabricante); + return saida; + } +} diff --git a/288_Schedule_Tela/Drogaria/src/main/java/br/pro/delfino/drogaria/service/ProdutoService.java b/288_Schedule_Tela/Drogaria/src/main/java/br/pro/delfino/drogaria/service/ProdutoService.java new file mode 100644 index 0000000..4dfdf40 --- /dev/null +++ b/288_Schedule_Tela/Drogaria/src/main/java/br/pro/delfino/drogaria/service/ProdutoService.java @@ -0,0 +1,39 @@ +package br.pro.delfino.drogaria.service; + +import java.util.List; + +import javax.ws.rs.GET; +import javax.ws.rs.POST; +import javax.ws.rs.Path; + +import com.google.gson.Gson; + +import br.pro.delfino.drogaria.dao.ProdutoDAO; +import br.pro.delfino.drogaria.domain.Produto; + +// http://127.0.0.1:8080/Drogaria/rest/produto +@Path("produto") +public class ProdutoService { + @GET + public String listar(){ + ProdutoDAO produtoDAO = new ProdutoDAO(); + List produtos = produtoDAO.listar("descricao"); + + Gson gson = new Gson(); + String json = gson.toJson(produtos); + + return json; + } + + @POST + public String salvar (String json){ + Gson gson = new Gson(); + Produto produto = gson.fromJson(json, Produto.class); + + ProdutoDAO produtoDAO = new ProdutoDAO(); + produto = produtoDAO.merge(produto); + + String jsonSaida = gson.toJson(produto); + return jsonSaida; + } +} diff --git a/288_Schedule_Tela/Drogaria/src/main/java/br/pro/delfino/drogaria/util/DrogariaResourceConfig.java b/288_Schedule_Tela/Drogaria/src/main/java/br/pro/delfino/drogaria/util/DrogariaResourceConfig.java new file mode 100644 index 0000000..2c997a9 --- /dev/null +++ b/288_Schedule_Tela/Drogaria/src/main/java/br/pro/delfino/drogaria/util/DrogariaResourceConfig.java @@ -0,0 +1,13 @@ +package br.pro.delfino.drogaria.util; + +import javax.ws.rs.ApplicationPath; + +import org.glassfish.jersey.server.ResourceConfig; + +//http://localhost:8080/Drogaria/rest +@ApplicationPath("rest") +public class DrogariaResourceConfig extends ResourceConfig { + public DrogariaResourceConfig(){ + packages("br.pro.delfino.drogaria.service"); + } +} diff --git a/288_Schedule_Tela/Drogaria/src/main/java/br/pro/delfino/drogaria/util/HibernateContexto.java b/288_Schedule_Tela/Drogaria/src/main/java/br/pro/delfino/drogaria/util/HibernateContexto.java new file mode 100644 index 0000000..71869d7 --- /dev/null +++ b/288_Schedule_Tela/Drogaria/src/main/java/br/pro/delfino/drogaria/util/HibernateContexto.java @@ -0,0 +1,18 @@ +package br.pro.delfino.drogaria.util; + +import javax.servlet.ServletContextEvent; +import javax.servlet.ServletContextListener; + +public class HibernateContexto implements ServletContextListener { + + @Override + public void contextDestroyed(ServletContextEvent event) { + HibernateUtil.getFabricaDeSessoes().close(); + } + + @Override + public void contextInitialized(ServletContextEvent event) { + HibernateUtil.getFabricaDeSessoes(); + } + +} diff --git a/288_Schedule_Tela/Drogaria/src/main/java/br/pro/delfino/drogaria/util/HibernateUtil.java b/288_Schedule_Tela/Drogaria/src/main/java/br/pro/delfino/drogaria/util/HibernateUtil.java new file mode 100644 index 0000000..693551b --- /dev/null +++ b/288_Schedule_Tela/Drogaria/src/main/java/br/pro/delfino/drogaria/util/HibernateUtil.java @@ -0,0 +1,47 @@ +package br.pro.delfino.drogaria.util; + +import java.sql.Connection; +import java.sql.SQLException; + +import org.hibernate.Session; +import org.hibernate.SessionFactory; +import org.hibernate.boot.registry.StandardServiceRegistryBuilder; +import org.hibernate.cfg.Configuration; +import org.hibernate.jdbc.ReturningWork; +import org.hibernate.service.ServiceRegistry; + +public class HibernateUtil { + private static SessionFactory fabricaDeSessoes = criarFabricaDeSessoes(); + + public static SessionFactory getFabricaDeSessoes() { + return fabricaDeSessoes; + } + + public static Connection getConexao(){ + Session sessao = fabricaDeSessoes.openSession(); + + Connection conexao = sessao.doReturningWork(new ReturningWork() { + @Override + public Connection execute(Connection conn) throws SQLException { + return conn; + } + }); + + return conexao; + } + + private static SessionFactory criarFabricaDeSessoes() { + try { + Configuration configuracao = new Configuration().configure(); + + ServiceRegistry registro = new StandardServiceRegistryBuilder().applySettings(configuracao.getProperties()).build(); + + SessionFactory fabrica = configuracao.buildSessionFactory(registro); + + return fabrica; + } catch (Throwable ex) { + System.err.println("A fábrica de sessões não pode ser criada." + ex); + throw new ExceptionInInitializerError(ex); + } + } +} diff --git a/288_Schedule_Tela/Drogaria/src/main/resources/hibernate.cfg.xml b/288_Schedule_Tela/Drogaria/src/main/resources/hibernate.cfg.xml new file mode 100644 index 0000000..65f392e --- /dev/null +++ b/288_Schedule_Tela/Drogaria/src/main/resources/hibernate.cfg.xml @@ -0,0 +1,51 @@ + + + + + + + + + + com.mysql.jdbc.Driver + jdbc:mysql://127.0.0.1:3306/drogaria + root + q1w2e3r4 + + + 1 + + + org.hibernate.dialect.MySQL5InnoDBDialect + + + thread + + + org.hibernate.cache.internal.NoCacheProvider + + + true + + + update + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/288_Schedule_Tela/Drogaria/src/main/webapp/WEB-INF/springsecurity.taglib.xml b/288_Schedule_Tela/Drogaria/src/main/webapp/WEB-INF/springsecurity.taglib.xml new file mode 100644 index 0000000..9d6938c --- /dev/null +++ b/288_Schedule_Tela/Drogaria/src/main/webapp/WEB-INF/springsecurity.taglib.xml @@ -0,0 +1,32 @@ + + + + http://www.springframework.org/security/tags + + authorize + org.springframework.faces.security.FaceletsAuthorizeTagHandler + + + areAllGranted + org.springframework.faces.security.FaceletsAuthorizeTagUtils + boolean areAllGranted(java.lang.String) + + + areAnyGranted + org.springframework.faces.security.FaceletsAuthorizeTagUtils + boolean areAnyGranted(java.lang.String) + + + areNotGranted + org.springframework.faces.security.FaceletsAuthorizeTagUtils + boolean areNotGranted(java.lang.String) + + + isAllowed + org.springframework.faces.security.FaceletsAuthorizeTagUtils + boolean isAllowed(java.lang.String, + java.lang.String) + + \ No newline at end of file diff --git a/288_Schedule_Tela/Drogaria/src/main/webapp/WEB-INF/web.xml b/288_Schedule_Tela/Drogaria/src/main/webapp/WEB-INF/web.xml new file mode 100644 index 0000000..6b0cf5d --- /dev/null +++ b/288_Schedule_Tela/Drogaria/src/main/webapp/WEB-INF/web.xml @@ -0,0 +1,48 @@ + + + + + Drogaria + + + + pages/principal.xhtml + + + + + javax.faces.PROJECT_STAGE + Development + + + + + primefaces.THEME + blitzer + + + + + primefaces.UPLOADER + native + + + + + Faces Servlet + javax.faces.webapp.FacesServlet + 1 + + + Faces Servlet + *.xhtml + + + + + br.pro.delfino.drogaria.util.HibernateContexto + + \ No newline at end of file diff --git a/288_Schedule_Tela/Drogaria/src/main/webapp/pages/autenticacao.xhtml b/288_Schedule_Tela/Drogaria/src/main/webapp/pages/autenticacao.xhtml new file mode 100644 index 0000000..e41a833 --- /dev/null +++ b/288_Schedule_Tela/Drogaria/src/main/webapp/pages/autenticacao.xhtml @@ -0,0 +1,36 @@ + + + + + + Autenticação + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/288_Schedule_Tela/Drogaria/src/main/webapp/pages/caixa.xhtml b/288_Schedule_Tela/Drogaria/src/main/webapp/pages/caixa.xhtml new file mode 100644 index 0000000..546bf10 --- /dev/null +++ b/288_Schedule_Tela/Drogaria/src/main/webapp/pages/caixa.xhtml @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/288_Schedule_Tela/Drogaria/src/main/webapp/pages/cidades.xhtml b/288_Schedule_Tela/Drogaria/src/main/webapp/pages/cidades.xhtml new file mode 100644 index 0000000..504f3a3 --- /dev/null +++ b/288_Schedule_Tela/Drogaria/src/main/webapp/pages/cidades.xhtml @@ -0,0 +1,100 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/288_Schedule_Tela/Drogaria/src/main/webapp/pages/clientes.xhtml b/288_Schedule_Tela/Drogaria/src/main/webapp/pages/clientes.xhtml new file mode 100644 index 0000000..4e3cfb5 --- /dev/null +++ b/288_Schedule_Tela/Drogaria/src/main/webapp/pages/clientes.xhtml @@ -0,0 +1,94 @@ + + + + + + Clientes + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/288_Schedule_Tela/Drogaria/src/main/webapp/pages/estados.xhtml b/288_Schedule_Tela/Drogaria/src/main/webapp/pages/estados.xhtml new file mode 100644 index 0000000..0cddf5e --- /dev/null +++ b/288_Schedule_Tela/Drogaria/src/main/webapp/pages/estados.xhtml @@ -0,0 +1,90 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/288_Schedule_Tela/Drogaria/src/main/webapp/pages/fabricantes.xhtml b/288_Schedule_Tela/Drogaria/src/main/webapp/pages/fabricantes.xhtml new file mode 100644 index 0000000..3904db0 --- /dev/null +++ b/288_Schedule_Tela/Drogaria/src/main/webapp/pages/fabricantes.xhtml @@ -0,0 +1,78 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/288_Schedule_Tela/Drogaria/src/main/webapp/pages/historico.xhtml b/288_Schedule_Tela/Drogaria/src/main/webapp/pages/historico.xhtml new file mode 100644 index 0000000..184a864 --- /dev/null +++ b/288_Schedule_Tela/Drogaria/src/main/webapp/pages/historico.xhtml @@ -0,0 +1,64 @@ + + + + + + Histórico + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/288_Schedule_Tela/Drogaria/src/main/webapp/pages/pessoas.xhtml b/288_Schedule_Tela/Drogaria/src/main/webapp/pages/pessoas.xhtml new file mode 100644 index 0000000..7d68e8c --- /dev/null +++ b/288_Schedule_Tela/Drogaria/src/main/webapp/pages/pessoas.xhtml @@ -0,0 +1,162 @@ + + + + + + Pessoas + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/288_Schedule_Tela/Drogaria/src/main/webapp/pages/principal.xhtml b/288_Schedule_Tela/Drogaria/src/main/webapp/pages/principal.xhtml new file mode 100644 index 0000000..726842c --- /dev/null +++ b/288_Schedule_Tela/Drogaria/src/main/webapp/pages/principal.xhtml @@ -0,0 +1,14 @@ + + + + + + + + + \ No newline at end of file diff --git a/288_Schedule_Tela/Drogaria/src/main/webapp/pages/produtos.xhtml b/288_Schedule_Tela/Drogaria/src/main/webapp/pages/produtos.xhtml new file mode 100644 index 0000000..56c5db4 --- /dev/null +++ b/288_Schedule_Tela/Drogaria/src/main/webapp/pages/produtos.xhtml @@ -0,0 +1,141 @@ + + + + + + Produtos + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/288_Schedule_Tela/Drogaria/src/main/webapp/pages/produtosEdicao.xhtml b/288_Schedule_Tela/Drogaria/src/main/webapp/pages/produtosEdicao.xhtml new file mode 100644 index 0000000..9eae78a --- /dev/null +++ b/288_Schedule_Tela/Drogaria/src/main/webapp/pages/produtosEdicao.xhtml @@ -0,0 +1,67 @@ + + + + + + + + + + + + Produtos + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/288_Schedule_Tela/Drogaria/src/main/webapp/pages/produtosListagem.xhtml b/288_Schedule_Tela/Drogaria/src/main/webapp/pages/produtosListagem.xhtml new file mode 100644 index 0000000..2b30417 --- /dev/null +++ b/288_Schedule_Tela/Drogaria/src/main/webapp/pages/produtosListagem.xhtml @@ -0,0 +1,59 @@ + + + + + + + + + + + Produtos + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/288_Schedule_Tela/Drogaria/src/main/webapp/pages/testeJSF.xhtml b/288_Schedule_Tela/Drogaria/src/main/webapp/pages/testeJSF.xhtml new file mode 100644 index 0000000..c20659b --- /dev/null +++ b/288_Schedule_Tela/Drogaria/src/main/webapp/pages/testeJSF.xhtml @@ -0,0 +1,12 @@ + + + + + + Teste JSF + + + + + \ No newline at end of file diff --git a/288_Schedule_Tela/Drogaria/src/main/webapp/pages/testePrimeFaces.xhtml b/288_Schedule_Tela/Drogaria/src/main/webapp/pages/testePrimeFaces.xhtml new file mode 100644 index 0000000..6c4d434 --- /dev/null +++ b/288_Schedule_Tela/Drogaria/src/main/webapp/pages/testePrimeFaces.xhtml @@ -0,0 +1,14 @@ + + + + + + Teste PrimeFaces + + + + + \ No newline at end of file diff --git a/288_Schedule_Tela/Drogaria/src/main/webapp/pages/usuarios.xhtml b/288_Schedule_Tela/Drogaria/src/main/webapp/pages/usuarios.xhtml new file mode 100644 index 0000000..45dd761 --- /dev/null +++ b/288_Schedule_Tela/Drogaria/src/main/webapp/pages/usuarios.xhtml @@ -0,0 +1,97 @@ + + + + + + Usuários + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/288_Schedule_Tela/Drogaria/src/main/webapp/pages/vendas.xhtml b/288_Schedule_Tela/Drogaria/src/main/webapp/pages/vendas.xhtml new file mode 100644 index 0000000..4485892 --- /dev/null +++ b/288_Schedule_Tela/Drogaria/src/main/webapp/pages/vendas.xhtml @@ -0,0 +1,156 @@ + + + + + + Vendas + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/288_Schedule_Tela/Drogaria/src/main/webapp/reports/estados.jasper b/288_Schedule_Tela/Drogaria/src/main/webapp/reports/estados.jasper new file mode 100644 index 0000000..96a1278 Binary files /dev/null and b/288_Schedule_Tela/Drogaria/src/main/webapp/reports/estados.jasper differ diff --git a/288_Schedule_Tela/Drogaria/src/main/webapp/reports/estados.jrxml b/288_Schedule_Tela/Drogaria/src/main/webapp/reports/estados.jrxml new file mode 100644 index 0000000..76da981 --- /dev/null +++ b/288_Schedule_Tela/Drogaria/src/main/webapp/reports/estados.jrxml @@ -0,0 +1,102 @@ + + + + + + + + + + + + + + + + + + + + <band height="80" splitType="Stretch"> + <image hAlign="Center" vAlign="Middle"> + <reportElement x="0" y="0" width="555" height="80" uuid="6f3208e9-d291-48b3-b13d-3ec9ef72cd3e"> + <property name="com.jaspersoft.studio.unit.width" value="pixel"/> + </reportElement> + <imageExpression><![CDATA["C:/Programação Web com Java/Workspace/Drogaria/src/main/webapp/resources/images/banner.jpg"]]></imageExpression> + </image> + </band> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/288_Schedule_Tela/Drogaria/src/main/webapp/reports/produtos.jasper b/288_Schedule_Tela/Drogaria/src/main/webapp/reports/produtos.jasper new file mode 100644 index 0000000..ad55e5f Binary files /dev/null and b/288_Schedule_Tela/Drogaria/src/main/webapp/reports/produtos.jasper differ diff --git a/288_Schedule_Tela/Drogaria/src/main/webapp/reports/produtos.jrxml b/288_Schedule_Tela/Drogaria/src/main/webapp/reports/produtos.jrxml new file mode 100644 index 0000000..800aed0 --- /dev/null +++ b/288_Schedule_Tela/Drogaria/src/main/webapp/reports/produtos.jrxml @@ -0,0 +1,130 @@ + + + + + + + + + + + + + + + + + + + + + <band height="79" splitType="Stretch"> + <image hAlign="Center"> + <reportElement x="0" y="0" width="555" height="79" uuid="727feda0-73ba-4c27-aa2c-a431492bd3d6"> + <property name="com.jaspersoft.studio.unit.width" value="pixel"/> + </reportElement> + <imageExpression><![CDATA["C:/Programação Web com Java/Workspace/Drogaria/src/main/webapp/resources/images/banner.jpg"]]></imageExpression> + </image> + </band> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/288_Schedule_Tela/Drogaria/src/main/webapp/resources/css/estilos.css b/288_Schedule_Tela/Drogaria/src/main/webapp/resources/css/estilos.css new file mode 100644 index 0000000..4acdd7f --- /dev/null +++ b/288_Schedule_Tela/Drogaria/src/main/webapp/resources/css/estilos.css @@ -0,0 +1,19 @@ +@CHARSET "UTF-8"; + +.imagemCentralizada { + display: block; + margin-left: auto; + margin-right: auto; +} + +.divTopo { + padding-bottom: 5px; +} + +.divCabecalho { + padding-bottom: 5px; +} + +.ui-widget, .ui-widget .ui-widget { + font-size: 100% !important; +} \ No newline at end of file diff --git a/288_Schedule_Tela/Drogaria/src/main/webapp/resources/images/banner.jpg b/288_Schedule_Tela/Drogaria/src/main/webapp/resources/images/banner.jpg new file mode 100644 index 0000000..f58cc21 Binary files /dev/null and b/288_Schedule_Tela/Drogaria/src/main/webapp/resources/images/banner.jpg differ diff --git a/288_Schedule_Tela/Drogaria/src/main/webapp/resources/js/scripts.js b/288_Schedule_Tela/Drogaria/src/main/webapp/resources/js/scripts.js new file mode 100644 index 0000000..e39ad9b --- /dev/null +++ b/288_Schedule_Tela/Drogaria/src/main/webapp/resources/js/scripts.js @@ -0,0 +1,26 @@ +PrimeFaces.locales['pt_BR'] = { + closeText: 'Fechar', + prevText: 'Anterior', + nextText: 'Próximo', + currentText: 'Começo', + monthNames: ['Janeiro','Fevereiro','Março','Abril','Maio','Junho','Julho','Agosto','Setembro','Outubro','Novembro','Dezembro'], + monthNamesShort: ['Jan','Fev','Mar','Abr','Mai','Jun', 'Jul','Ago','Set','Out','Nov','Dez'], + dayNames: ['Domingo','Segunda','Terça','Quarta','Quinta','Sexta','Sábado'], + dayNamesShort: ['Dom','Seg','Ter','Qua','Qui','Sex','Sáb'], + dayNamesMin: ['D','S','T','Q','Q','S','S'], + weekHeader: 'Semana', + firstDay: 0, + isRTL: false, + showMonthAfterYear: false, + yearSuffix: '', + timeOnlyTitle: 'Só Horas', + timeText: 'Tempo', + hourText: 'Hora', + minuteText: 'Minuto', + secondText: 'Segundo', + ampm: false, + month: 'Mês', + week: 'Semana', + day: 'Dia', + allDayText : 'Todo o Dia' +}; \ No newline at end of file diff --git a/288_Schedule_Tela/Drogaria/src/main/webapp/templates/modelo.xhtml b/288_Schedule_Tela/Drogaria/src/main/webapp/templates/modelo.xhtml new file mode 100644 index 0000000..62d3d1c --- /dev/null +++ b/288_Schedule_Tela/Drogaria/src/main/webapp/templates/modelo.xhtml @@ -0,0 +1,55 @@ + + + + + + SiGDro + + + + + +
+
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+
+ \ No newline at end of file diff --git a/288_Schedule_Tela/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/CaixaDAOTest.java b/288_Schedule_Tela/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/CaixaDAOTest.java new file mode 100644 index 0000000..b5e6156 --- /dev/null +++ b/288_Schedule_Tela/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/CaixaDAOTest.java @@ -0,0 +1,33 @@ +package br.pro.delfino.drogaria.dao; + +import java.math.BigDecimal; +import java.text.ParseException; +import java.text.SimpleDateFormat; + +import org.junit.Assert; +import org.junit.Ignore; +import org.junit.Test; + +import br.pro.delfino.drogaria.domain.Caixa; + +public class CaixaDAOTest { + @Test + @Ignore + public void salvar() throws ParseException { + Caixa caixa = new Caixa(); + caixa.setDataAbertura(new SimpleDateFormat("dd/MM/yyyy").parse("14/12/2015")); + caixa.setValorAbertura(new BigDecimal("100.00")); + + CaixaDAO caixaDAO = new CaixaDAO(); + caixaDAO.salvar(caixa); + } + + @Test + @Ignore + public void buscar() throws ParseException { + CaixaDAO caixaDAO = new CaixaDAO(); + Caixa caixa = caixaDAO.buscar(new SimpleDateFormat("dd/MM/yyyy").parse("13/12/2015")); + System.out.println(caixa); + Assert.assertNull(caixa); + } +} diff --git a/288_Schedule_Tela/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/CidadeDAOTest.java b/288_Schedule_Tela/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/CidadeDAOTest.java new file mode 100644 index 0000000..ec59599 --- /dev/null +++ b/288_Schedule_Tela/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/CidadeDAOTest.java @@ -0,0 +1,130 @@ +package br.pro.delfino.drogaria.dao; + +import java.util.List; + +import org.junit.Ignore; +import org.junit.Test; + +import br.pro.delfino.drogaria.domain.Cidade; +import br.pro.delfino.drogaria.domain.Estado; + +public class CidadeDAOTest { + @Test + @Ignore + public void salvar() { + Long codigoEstado = 1L; + + EstadoDAO estadoDAO = new EstadoDAO(); + + Estado estado = estadoDAO.buscar(codigoEstado); + + Cidade cidade = new Cidade(); + cidade.setNome("Marília"); + cidade.setEstado(estado); + + CidadeDAO cidadeDAO = new CidadeDAO(); + cidadeDAO.salvar(cidade); + } + + @Test + @Ignore + public void listar() { + CidadeDAO cidadeDAO = new CidadeDAO(); + List resultado = cidadeDAO.listar(); + + for (Cidade cidade : resultado) { + System.out.println("Código da Cidade: " + cidade.getCodigo()); + System.out.println("Nome da Cidade: " + cidade.getNome()); + System.out.println("Código do Estado: " + cidade.getEstado().getCodigo()); + System.out.println("Sigla do Estado: " + cidade.getEstado().getSigla()); + System.out.println("Nome do Estado: " + cidade.getEstado().getNome()); + System.out.println(); + } + } + + @Test + @Ignore + public void buscar(){ + Long codigo = 7L; + + CidadeDAO cidadeDAO = new CidadeDAO(); + Cidade cidade = cidadeDAO.buscar(codigo); + + System.out.println("Código da Cidade: " + cidade.getCodigo()); + System.out.println("Nome da Cidade: " + cidade.getNome()); + System.out.println("Código do Estado: " + cidade.getEstado().getCodigo()); + System.out.println("Sigla do Estado: " + cidade.getEstado().getSigla()); + System.out.println("Nome do Estado: " + cidade.getEstado().getNome()); + } + + @Test + @Ignore + public void excluir(){ + Long codigo = 7L; + + CidadeDAO cidadeDAO = new CidadeDAO(); + Cidade cidade = cidadeDAO.buscar(codigo); + + cidadeDAO.excluir(cidade); + + System.out.println("Cidade Removida"); + System.out.println("Código da Cidade: " + cidade.getCodigo()); + System.out.println("Nome da Cidade: " + cidade.getNome()); + System.out.println("Código do Estado: " + cidade.getEstado().getCodigo()); + System.out.println("Sigla do Estado: " + cidade.getEstado().getSigla()); + System.out.println("Nome do Estado: " + cidade.getEstado().getNome()); + } + + @Test + @Ignore + public void editar(){ + Long codigoCidade = 6L; + Long codigoEstado = 11L; + + EstadoDAO estadoDAO = new EstadoDAO(); + Estado estado = estadoDAO.buscar(codigoEstado); + + System.out.println("Código do Estado: " + estado.getCodigo()); + System.out.println("Sigla do Estado: " + estado.getSigla()); + System.out.println("Nome do Estado: " + estado.getNome()); + + CidadeDAO cidadeDAO = new CidadeDAO(); + Cidade cidade = cidadeDAO.buscar(codigoCidade); + + System.out.println("Cidade A Ser Editada"); + System.out.println("Código da Cidade: " + cidade.getCodigo()); + System.out.println("Nome da Cidade: " + cidade.getNome()); + System.out.println("Código do Estado: " + cidade.getEstado().getCodigo()); + System.out.println("Sigla do Estado: " + cidade.getEstado().getSigla()); + System.out.println("Nome do Estado: " + cidade.getEstado().getNome()); + + cidade.setNome("Guarapuava"); + cidade.setEstado(estado); + + cidadeDAO.editar(cidade); + + System.out.println("Cidade Editada"); + System.out.println("Código da Cidade: " + cidade.getCodigo()); + System.out.println("Nome da Cidade: " + cidade.getNome()); + System.out.println("Código do Estado: " + cidade.getEstado().getCodigo()); + System.out.println("Sigla do Estado: " + cidade.getEstado().getSigla()); + System.out.println("Nome do Estado: " + cidade.getEstado().getNome()); + } + + @Test + public void buscarPorEstado() { + Long estadoCodigo = 3L; + + CidadeDAO cidadeDAO = new CidadeDAO(); + List resultado = cidadeDAO.buscarPorEstado(estadoCodigo); + + for (Cidade cidade : resultado) { + System.out.println("Código da Cidade: " + cidade.getCodigo()); + System.out.println("Nome da Cidade: " + cidade.getNome()); + System.out.println("Código do Estado: " + cidade.getEstado().getCodigo()); + System.out.println("Sigla do Estado: " + cidade.getEstado().getSigla()); + System.out.println("Nome do Estado: " + cidade.getEstado().getNome()); + System.out.println(); + } + } +} diff --git a/288_Schedule_Tela/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/ClienteDAOTest.java b/288_Schedule_Tela/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/ClienteDAOTest.java new file mode 100644 index 0000000..4d557d9 --- /dev/null +++ b/288_Schedule_Tela/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/ClienteDAOTest.java @@ -0,0 +1,29 @@ +package br.pro.delfino.drogaria.dao; + +import java.text.ParseException; +import java.text.SimpleDateFormat; + +import org.junit.Ignore; +import org.junit.Test; + +import br.pro.delfino.drogaria.domain.Cliente; +import br.pro.delfino.drogaria.domain.Pessoa; + +public class ClienteDAOTest { + @Test + @Ignore + public void salvar() throws ParseException { + PessoaDAO pessoaDAO = new PessoaDAO(); + Pessoa pessoa = pessoaDAO.buscar(2L); + + Cliente cliente = new Cliente(); + cliente.setDataCadastro(new SimpleDateFormat("dd/MM/yyyy").parse("09/06/2015")); + cliente.setLiberado(false); + cliente.setPessoa(pessoa); + + ClienteDAO clienteDAO = new ClienteDAO(); + clienteDAO.salvar(cliente); + + System.out.println("Cliente salvo com sucesso."); + } +} diff --git a/288_Schedule_Tela/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/EstadoDAOTest.java b/288_Schedule_Tela/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/EstadoDAOTest.java new file mode 100644 index 0000000..f84a086 --- /dev/null +++ b/288_Schedule_Tela/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/EstadoDAOTest.java @@ -0,0 +1,88 @@ +package br.pro.delfino.drogaria.dao; + +import java.util.List; + +import org.junit.Ignore; +import org.junit.Test; + +import br.pro.delfino.drogaria.domain.Estado; + +public class EstadoDAOTest { + @Test + @Ignore + public void salvar() { + Estado estado = new Estado(); + estado.setNome("Rio Grande do Sul"); + estado.setSigla("RS"); + + EstadoDAO estadoDAO = new EstadoDAO(); + estadoDAO.salvar(estado); + } + + @Test + @Ignore + public void listar() { + EstadoDAO estadoDAO = new EstadoDAO(); + List resultado = estadoDAO.listar(); + + System.out.println("Total de Registros Encontrados: " + resultado.size()); + + for (Estado estado : resultado) { + System.out.println(estado.getCodigo() + " - " + estado.getSigla() + " - " + estado.getNome()); + } + } + + @Test + @Ignore + public void buscar(){ + Long codigo = 3L; + + EstadoDAO estadoDAO = new EstadoDAO(); + Estado estado = estadoDAO.buscar(codigo); + + if(estado == null){ + System.out.println("Nenhum registro encontrado"); + }else{ + System.out.println("Registro encontrado:"); + System.out.println(estado.getCodigo() + " - " + estado.getSigla() + " - " + estado.getNome()); + } + } + + @Test + @Ignore + public void excluir(){ + Long codigo = 1L; + EstadoDAO estadoDAO = new EstadoDAO(); + Estado estado = estadoDAO.buscar(codigo); + + if(estado == null){ + System.out.println("Nenhum registro encontrado"); + }else{ + estadoDAO.excluir(estado); + System.out.println("Registro removido:"); + System.out.println(estado.getCodigo() + " - " + estado.getSigla() + " - " + estado.getNome()); + } + } + + @Test + @Ignore + public void editar(){ + Long codigo = 10L; + EstadoDAO estadoDAO = new EstadoDAO(); + Estado estado = estadoDAO.buscar(codigo); + + if(estado == null){ + System.out.println("Nenhum registro encontrado"); + }else{ + System.out.println("Registro editado - Antes:"); + System.out.println(estado.getCodigo() + " - " + estado.getSigla() + " - " + estado.getNome()); + + estado.setNome("Santa Catarina"); + estado.setSigla("SC"); + estadoDAO.editar(estado); + + System.out.println("Registro editado - Depois:"); + System.out.println(estado.getCodigo() + " - " + estado.getSigla() + " - " + estado.getNome()); + } + } +} diff --git a/288_Schedule_Tela/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/FabricanteDAOTest.java b/288_Schedule_Tela/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/FabricanteDAOTest.java new file mode 100644 index 0000000..56fb124 --- /dev/null +++ b/288_Schedule_Tela/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/FabricanteDAOTest.java @@ -0,0 +1,63 @@ +package br.pro.delfino.drogaria.dao; + +import java.util.List; + +import org.junit.Ignore; +import org.junit.Test; + +import br.pro.delfino.drogaria.domain.Fabricante; + +public class FabricanteDAOTest { + @Test + @Ignore + public void salvar() { + Fabricante fabricante = new Fabricante(); + fabricante.setDescricao("Aché"); + + FabricanteDAO fabricanteDAO = new FabricanteDAO(); + fabricanteDAO.salvar(fabricante); + } + + @Test + @Ignore + public void listar() { + FabricanteDAO FabricanteDAO = new FabricanteDAO(); + List resultado = FabricanteDAO.listar(); + + System.out.println("Total de Registros Encontrados: " + resultado.size()); + + for (Fabricante fabricante : resultado) { + System.out.println(fabricante.getCodigo() + " - " + fabricante.getDescricao()); + } + } + + @Test + @Ignore + public void buscar(){ + Long codigo = 3L; + + FabricanteDAO fabricanteDAO = new FabricanteDAO(); + Fabricante fabricante = fabricanteDAO.buscar(codigo); + + if(fabricante == null){ + System.out.println("Nenhum registro encontrado"); + }else{ + System.out.println("Registro encontrado:"); + System.out.println(fabricante.getCodigo() + " - " + fabricante.getDescricao()); + } + } + + @Test + @Ignore + public void merge() { + //Fabricante fabricante = new Fabricante(); + //fabricante.setDescricao("Fabricante A"); + //FabricanteDAO fabricanteDAO = new FabricanteDAO(); + //fabricanteDAO.merge(fabricante); + + FabricanteDAO fabricanteDAO = new FabricanteDAO(); + Fabricante fabricante = fabricanteDAO.buscar(5L); + fabricante.setDescricao("Fabricante B"); + fabricanteDAO.merge(fabricante); + } +} diff --git a/288_Schedule_Tela/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/FuncionarioDAOTest.java b/288_Schedule_Tela/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/FuncionarioDAOTest.java new file mode 100644 index 0000000..06cfff7 --- /dev/null +++ b/288_Schedule_Tela/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/FuncionarioDAOTest.java @@ -0,0 +1,5 @@ +package br.pro.delfino.drogaria.dao; + +public class FuncionarioDAOTest { + +} diff --git a/288_Schedule_Tela/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/ProdutoDAOTest.java b/288_Schedule_Tela/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/ProdutoDAOTest.java new file mode 100644 index 0000000..36f8563 --- /dev/null +++ b/288_Schedule_Tela/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/ProdutoDAOTest.java @@ -0,0 +1,29 @@ +package br.pro.delfino.drogaria.dao; + +import java.math.BigDecimal; + +import org.junit.Ignore; +import org.junit.Test; + +import br.pro.delfino.drogaria.domain.Fabricante; +import br.pro.delfino.drogaria.domain.Produto; + +public class ProdutoDAOTest { + @Test + @Ignore + public void salvar(){ + FabricanteDAO fabricanteDAO = new FabricanteDAO(); + Fabricante fabricante = fabricanteDAO.buscar(new Long("3")); + + Produto produto = new Produto(); + produto.setDescricao("Cataflan 50mg com 20 Comprimidos"); + produto.setFabricante(fabricante); + produto.setPreco(new BigDecimal("13.70")); + produto.setQuantidade(new Short("7")); + + ProdutoDAO produtoDAO = new ProdutoDAO(); + produtoDAO.salvar(produto); + + System.out.println("Produto salvo com sucesso"); + } +} diff --git a/288_Schedule_Tela/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/UsuarioDAOTest.java b/288_Schedule_Tela/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/UsuarioDAOTest.java new file mode 100644 index 0000000..c567ec8 --- /dev/null +++ b/288_Schedule_Tela/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/UsuarioDAOTest.java @@ -0,0 +1,47 @@ +package br.pro.delfino.drogaria.dao; + +import org.apache.shiro.crypto.hash.SimpleHash; +import org.junit.Ignore; +import org.junit.Test; + +import br.pro.delfino.drogaria.domain.Pessoa; +import br.pro.delfino.drogaria.domain.Usuario; + +public class UsuarioDAOTest { + @Test + @Ignore + public void salvar(){ + PessoaDAO pessoaDAO = new PessoaDAO(); + Pessoa pessoa = pessoaDAO.buscar(3L); + + System.out.println("Pessoa Encontrada"); + System.out.println("Nome: " + pessoa.getNome()); + System.out.println("CPF: " + pessoa.getCpf()); + + Usuario usuario = new Usuario(); + usuario.setAtivo(true); + usuario.setPessoa(pessoa); + usuario.setSenhaSemCriptografia("q1w2e3r4"); + + SimpleHash hash = new SimpleHash("md5", usuario.getSenhaSemCriptografia()); + usuario.setSenha(hash.toHex()); + + usuario.setTipo('B'); + + UsuarioDAO usuarioDAO = new UsuarioDAO(); + usuarioDAO.salvar(usuario); + + System.out.println("Usuário salvo com sucesso."); + } + + @Test + public void autenticar(){ + String cpf = "999.999.999-99"; + String senha = "12345678"; + + UsuarioDAO usuarioDAO = new UsuarioDAO(); + Usuario usuario = usuarioDAO.autenticar(cpf, senha); + + System.out.println("Usuário autentica: " + usuario); + } +} diff --git a/288_Schedule_Tela/Drogaria/src/test/java/br/pro/delfino/drogaria/util/HibernateUtilTest.java b/288_Schedule_Tela/Drogaria/src/test/java/br/pro/delfino/drogaria/util/HibernateUtilTest.java new file mode 100644 index 0000000..75776e0 --- /dev/null +++ b/288_Schedule_Tela/Drogaria/src/test/java/br/pro/delfino/drogaria/util/HibernateUtilTest.java @@ -0,0 +1,13 @@ +package br.pro.delfino.drogaria.util; + +import org.hibernate.Session; +import org.junit.Test; + +public class HibernateUtilTest { + @Test + public void conectar(){ + Session sessao = HibernateUtil.getFabricaDeSessoes().openSession(); + sessao.close(); + HibernateUtil.getFabricaDeSessoes().close(); + } +} diff --git a/289_Schedule_Novo_Evento/Drogaria/.tern-project b/289_Schedule_Novo_Evento/Drogaria/.tern-project new file mode 100644 index 0000000..b6f48dd --- /dev/null +++ b/289_Schedule_Novo_Evento/Drogaria/.tern-project @@ -0,0 +1 @@ +{"ide":{},"libs":["ecma5","browser"],"plugins":{"guess-types":{},"angular":{}}} \ No newline at end of file diff --git a/289_Schedule_Novo_Evento/Drogaria/pom.xml b/289_Schedule_Novo_Evento/Drogaria/pom.xml new file mode 100644 index 0000000..39b1e60 --- /dev/null +++ b/289_Schedule_Novo_Evento/Drogaria/pom.xml @@ -0,0 +1,132 @@ + + 4.0.0 + br.pro.delfino.drogaria + Drogaria + 1.0 + war + + + + UTF-8 + + + + + + Drogaria + + + + + + org.apache.maven.plugins + maven-compiler-plugin + 3.3 + + 1.8 + 1.8 + + + + + + + + + + prime-repo + PrimeFaces Maven Repository + http://repository.primefaces.org + default + + + + + + + + org.hibernate + hibernate-core + 4.3.11.Final + + + + + mysql + mysql-connector-java + 5.1.36 + + + + + junit + junit + 4.12 + + + + + org.glassfish + javax.faces + 2.2.12 + + + + + org.primefaces + primefaces + 5.2 + + + + + org.primefaces.themes + all-themes + 1.0.10 + + + + + org.omnifaces + omnifaces + 1.11 + + + + + javax.servlet + javax.servlet-api + 3.1.0 + + + + + org.glassfish.jersey.containers + jersey-container-servlet + 2.22.1 + + + + + com.google.code.gson + gson + 2.4 + + + + + net.sf.jasperreports + jasperreports + 6.1.1 + + + + + org.apache.shiro + shiro-core + 1.2.4 + + + + \ No newline at end of file diff --git a/289_Schedule_Novo_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/AutenticacaoBean.java b/289_Schedule_Novo_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/AutenticacaoBean.java new file mode 100644 index 0000000..7e86b0d --- /dev/null +++ b/289_Schedule_Novo_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/AutenticacaoBean.java @@ -0,0 +1,60 @@ +package br.pro.delfino.drogaria.bean; + +import java.io.IOException; + +import javax.annotation.PostConstruct; +import javax.faces.bean.ManagedBean; +import javax.faces.bean.SessionScoped; + +import org.omnifaces.util.Faces; +import org.omnifaces.util.Messages; + +import br.pro.delfino.drogaria.dao.UsuarioDAO; +import br.pro.delfino.drogaria.domain.Pessoa; +import br.pro.delfino.drogaria.domain.Usuario; + +@ManagedBean +@SessionScoped +public class AutenticacaoBean { + private Usuario usuario; + private Usuario usuarioLogado; + + public Usuario getUsuario() { + return usuario; + } + + public void setUsuario(Usuario usuario) { + this.usuario = usuario; + } + + public Usuario getUsuarioLogado() { + return usuarioLogado; + } + + public void setUsuarioLogado(Usuario usuarioLogado) { + this.usuarioLogado = usuarioLogado; + } + + @PostConstruct + public void iniciar() { + usuario = new Usuario(); + usuario.setPessoa(new Pessoa()); + } + + public void autenticar() { + try { + UsuarioDAO usuarioDAO = new UsuarioDAO(); + usuarioLogado = usuarioDAO.autenticar(usuario.getPessoa().getCpf(), usuario.getSenha()); + + if(usuarioLogado == null){ + Messages.addGlobalError("CPF e/ou senha incorretos"); + return; + } + + Faces.redirect("./pages/principal.xhtml"); + } catch (IOException erro) { + erro.printStackTrace(); + Messages.addGlobalError(erro.getMessage()); + } + } +} diff --git a/289_Schedule_Novo_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/CaixaBean.java b/289_Schedule_Novo_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/CaixaBean.java new file mode 100644 index 0000000..aaef1aa --- /dev/null +++ b/289_Schedule_Novo_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/CaixaBean.java @@ -0,0 +1,62 @@ +package br.pro.delfino.drogaria.bean; + +import java.util.Date; +import java.util.List; + +import javax.annotation.PostConstruct; +import javax.faces.bean.ManagedBean; +import javax.faces.bean.ViewScoped; + +import org.primefaces.event.SelectEvent; +import org.primefaces.model.DefaultScheduleModel; +import org.primefaces.model.ScheduleModel; + +import br.pro.delfino.drogaria.dao.FuncionarioDAO; +import br.pro.delfino.drogaria.domain.Caixa; +import br.pro.delfino.drogaria.domain.Funcionario; + +@ManagedBean +@ViewScoped +public class CaixaBean { + private Caixa caixa; + + private ScheduleModel caixas; + private List funcionarios; + + public Caixa getCaixa() { + return caixa; + } + + public void setCaixa(Caixa caixa) { + this.caixa = caixa; + } + + public ScheduleModel getCaixas() { + return caixas; + } + + public void setCaixas(ScheduleModel caixas) { + this.caixas = caixas; + } + + public List getFuncionarios() { + return funcionarios; + } + + public void setFuncionarios(List funcionarios) { + this.funcionarios = funcionarios; + } + + @PostConstruct + public void listar() { + caixas = new DefaultScheduleModel(); + } + + public void novo(SelectEvent evento) { + caixa = new Caixa(); + caixa.setDataAbertura((Date) evento.getObject()); + + FuncionarioDAO funcionarioDAO = new FuncionarioDAO(); + funcionarios = funcionarioDAO.listar(); + } +} diff --git a/289_Schedule_Novo_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/CidadeBean.java b/289_Schedule_Novo_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/CidadeBean.java new file mode 100644 index 0000000..4b03075 --- /dev/null +++ b/289_Schedule_Novo_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/CidadeBean.java @@ -0,0 +1,119 @@ +package br.pro.delfino.drogaria.bean; + +import java.io.Serializable; +import java.util.List; + +import javax.annotation.PostConstruct; +import javax.faces.bean.ManagedBean; +import javax.faces.bean.ViewScoped; +import javax.faces.event.ActionEvent; + +import org.omnifaces.util.Messages; + +import br.pro.delfino.drogaria.dao.CidadeDAO; +import br.pro.delfino.drogaria.dao.EstadoDAO; +import br.pro.delfino.drogaria.domain.Cidade; +import br.pro.delfino.drogaria.domain.Estado; + +@SuppressWarnings("serial") +@ManagedBean +@ViewScoped +public class CidadeBean implements Serializable { + private Cidade cidade; + private List cidades; + private List estados; + + public Cidade getCidade() { + return cidade; + } + + public void setCidade(Cidade cidade) { + this.cidade = cidade; + } + + public List getCidades() { + return cidades; + } + + public void setCidades(List cidades) { + this.cidades = cidades; + } + + public List getEstados() { + return estados; + } + + public void setEstados(List estados) { + this.estados = estados; + } + + @PostConstruct + public void listar() { + try { + CidadeDAO cidadeDAO = new CidadeDAO(); + cidades = cidadeDAO.listar("nome"); + } catch (RuntimeException erro) { + Messages.addFlashGlobalError("Ocorreu um erro ao tentar listar as cidades"); + erro.printStackTrace(); + } + } + + public void novo() { + try { + cidade = new Cidade(); + + EstadoDAO estadoDAO = new EstadoDAO(); + estados = estadoDAO.listar("nome"); + } catch (RuntimeException erro) { + Messages.addFlashGlobalError("Ocorreu um erro ao gerar uma nova cidade"); + erro.printStackTrace(); + } + } + + public void salvar() { + try { + CidadeDAO cidadeDAO = new CidadeDAO(); + cidadeDAO.merge(cidade); + + cidade = new Cidade(); + + EstadoDAO estadoDAO = new EstadoDAO(); + estados = estadoDAO.listar(); + + cidades = cidadeDAO.listar(); + + Messages.addGlobalInfo("Cidade salva com sucesso"); + } catch (RuntimeException erro) { + Messages.addFlashGlobalError("Ocorreu um erro ao tentar salvar uma nova cidade"); + erro.printStackTrace(); + } + } + + public void excluir(ActionEvent evento) { + try { + cidade = (Cidade) evento.getComponent().getAttributes().get("cidadeSelecionada"); + + CidadeDAO cidadeDAO = new CidadeDAO(); + cidadeDAO.excluir(cidade); + + cidades = cidadeDAO.listar(); + + Messages.addGlobalInfo("Cidade removida com sucesso"); + } catch (RuntimeException erro) { + Messages.addFlashGlobalError("Ocorreu um erro ao tentar remover a cidade"); + erro.printStackTrace(); + } + } + + public void editar(ActionEvent evento){ + try { + cidade = (Cidade) evento.getComponent().getAttributes().get("cidadeSelecionada"); + + EstadoDAO estadoDAO = new EstadoDAO(); + estados = estadoDAO.listar(); + } catch (RuntimeException erro) { + Messages.addFlashGlobalError("Ocorreu um erro ao tentar selecionar uma cidade"); + erro.printStackTrace(); + } + } +} diff --git a/289_Schedule_Novo_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/ClienteBean.java b/289_Schedule_Novo_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/ClienteBean.java new file mode 100644 index 0000000..c96b115 --- /dev/null +++ b/289_Schedule_Novo_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/ClienteBean.java @@ -0,0 +1,91 @@ +package br.pro.delfino.drogaria.bean; + +import java.io.Serializable; +import java.util.List; + +import javax.annotation.PostConstruct; +import javax.faces.bean.ManagedBean; +import javax.faces.bean.ViewScoped; + +import org.omnifaces.util.Messages; + +import br.pro.delfino.drogaria.dao.ClienteDAO; +import br.pro.delfino.drogaria.dao.PessoaDAO; +import br.pro.delfino.drogaria.domain.Cliente; +import br.pro.delfino.drogaria.domain.Pessoa; + +@SuppressWarnings("serial") +@ManagedBean +@ViewScoped +public class ClienteBean implements Serializable { + private Cliente cliente; + + private List clientes; + private List pessoas; + + public Cliente getCliente() { + return cliente; + } + + public void setCliente(Cliente cliente) { + this.cliente = cliente; + } + + public List getClientes() { + return clientes; + } + + public void setClientes(List clientes) { + this.clientes = clientes; + } + + public List getPessoas() { + return pessoas; + } + + public void setPessoas(List pessoas) { + this.pessoas = pessoas; + } + + @PostConstruct + public void listar() { + try { + ClienteDAO clienteDAO = new ClienteDAO(); + clientes = clienteDAO.listar("dataCadastro"); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar listar os clientes"); + erro.printStackTrace(); + } + } + + public void novo() { + try { + cliente = new Cliente(); + + PessoaDAO pessoaDAO = new PessoaDAO(); + pessoas = pessoaDAO.listar("nome"); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar criar um novo cliente"); + erro.printStackTrace(); + } + } + + public void salvar() { + try { + ClienteDAO clienteDAO = new ClienteDAO(); + clienteDAO.merge(cliente); + + cliente = new Cliente(); + + clientes = clienteDAO.listar("dataCadastro"); + + PessoaDAO pessoaDAO = new PessoaDAO(); + pessoas = pessoaDAO.listar("nome"); + + Messages.addGlobalInfo("Cliente salvo com sucesso"); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar salvar o cliente"); + erro.printStackTrace(); + } + } +} diff --git a/289_Schedule_Novo_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/EstadoBean.java b/289_Schedule_Novo_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/EstadoBean.java new file mode 100644 index 0000000..b4921fe --- /dev/null +++ b/289_Schedule_Novo_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/EstadoBean.java @@ -0,0 +1,88 @@ +package br.pro.delfino.drogaria.bean; + +import java.io.Serializable; +import java.util.List; + +import javax.annotation.PostConstruct; +import javax.faces.bean.ManagedBean; +import javax.faces.bean.ViewScoped; +import javax.faces.event.ActionEvent; + +import org.omnifaces.util.Messages; + +import br.pro.delfino.drogaria.dao.EstadoDAO; +import br.pro.delfino.drogaria.domain.Estado; + +@SuppressWarnings("serial") +@ManagedBean +@ViewScoped +public class EstadoBean implements Serializable { + private Estado estado; + private List estados; + + public Estado getEstado() { + return estado; + } + + public void setEstado(Estado estado) { + this.estado = estado; + } + + public List getEstados() { + return estados; + } + + public void setEstados(List estados) { + this.estados = estados; + } + + @PostConstruct + public void listar() { + try { + EstadoDAO estadoDAO = new EstadoDAO(); + estados = estadoDAO.listar(); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar listar os estados"); + erro.printStackTrace(); + } + } + + public void novo() { + estado = new Estado(); + } + + public void salvar() { + try { + EstadoDAO estadoDAO = new EstadoDAO(); + estadoDAO.merge(estado); + + estado = new Estado(); + estados = estadoDAO.listar(); + + Messages.addGlobalInfo("Estado salvo com sucesso"); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar salvar o estado"); + erro.printStackTrace(); + } + } + + public void excluir(ActionEvent evento) { + try { + estado = (Estado) evento.getComponent().getAttributes().get("estadoSelecionado"); + + EstadoDAO estadoDAO = new EstadoDAO(); + estadoDAO.excluir(estado); + + estados = estadoDAO.listar(); + + Messages.addGlobalInfo("Estado removido com sucesso"); + } catch (RuntimeException erro) { + Messages.addFlashGlobalError("Ocorreu um erro ao tentar remover o estado"); + erro.printStackTrace(); + } + } + + public void editar(ActionEvent evento) { + estado = (Estado) evento.getComponent().getAttributes().get("estadoSelecionado"); + } +} diff --git a/289_Schedule_Novo_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/FabricanteBean.java b/289_Schedule_Novo_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/FabricanteBean.java new file mode 100644 index 0000000..7fddf7d --- /dev/null +++ b/289_Schedule_Novo_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/FabricanteBean.java @@ -0,0 +1,116 @@ +package br.pro.delfino.drogaria.bean; + +import java.io.Serializable; +import java.util.Arrays; +import java.util.List; + +import javax.annotation.PostConstruct; +import javax.faces.bean.ManagedBean; +import javax.faces.bean.ViewScoped; +import javax.faces.event.ActionEvent; +import javax.ws.rs.client.Client; +import javax.ws.rs.client.ClientBuilder; +import javax.ws.rs.client.Entity; +import javax.ws.rs.client.WebTarget; + +import org.omnifaces.util.Messages; + +import com.google.gson.Gson; + +import br.pro.delfino.drogaria.domain.Fabricante; + +@SuppressWarnings("serial") +@ManagedBean +@ViewScoped +public class FabricanteBean implements Serializable { + private Fabricante fabricante; + private List fabricantes; + + public Fabricante getFabricante() { + return fabricante; + } + + public void setFabricante(Fabricante fabricante) { + this.fabricante = fabricante; + } + + public List getFabricantes() { + return fabricantes; + } + + public void setFabricantes(List fabricantes) { + this.fabricantes = fabricantes; + } + + @PostConstruct + public void listar() { + try { + Client cliente = ClientBuilder.newClient(); + WebTarget caminho = cliente.target("http://127.0.0.1:8080/Drogaria/rest/fabricante"); + String json = caminho.request().get(String.class); + + Gson gson = new Gson(); + Fabricante[] vetor = gson.fromJson(json, Fabricante[].class); + + fabricantes = Arrays.asList(vetor); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar listar os fabricantes"); + erro.printStackTrace(); + } + } + + public void novo() { + fabricante = new Fabricante(); + } + + public void salvar() { + try { + Client cliente = ClientBuilder.newClient(); + WebTarget caminho = cliente.target("http://127.0.0.1:8080/Drogaria/rest/fabricante"); + + Gson gson = new Gson(); + + String json = gson.toJson(fabricante); + caminho.request().post(Entity.json(json)); + + fabricante = new Fabricante(); + + json = caminho.request().get(String.class); + Fabricante[] vetor = gson.fromJson(json, Fabricante[].class); + fabricantes = Arrays.asList(vetor); + + Messages.addGlobalInfo("Fabricante salvo com sucesso"); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar salvar o fabricante"); + erro.printStackTrace(); + } + } + + public void excluir(ActionEvent evento) { + try { + fabricante = (Fabricante) evento.getComponent().getAttributes().get("fabricanteSelecionado"); + + Client cliente = ClientBuilder.newClient(); + + WebTarget caminho = cliente.target("http://127.0.0.1:8080/Drogaria/rest/fabricante"); + WebTarget caminhoExcluir = caminho.path("{codigo}").resolveTemplate("codigo", fabricante.getCodigo()); + + caminhoExcluir.request().delete(); + String json = caminho.request().get(String.class); + + Gson gson = new Gson(); + Fabricante[] vetor = gson.fromJson(json, Fabricante[].class); + + fabricantes = Arrays.asList(vetor); + + Messages.addGlobalInfo("Fabricante removido com sucesso"); + } catch (RuntimeException erro) { + Messages.addFlashGlobalError("Ocorreu um erro ao tentar remover o fabricante"); + erro.printStackTrace(); + } + } + + public void editar(ActionEvent evento) { + fabricante = (Fabricante) evento.getComponent().getAttributes().get("fabricanteSelecionado"); + } +} diff --git a/289_Schedule_Novo_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/HistoricoBean.java b/289_Schedule_Novo_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/HistoricoBean.java new file mode 100644 index 0000000..a042b04 --- /dev/null +++ b/289_Schedule_Novo_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/HistoricoBean.java @@ -0,0 +1,89 @@ +package br.pro.delfino.drogaria.bean; + +import java.io.Serializable; +import java.util.Date; + +import javax.annotation.PostConstruct; +import javax.faces.bean.ManagedBean; +import javax.faces.bean.ViewScoped; + +import org.omnifaces.util.Messages; + +import br.pro.delfino.drogaria.dao.HistoricoDAO; +import br.pro.delfino.drogaria.dao.ProdutoDAO; +import br.pro.delfino.drogaria.domain.Historico; +import br.pro.delfino.drogaria.domain.Produto; + +@SuppressWarnings("serial") +@ManagedBean +@ViewScoped +public class HistoricoBean implements Serializable { + private Produto produto; + private Boolean exibePainelDados; + + private Historico historico; + + public Produto getProduto() { + return produto; + } + + public void setProduto(Produto produto) { + this.produto = produto; + } + + public Boolean getExibePainelDados() { + return exibePainelDados; + } + + public void setExibePainelDados(Boolean exibePainelDados) { + this.exibePainelDados = exibePainelDados; + } + + public Historico getHistorico() { + return historico; + } + + public void setHistorico(Historico historico) { + this.historico = historico; + } + + @PostConstruct + public void novo() { + historico = new Historico(); + produto = new Produto(); + exibePainelDados = false; + } + + public void buscar() { + try { + ProdutoDAO produtoDAO = new ProdutoDAO(); + Produto resultado = produtoDAO.buscar(produto.getCodigo()); + + if (resultado == null) { + exibePainelDados = false; + Messages.addGlobalWarn("Não existe produto cadastrado para o código informado"); + } else { + exibePainelDados = true; + produto = resultado; + } + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar buscar o produto"); + erro.printStackTrace(); + } + } + + public void salvar() { + try { + historico.setHorario(new Date()); + historico.setProduto(produto); + + HistoricoDAO historicoDAO = new HistoricoDAO(); + historicoDAO.salvar(historico); + + Messages.addGlobalInfo("Histórico salvo com sucesso"); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar salvar o histórico"); + erro.printStackTrace(); + } + } +} diff --git a/289_Schedule_Novo_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/ImagemBean.java b/289_Schedule_Novo_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/ImagemBean.java new file mode 100644 index 0000000..eb963a8 --- /dev/null +++ b/289_Schedule_Novo_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/ImagemBean.java @@ -0,0 +1,48 @@ +package br.pro.delfino.drogaria.bean; + +import java.io.IOException; +import java.io.InputStream; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; + +import javax.faces.bean.ManagedBean; +import javax.faces.bean.ManagedProperty; +import javax.faces.bean.RequestScoped; + +import org.primefaces.model.DefaultStreamedContent; +import org.primefaces.model.StreamedContent; + +@ManagedBean +@RequestScoped +public class ImagemBean { + @ManagedProperty("#{param.caminho}") + private String caminho; + + private StreamedContent foto; + + public String getCaminho() { + return caminho; + } + + public void setCaminho(String caminho) { + this.caminho = caminho; + } + + public StreamedContent getFoto() throws IOException { + if(caminho == null || caminho.isEmpty()){ + Path path = Paths.get("C:/Programação Web com Java/Uploads/branco.png"); + InputStream stream = Files.newInputStream(path); + foto = new DefaultStreamedContent(stream); + }else{ + Path path = Paths.get(caminho); + InputStream stream = Files.newInputStream(path); + foto = new DefaultStreamedContent(stream); + } + return foto; + } + + public void setFoto(StreamedContent foto) { + this.foto = foto; + } +} diff --git a/289_Schedule_Novo_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/PessoaBean.java b/289_Schedule_Novo_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/PessoaBean.java new file mode 100644 index 0000000..931edf7 --- /dev/null +++ b/289_Schedule_Novo_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/PessoaBean.java @@ -0,0 +1,156 @@ +package br.pro.delfino.drogaria.bean; + +import java.io.Serializable; +import java.util.ArrayList; +import java.util.List; + +import javax.annotation.PostConstruct; +import javax.faces.bean.ManagedBean; +import javax.faces.bean.ViewScoped; +import javax.faces.event.ActionEvent; + +import org.omnifaces.util.Messages; + +import br.pro.delfino.drogaria.dao.CidadeDAO; +import br.pro.delfino.drogaria.dao.EstadoDAO; +import br.pro.delfino.drogaria.dao.PessoaDAO; +import br.pro.delfino.drogaria.domain.Cidade; +import br.pro.delfino.drogaria.domain.Estado; +import br.pro.delfino.drogaria.domain.Pessoa; + +@SuppressWarnings("serial") +@ManagedBean +@ViewScoped +public class PessoaBean implements Serializable { + private Pessoa pessoa; + private List pessoas; + + private Estado estado; + private List estados; + + private List cidades; + + public Pessoa getPessoa() { + return pessoa; + } + + public void setPessoa(Pessoa pessoa) { + this.pessoa = pessoa; + } + + public List getPessoas() { + return pessoas; + } + + public void setPessoas(List pessoas) { + this.pessoas = pessoas; + } + + public Estado getEstado() { + return estado; + } + + public void setEstado(Estado estado) { + this.estado = estado; + } + + public List getEstados() { + return estados; + } + + public void setEstados(List estados) { + this.estados = estados; + } + + public List getCidades() { + return cidades; + } + + public void setCidades(List cidades) { + this.cidades = cidades; + } + + @PostConstruct + public void listar() { + try { + PessoaDAO pessoaDAO = new PessoaDAO(); + pessoas = pessoaDAO.listar("nome"); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar listar as pessoas"); + erro.printStackTrace(); + } + } + + public void novo() { + try { + pessoa = new Pessoa(); + + estado = new Estado(); + + EstadoDAO estadoDAO = new EstadoDAO(); + estados = estadoDAO.listar("nome"); + + cidades = new ArrayList<>(); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar gerar uma nova pessoa"); + erro.printStackTrace(); + } + } + + public void editar(ActionEvent evento) { + try{ + pessoa = (Pessoa) evento.getComponent().getAttributes().get("pessoaSelecionada"); + + estado = pessoa.getCidade().getEstado(); + + EstadoDAO estadoDAO = new EstadoDAO(); + estados = estadoDAO.listar("nome"); + + CidadeDAO cidadeDAO = new CidadeDAO(); + cidades = cidadeDAO.buscarPorEstado(estado.getCodigo()); + }catch(RuntimeException erro){ + Messages.addGlobalError("Ocorreu um erro ao tentar selecionar uma pessoa"); + } + } + + public void salvar() { + try { + PessoaDAO pessoaDAO = new PessoaDAO(); + pessoaDAO.merge(pessoa); + + pessoas = pessoaDAO.listar("nome"); + + pessoa = new Pessoa(); + + estado = new Estado(); + + EstadoDAO estadoDAO = new EstadoDAO(); + estados = estadoDAO.listar("nome"); + + cidades = new ArrayList<>(); + + Messages.addGlobalInfo("Pessoa salva com sucesso"); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar salvar a pessoa"); + erro.printStackTrace(); + } + } + + public void excluir(ActionEvent evento) { + + } + + public void popular() { + try { + if (estado != null) { + CidadeDAO cidadeDAO = new CidadeDAO(); + cidades = cidadeDAO.buscarPorEstado(estado.getCodigo()); + } else { + cidades = new ArrayList<>(); + } + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar filtrar as cidades"); + erro.printStackTrace(); + } + } +} diff --git a/289_Schedule_Novo_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/ProdutoBean.java b/289_Schedule_Novo_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/ProdutoBean.java new file mode 100644 index 0000000..e48e0d1 --- /dev/null +++ b/289_Schedule_Novo_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/ProdutoBean.java @@ -0,0 +1,196 @@ +package br.pro.delfino.drogaria.bean; + +import java.io.IOException; +import java.io.Serializable; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; +import java.nio.file.StandardCopyOption; +import java.sql.Connection; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import javax.annotation.PostConstruct; +import javax.faces.bean.ManagedBean; +import javax.faces.bean.ViewScoped; +import javax.faces.event.ActionEvent; + +import org.omnifaces.util.Faces; +import org.omnifaces.util.Messages; +import org.primefaces.component.datatable.DataTable; +import org.primefaces.event.FileUploadEvent; +import org.primefaces.model.UploadedFile; + +import br.pro.delfino.drogaria.dao.FabricanteDAO; +import br.pro.delfino.drogaria.dao.ProdutoDAO; +import br.pro.delfino.drogaria.domain.Fabricante; +import br.pro.delfino.drogaria.domain.Produto; +import br.pro.delfino.drogaria.util.HibernateUtil; +import net.sf.jasperreports.engine.JRException; +import net.sf.jasperreports.engine.JasperFillManager; +import net.sf.jasperreports.engine.JasperPrint; +import net.sf.jasperreports.engine.JasperPrintManager; + +@SuppressWarnings("serial") +@ManagedBean +@ViewScoped +public class ProdutoBean implements Serializable { + private Produto produto; + private List produtos; + private List fabricantes; + + public Produto getProduto() { + return produto; + } + + public void setProduto(Produto produto) { + this.produto = produto; + } + + public List getProdutos() { + return produtos; + } + + public void setProdutos(List produtos) { + this.produtos = produtos; + } + + public List getFabricantes() { + return fabricantes; + } + + public void setFabricantes(List fabricantes) { + this.fabricantes = fabricantes; + } + + @PostConstruct + public void listar() { + try { + ProdutoDAO produtoDAO = new ProdutoDAO(); + produtos = produtoDAO.listar("descricao"); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar listar os produtos"); + erro.printStackTrace(); + } + } + + public void novo() { + try { + produto = new Produto(); + + FabricanteDAO fabricanteDAO = new FabricanteDAO(); + fabricantes = fabricanteDAO.listar("descricao"); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar gerar um novo produto"); + erro.printStackTrace(); + } + } + + public void editar(ActionEvent evento) { + try { + produto = (Produto) evento.getComponent().getAttributes().get("produtoSelecionado"); + produto.setCaminho("C:/Programação Web com Java/Uploads/" + produto.getCodigo() + ".png"); + + FabricanteDAO fabricanteDAO = new FabricanteDAO(); + fabricantes = fabricanteDAO.listar(); + } catch (RuntimeException erro) { + Messages.addFlashGlobalError("Ocorreu um erro ao tentar selecionar um produto"); + erro.printStackTrace(); + } + } + + public void salvar() { + try { + if (produto.getCaminho() == null) { + Messages.addGlobalError("O campo foto é obrigatório"); + return; + } + + ProdutoDAO produtoDAO = new ProdutoDAO(); + Produto produtoRetorno = produtoDAO.merge(produto); + + Path origem = Paths.get(produto.getCaminho()); + Path destino = Paths.get("C:/Programação Web com Java/Uploads/" + produtoRetorno.getCodigo() + ".png"); + Files.copy(origem, destino, StandardCopyOption.REPLACE_EXISTING); + + produto = new Produto(); + + FabricanteDAO fabricanteDAO = new FabricanteDAO(); + fabricantes = fabricanteDAO.listar(); + + produtos = produtoDAO.listar(); + + Messages.addGlobalInfo("Produto salvo com sucesso"); + } catch (RuntimeException | IOException erro) { + Messages.addFlashGlobalError("Ocorreu um erro ao tentar salvar o produto"); + erro.printStackTrace(); + } + } + + public void excluir(ActionEvent evento) { + try { + produto = (Produto) evento.getComponent().getAttributes().get("produtoSelecionado"); + + ProdutoDAO produtoDAO = new ProdutoDAO(); + produtoDAO.excluir(produto); + + Path arquivo = Paths.get("C:/Programação Web com Java/Uploads/" + produto.getCodigo() + ".png"); + Files.deleteIfExists(arquivo); + + produtos = produtoDAO.listar(); + + Messages.addGlobalInfo("Produto removido com sucesso"); + } catch (RuntimeException | IOException erro) { + Messages.addFlashGlobalError("Ocorreu um erro ao tentar remover o produto"); + erro.printStackTrace(); + } + } + + public void upload(FileUploadEvent evento) { + try { + UploadedFile arquivoUpload = evento.getFile(); + Path arquivoTemp = Files.createTempFile(null, null); + Files.copy(arquivoUpload.getInputstream(), arquivoTemp, StandardCopyOption.REPLACE_EXISTING); + produto.setCaminho(arquivoTemp.toString()); + + Messages.addGlobalInfo("Upload realizado com sucesso"); + } catch (IOException erro) { + Messages.addGlobalInfo("Ocorreu um erro ao tentar realizar o upload de arquivo"); + erro.printStackTrace(); + } + } + + public void imprimir() { + try { + DataTable tabela = (DataTable) Faces.getViewRoot().findComponent("formListagem:tabela"); + Map filtros = tabela.getFilters(); + + String proDescricao = (String) filtros.get("descricao"); + String fabDescricao = (String) filtros.get("fabricante.descricao"); + + String caminho = Faces.getRealPath("/reports/produtos.jasper"); + + Map parametros = new HashMap<>(); + if (proDescricao == null) { + parametros.put("PRODUTO_DESCRICAO", "%%"); + } else { + parametros.put("PRODUTO_DESCRICAO", "%" + proDescricao + "%"); + } + if (fabDescricao == null) { + parametros.put("FABRICANTE_DESCRICAO", "%%"); + } else { + parametros.put("FABRICANTE_DESCRICAO", "%" + fabDescricao + "%"); + } + + Connection conexao = HibernateUtil.getConexao(); + + JasperPrint relatorio = JasperFillManager.fillReport(caminho, parametros, conexao); + + JasperPrintManager.printReport(relatorio, true); + } catch (JRException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar gerar o relatório"); + erro.printStackTrace(); + } + } +} diff --git a/289_Schedule_Novo_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/ProdutoBean2.java b/289_Schedule_Novo_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/ProdutoBean2.java new file mode 100644 index 0000000..f36cd86 --- /dev/null +++ b/289_Schedule_Novo_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/ProdutoBean2.java @@ -0,0 +1,86 @@ +package br.pro.delfino.drogaria.bean; + +import java.io.Serializable; +import java.util.List; + +import javax.annotation.PostConstruct; +import javax.faces.bean.ManagedBean; +import javax.faces.bean.ViewScoped; + +import org.omnifaces.util.Messages; + +import br.pro.delfino.drogaria.dao.FabricanteDAO; +import br.pro.delfino.drogaria.dao.ProdutoDAO; +import br.pro.delfino.drogaria.domain.Fabricante; +import br.pro.delfino.drogaria.domain.Produto; + +@SuppressWarnings("serial") +@ManagedBean +@ViewScoped +public class ProdutoBean2 implements Serializable { + private Produto produto; + private Long codigoProduto; + + private List fabricantes; + private List produtos; + + private FabricanteDAO fabricanteDAO; + private ProdutoDAO produtoDAO; + + public Produto getProduto() { + return produto; + } + + public void setProduto(Produto produto) { + this.produto = produto; + } + + public Long getCodigoProduto() { + return codigoProduto; + } + + public void setCodigoProduto(Long codigoProduto) { + this.codigoProduto = codigoProduto; + } + + public void setFabricantes(List fabricantes) { + this.fabricantes = fabricantes; + } + + public List getFabricantes() { + return fabricantes; + } + public List getProdutos() { + return produtos; + } + + public void setProdutos(List produtos) { + this.produtos = produtos; + } + + @PostConstruct + public void iniciar(){ + fabricanteDAO = new FabricanteDAO(); + produtoDAO = new ProdutoDAO(); + } + + public void listar() { + try { + produtos = produtoDAO.listar("descricao"); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar listar os produtos"); + erro.printStackTrace(); + } + } + + public void carregarEdicao(){ + try { + produto = produtoDAO.buscar(codigoProduto); + + fabricantes = fabricanteDAO.listar("descricao"); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar carregar os dados para edição"); + erro.printStackTrace(); + } + } +} diff --git a/289_Schedule_Novo_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/UsuarioBean.java b/289_Schedule_Novo_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/UsuarioBean.java new file mode 100644 index 0000000..f526df8 --- /dev/null +++ b/289_Schedule_Novo_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/UsuarioBean.java @@ -0,0 +1,90 @@ +package br.pro.delfino.drogaria.bean; + +import java.io.Serializable; +import java.util.List; + +import javax.annotation.PostConstruct; +import javax.faces.bean.ManagedBean; +import javax.faces.bean.ViewScoped; + +import org.omnifaces.util.Messages; + +import br.pro.delfino.drogaria.dao.PessoaDAO; +import br.pro.delfino.drogaria.dao.UsuarioDAO; +import br.pro.delfino.drogaria.domain.Pessoa; +import br.pro.delfino.drogaria.domain.Usuario; + +@SuppressWarnings("serial") +@ManagedBean +@ViewScoped +public class UsuarioBean implements Serializable { + private Usuario usuario; + + private List pessoas; + private List usuarios; + + public Usuario getUsuario() { + return usuario; + } + + public void setUsuario(Usuario usuario) { + this.usuario = usuario; + } + + public List getPessoas() { + return pessoas; + } + + public void setPessoas(List pessoas) { + this.pessoas = pessoas; + } + + public List getUsuarios() { + return usuarios; + } + + public void setUsuarios(List usuarios) { + this.usuarios = usuarios; + } + + @PostConstruct + public void listar(){ + try{ + UsuarioDAO usuarioDAO = new UsuarioDAO(); + usuarios = usuarioDAO.listar("tipo"); + }catch(RuntimeException erro){ + Messages.addGlobalError("Ocorreu um erro ao tentar listar os usuários"); + erro.printStackTrace(); + } + } + + public void novo() { + try { + usuario = new Usuario(); + + PessoaDAO pessoaDAO = new PessoaDAO(); + pessoas = pessoaDAO.listar("nome"); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar criar um novo usuário"); + erro.printStackTrace(); + } + } + + public void salvar() { + try { + UsuarioDAO usuarioDAO = new UsuarioDAO(); + usuarioDAO.merge(usuario); + + usuario = new Usuario(); + usuarios = usuarioDAO.listar("tipo"); + + PessoaDAO pessoaDAO = new PessoaDAO(); + pessoas = pessoaDAO.listar("nome"); + + Messages.addGlobalInfo("Usuário salvo com sucesso"); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar salvar o usuário"); + erro.printStackTrace(); + } + } +} diff --git a/289_Schedule_Novo_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/VendaBean.java b/289_Schedule_Novo_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/VendaBean.java new file mode 100644 index 0000000..ada8ff2 --- /dev/null +++ b/289_Schedule_Novo_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/VendaBean.java @@ -0,0 +1,186 @@ +package br.pro.delfino.drogaria.bean; + +import java.io.Serializable; +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +import javax.annotation.PostConstruct; +import javax.faces.bean.ManagedBean; +import javax.faces.bean.ViewScoped; +import javax.faces.event.ActionEvent; + +import org.omnifaces.util.Messages; + +import br.pro.delfino.drogaria.dao.ClienteDAO; +import br.pro.delfino.drogaria.dao.FuncionarioDAO; +import br.pro.delfino.drogaria.dao.ProdutoDAO; +import br.pro.delfino.drogaria.dao.VendaDAO; +import br.pro.delfino.drogaria.domain.Cliente; +import br.pro.delfino.drogaria.domain.Funcionario; +import br.pro.delfino.drogaria.domain.ItemVenda; +import br.pro.delfino.drogaria.domain.Produto; +import br.pro.delfino.drogaria.domain.Venda; + +@SuppressWarnings("serial") +@ManagedBean +@ViewScoped +public class VendaBean implements Serializable { + private Venda venda; + + private List produtos; + private List itensVenda; + private List clientes; + private List funcionarios; + + public Venda getVenda() { + return venda; + } + + public void setVenda(Venda venda) { + this.venda = venda; + } + + public List getProdutos() { + return produtos; + } + + public void setProdutos(List produtos) { + this.produtos = produtos; + } + + public List getItensVenda() { + return itensVenda; + } + + public void setItensVenda(List itensVenda) { + this.itensVenda = itensVenda; + } + + public List getClientes() { + return clientes; + } + + public void setClientes(List clientes) { + this.clientes = clientes; + } + + public List getFuncionarios() { + return funcionarios; + } + + public void setFuncionarios(List funcionarios) { + this.funcionarios = funcionarios; + } + + @PostConstruct + public void novo() { + try { + venda = new Venda(); + venda.setPrecoTotal(new BigDecimal("0.00")); + + ProdutoDAO produtoDAO = new ProdutoDAO(); + produtos = produtoDAO.listar("descricao"); + + itensVenda = new ArrayList<>(); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar carregar a tela de vendas"); + erro.printStackTrace(); + } + } + + public void adicionar(ActionEvent evento) { + Produto produto = (Produto) evento.getComponent().getAttributes().get("produtoSelecionado"); + + int achou = -1; + for (int posicao = 0; posicao < itensVenda.size(); posicao++) { + if (itensVenda.get(posicao).getProduto().equals(produto)) { + achou = posicao; + } + } + + if (achou < 0) { + ItemVenda itemVenda = new ItemVenda(); + itemVenda.setPrecoParcial(produto.getPreco()); + itemVenda.setProduto(produto); + itemVenda.setQuantidade(new Short("1")); + + itensVenda.add(itemVenda); + } else { + ItemVenda itemVenda = itensVenda.get(achou); + itemVenda.setQuantidade(new Short(itemVenda.getQuantidade() + 1 + "")); + itemVenda.setPrecoParcial(produto.getPreco().multiply(new BigDecimal(itemVenda.getQuantidade()))); + } + + calcular(); + } + + public void remover(ActionEvent evento) { + ItemVenda itemVenda = (ItemVenda) evento.getComponent().getAttributes().get("itemSelecionado"); + + int achou = -1; + for (int posicao = 0; posicao < itensVenda.size(); posicao++) { + if (itensVenda.get(posicao).getProduto().equals(itemVenda.getProduto())) { + achou = posicao; + } + } + + if (achou > -1) { + itensVenda.remove(achou); + } + + calcular(); + } + + public void calcular() { + venda.setPrecoTotal(new BigDecimal("0.00")); + + for (int posicao = 0; posicao < itensVenda.size(); posicao++) { + ItemVenda itemVenda = itensVenda.get(posicao); + venda.setPrecoTotal(venda.getPrecoTotal().add(itemVenda.getPrecoParcial())); + } + } + + public void finalizar() { + try { + venda.setHorario(new Date()); + venda.setCliente(null); + venda.setFuncionario(null); + + FuncionarioDAO funcionarioDAO = new FuncionarioDAO(); + funcionarios = funcionarioDAO.listarOrdenado(); + + ClienteDAO clienteDAO = new ClienteDAO(); + clientes = clienteDAO.listarOrdenado(); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar finalizar a venda"); + erro.printStackTrace(); + } + } + + public void salvar() { + try { + if(venda.getPrecoTotal().signum() == 0){ + Messages.addGlobalError("Informe pelo menos um item para a venda"); + return; + } + + VendaDAO vendaDAO = new VendaDAO(); + vendaDAO.salvar(venda, itensVenda); + + venda = new Venda(); + venda.setPrecoTotal(new BigDecimal("0.00")); + + ProdutoDAO produtoDAO = new ProdutoDAO(); + produtos = produtoDAO.listar("descricao"); + + itensVenda = new ArrayList<>(); + + Messages.addGlobalInfo("Venda realizada com sucesso"); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar salvar a venda"); + erro.printStackTrace(); + } + } +} diff --git a/289_Schedule_Novo_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/converter/UpperCaseConverter.java b/289_Schedule_Novo_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/converter/UpperCaseConverter.java new file mode 100644 index 0000000..8a5d259 --- /dev/null +++ b/289_Schedule_Novo_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/converter/UpperCaseConverter.java @@ -0,0 +1,28 @@ +package br.pro.delfino.drogaria.converter; + +import javax.faces.component.UIComponent; +import javax.faces.context.FacesContext; +import javax.faces.convert.Converter; +import javax.faces.convert.FacesConverter; + +@FacesConverter("upperCaseConverter") +public class UpperCaseConverter implements Converter { + + @Override + public Object getAsObject(FacesContext context, UIComponent component, String value) { + if (value == null) { + return null; + } else { + return value.toUpperCase(); + } + } + + @Override + public String getAsString(FacesContext context, UIComponent component, Object value) { + if (value == null) { + return ""; + } else { + return value.toString(); + } + } +} diff --git a/289_Schedule_Novo_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/CaixaDAO.java b/289_Schedule_Novo_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/CaixaDAO.java new file mode 100644 index 0000000..fd8acd7 --- /dev/null +++ b/289_Schedule_Novo_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/CaixaDAO.java @@ -0,0 +1,26 @@ +package br.pro.delfino.drogaria.dao; + +import java.util.Date; + +import org.hibernate.Criteria; +import org.hibernate.Session; +import org.hibernate.criterion.Restrictions; + +import br.pro.delfino.drogaria.domain.Caixa; +import br.pro.delfino.drogaria.util.HibernateUtil; + +public class CaixaDAO extends GenericDAO { + public Caixa buscar(Date dataAbertura) { + Session sessao = HibernateUtil.getFabricaDeSessoes().openSession(); + try { + Criteria consulta = sessao.createCriteria(Caixa.class); + consulta.add(Restrictions.eq("dataAbertura", dataAbertura)); + Caixa resultado = (Caixa) consulta.uniqueResult(); + return resultado; + } catch (RuntimeException erro) { + throw erro; + } finally { + sessao.close(); + } + } +} diff --git a/289_Schedule_Novo_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/CidadeDAO.java b/289_Schedule_Novo_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/CidadeDAO.java new file mode 100644 index 0000000..e685e93 --- /dev/null +++ b/289_Schedule_Novo_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/CidadeDAO.java @@ -0,0 +1,29 @@ +package br.pro.delfino.drogaria.dao; + +import java.util.List; + +import org.hibernate.Criteria; +import org.hibernate.Session; +import org.hibernate.criterion.Order; +import org.hibernate.criterion.Restrictions; + +import br.pro.delfino.drogaria.domain.Cidade; +import br.pro.delfino.drogaria.util.HibernateUtil; + +public class CidadeDAO extends GenericDAO { + @SuppressWarnings("unchecked") + public List buscarPorEstado(Long estadoCodigo) { + Session sessao = HibernateUtil.getFabricaDeSessoes().openSession(); + try { + Criteria consulta = sessao.createCriteria(Cidade.class); + consulta.add(Restrictions.eq("estado.codigo", estadoCodigo)); + consulta.addOrder(Order.asc("nome")); + List resultado = consulta.list(); + return resultado; + } catch (RuntimeException erro) { + throw erro; + } finally { + sessao.close(); + } + } +} \ No newline at end of file diff --git a/289_Schedule_Novo_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/ClienteDAO.java b/289_Schedule_Novo_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/ClienteDAO.java new file mode 100644 index 0000000..e9796b5 --- /dev/null +++ b/289_Schedule_Novo_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/ClienteDAO.java @@ -0,0 +1,28 @@ +package br.pro.delfino.drogaria.dao; + +import java.util.List; + +import org.hibernate.Criteria; +import org.hibernate.Session; +import org.hibernate.criterion.Order; + +import br.pro.delfino.drogaria.domain.Cliente; +import br.pro.delfino.drogaria.util.HibernateUtil; + +public class ClienteDAO extends GenericDAO { + @SuppressWarnings("unchecked") + public List listarOrdenado() { + Session sessao = HibernateUtil.getFabricaDeSessoes().openSession(); + try { + Criteria consulta = sessao.createCriteria(Cliente.class); + consulta.createAlias("pessoa", "p"); + consulta.addOrder(Order.asc("p.nome")); + List resultado = consulta.list(); + return resultado; + } catch (RuntimeException erro) { + throw erro; + } finally { + sessao.close(); + } + } +} diff --git a/289_Schedule_Novo_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/EstadoDAO.java b/289_Schedule_Novo_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/EstadoDAO.java new file mode 100644 index 0000000..32b4a79 --- /dev/null +++ b/289_Schedule_Novo_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/EstadoDAO.java @@ -0,0 +1,7 @@ +package br.pro.delfino.drogaria.dao; + +import br.pro.delfino.drogaria.domain.Estado; + +public class EstadoDAO extends GenericDAO { + +} diff --git a/289_Schedule_Novo_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/FabricanteDAO.java b/289_Schedule_Novo_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/FabricanteDAO.java new file mode 100644 index 0000000..8b7f946 --- /dev/null +++ b/289_Schedule_Novo_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/FabricanteDAO.java @@ -0,0 +1,7 @@ +package br.pro.delfino.drogaria.dao; + +import br.pro.delfino.drogaria.domain.Fabricante; + +public class FabricanteDAO extends GenericDAO { + +} diff --git a/289_Schedule_Novo_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/FuncionarioDAO.java b/289_Schedule_Novo_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/FuncionarioDAO.java new file mode 100644 index 0000000..2b3114d --- /dev/null +++ b/289_Schedule_Novo_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/FuncionarioDAO.java @@ -0,0 +1,28 @@ +package br.pro.delfino.drogaria.dao; + +import java.util.List; + +import org.hibernate.Criteria; +import org.hibernate.Session; +import org.hibernate.criterion.Order; + +import br.pro.delfino.drogaria.domain.Funcionario; +import br.pro.delfino.drogaria.util.HibernateUtil; + +public class FuncionarioDAO extends GenericDAO{ + @SuppressWarnings("unchecked") + public List listarOrdenado() { + Session sessao = HibernateUtil.getFabricaDeSessoes().openSession(); + try { + Criteria consulta = sessao.createCriteria(Funcionario.class); + consulta.createAlias("pessoa", "p"); + consulta.addOrder(Order.asc("p.nome")); + List resultado = consulta.list(); + return resultado; + } catch (RuntimeException erro) { + throw erro; + } finally { + sessao.close(); + } + } +} diff --git a/289_Schedule_Novo_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/GenericDAO.java b/289_Schedule_Novo_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/GenericDAO.java new file mode 100644 index 0000000..b505cd3 --- /dev/null +++ b/289_Schedule_Novo_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/GenericDAO.java @@ -0,0 +1,140 @@ +package br.pro.delfino.drogaria.dao; + +import java.lang.reflect.ParameterizedType; +import java.util.List; + +import org.hibernate.Criteria; +import org.hibernate.Session; +import org.hibernate.Transaction; +import org.hibernate.criterion.Order; +import org.hibernate.criterion.Restrictions; + +import br.pro.delfino.drogaria.util.HibernateUtil; + +public class GenericDAO { + private Class classe; + + @SuppressWarnings("unchecked") + public GenericDAO() { + this.classe = (Class) ((ParameterizedType) getClass().getGenericSuperclass()) + .getActualTypeArguments()[0]; + } + + public void salvar(Entidade entidade) { + Session sessao = HibernateUtil.getFabricaDeSessoes().openSession(); + Transaction transacao = null; + + try { + transacao = sessao.beginTransaction(); + sessao.save(entidade); + transacao.commit(); + } catch (RuntimeException erro) { + if (transacao != null) { + transacao.rollback(); + } + throw erro; + } finally { + sessao.close(); + } + } + + @SuppressWarnings("unchecked") + public List listar() { + Session sessao = HibernateUtil.getFabricaDeSessoes().openSession(); + try { + Criteria consulta = sessao.createCriteria(classe); + List resultado = consulta.list(); + return resultado; + } catch (RuntimeException erro) { + throw erro; + } finally { + sessao.close(); + } + } + + @SuppressWarnings("unchecked") + public List listar(String campoOrdenacao) { + Session sessao = HibernateUtil.getFabricaDeSessoes().openSession(); + try { + Criteria consulta = sessao.createCriteria(classe); + consulta.addOrder(Order.asc(campoOrdenacao)); + List resultado = consulta.list(); + return resultado; + } catch (RuntimeException erro) { + throw erro; + } finally { + sessao.close(); + } + } + + @SuppressWarnings("unchecked") + public Entidade buscar(Long codigo) { + Session sessao = HibernateUtil.getFabricaDeSessoes().openSession(); + try { + Criteria consulta = sessao.createCriteria(classe); + consulta.add(Restrictions.idEq(codigo)); + Entidade resultado = (Entidade) consulta.uniqueResult(); + return resultado; + } catch (RuntimeException erro) { + throw erro; + } finally { + sessao.close(); + } + } + + public void excluir(Entidade entidade) { + Session sessao = HibernateUtil.getFabricaDeSessoes().openSession(); + Transaction transacao = null; + + try { + transacao = sessao.beginTransaction(); + sessao.delete(entidade); + transacao.commit(); + } catch (RuntimeException erro) { + if (transacao != null) { + transacao.rollback(); + } + throw erro; + } finally { + sessao.close(); + } + } + + public void editar(Entidade entidade) { + Session sessao = HibernateUtil.getFabricaDeSessoes().openSession(); + Transaction transacao = null; + + try { + transacao = sessao.beginTransaction(); + sessao.update(entidade); + transacao.commit(); + } catch (RuntimeException erro) { + if (transacao != null) { + transacao.rollback(); + } + throw erro; + } finally { + sessao.close(); + } + } + + @SuppressWarnings("unchecked") + public Entidade merge(Entidade entidade) { + Session sessao = HibernateUtil.getFabricaDeSessoes().openSession(); + Transaction transacao = null; + + try { + transacao = sessao.beginTransaction(); + Entidade retorno = (Entidade) sessao.merge(entidade); + transacao.commit(); + return retorno; + } catch (RuntimeException erro) { + if (transacao != null) { + transacao.rollback(); + } + throw erro; + } finally { + sessao.close(); + } + } +} diff --git a/289_Schedule_Novo_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/HistoricoDAO.java b/289_Schedule_Novo_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/HistoricoDAO.java new file mode 100644 index 0000000..7b30017 --- /dev/null +++ b/289_Schedule_Novo_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/HistoricoDAO.java @@ -0,0 +1,7 @@ +package br.pro.delfino.drogaria.dao; + +import br.pro.delfino.drogaria.domain.Historico; + +public class HistoricoDAO extends GenericDAO { + +} diff --git a/289_Schedule_Novo_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/MovimentacaoDAO.java b/289_Schedule_Novo_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/MovimentacaoDAO.java new file mode 100644 index 0000000..b6560e2 --- /dev/null +++ b/289_Schedule_Novo_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/MovimentacaoDAO.java @@ -0,0 +1,7 @@ +package br.pro.delfino.drogaria.dao; + +import br.pro.delfino.drogaria.domain.Movimentacao; + +public class MovimentacaoDAO extends GenericDAO { + +} diff --git a/289_Schedule_Novo_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/PessoaDAO.java b/289_Schedule_Novo_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/PessoaDAO.java new file mode 100644 index 0000000..bbd116b --- /dev/null +++ b/289_Schedule_Novo_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/PessoaDAO.java @@ -0,0 +1,7 @@ +package br.pro.delfino.drogaria.dao; + +import br.pro.delfino.drogaria.domain.Pessoa; + +public class PessoaDAO extends GenericDAO { + +} diff --git a/289_Schedule_Novo_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/ProdutoDAO.java b/289_Schedule_Novo_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/ProdutoDAO.java new file mode 100644 index 0000000..4c1e751 --- /dev/null +++ b/289_Schedule_Novo_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/ProdutoDAO.java @@ -0,0 +1,7 @@ +package br.pro.delfino.drogaria.dao; + +import br.pro.delfino.drogaria.domain.Produto; + +public class ProdutoDAO extends GenericDAO { + +} diff --git a/289_Schedule_Novo_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/UsuarioDAO.java b/289_Schedule_Novo_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/UsuarioDAO.java new file mode 100644 index 0000000..b4bf524 --- /dev/null +++ b/289_Schedule_Novo_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/UsuarioDAO.java @@ -0,0 +1,33 @@ +package br.pro.delfino.drogaria.dao; + +import org.apache.shiro.crypto.hash.SimpleHash; +import org.hibernate.Criteria; +import org.hibernate.Session; +import org.hibernate.criterion.Restrictions; + +import br.pro.delfino.drogaria.domain.Usuario; +import br.pro.delfino.drogaria.util.HibernateUtil; + +public class UsuarioDAO extends GenericDAO { + public Usuario autenticar(String cpf, String senha) { + Session sessao = HibernateUtil.getFabricaDeSessoes().openSession(); + + try{ + Criteria consulta = sessao.createCriteria(Usuario.class); + consulta.createAlias("pessoa", "p"); + + consulta.add(Restrictions.eq("p.cpf", cpf)); + + SimpleHash hash = new SimpleHash("md5", senha); + consulta.add(Restrictions.eq("senha", hash.toHex())); + + Usuario resultado = (Usuario) consulta.uniqueResult(); + + return resultado; + } catch (RuntimeException erro) { + throw erro; + } finally { + sessao.close(); + } + } +} diff --git a/289_Schedule_Novo_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/VendaDAO.java b/289_Schedule_Novo_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/VendaDAO.java new file mode 100644 index 0000000..3428939 --- /dev/null +++ b/289_Schedule_Novo_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/VendaDAO.java @@ -0,0 +1,49 @@ +package br.pro.delfino.drogaria.dao; + +import java.util.List; + +import org.hibernate.Session; +import org.hibernate.Transaction; + +import br.pro.delfino.drogaria.domain.ItemVenda; +import br.pro.delfino.drogaria.domain.Produto; +import br.pro.delfino.drogaria.domain.Venda; +import br.pro.delfino.drogaria.util.HibernateUtil; + +public class VendaDAO extends GenericDAO { + public void salvar(Venda venda, List itensVenda) { + Session sessao = HibernateUtil.getFabricaDeSessoes().openSession(); + Transaction transacao = null; + + try { + transacao = sessao.beginTransaction(); + + sessao.save(venda); + + for (int posicao = 0; posicao < itensVenda.size(); posicao++) { + ItemVenda itemVenda = itensVenda.get(posicao); + itemVenda.setVenda(venda); + + sessao.save(itemVenda); + + Produto produto = itemVenda.getProduto(); + int quantidade = produto.getQuantidade() - itemVenda.getQuantidade(); + if (quantidade >= 0) { + produto.setQuantidade(new Short(quantidade + "")); + sessao.update(produto); + } else { + throw new RuntimeException("Quantidade insuficiente em estoque"); + } + } + + transacao.commit(); + } catch (RuntimeException erro) { + if (transacao != null) { + transacao.rollback(); + } + throw erro; + } finally { + sessao.close(); + } + } +} diff --git a/289_Schedule_Novo_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Caixa.java b/289_Schedule_Novo_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Caixa.java new file mode 100644 index 0000000..61fc69b --- /dev/null +++ b/289_Schedule_Novo_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Caixa.java @@ -0,0 +1,62 @@ +package br.pro.delfino.drogaria.domain; + +import java.math.BigDecimal; +import java.util.Date; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.JoinColumn; +import javax.persistence.ManyToOne; +import javax.persistence.Temporal; +import javax.persistence.TemporalType; + +@SuppressWarnings("serial") +@Entity +public class Caixa extends GenericDomain { + @Column(nullable = false, unique = true) + @Temporal(TemporalType.DATE) + private Date dataAbertura; + + @Column(nullable = true) + @Temporal(TemporalType.DATE) + private Date dataFechamento; + + @Column(nullable = false, precision = 7, scale = 2) + private BigDecimal valorAbertura; + + @ManyToOne + @JoinColumn(nullable = false) + private Funcionario funcionario; + + public Date getDataAbertura() { + return dataAbertura; + } + + public void setDataAbertura(Date dataAbertura) { + this.dataAbertura = dataAbertura; + } + + public Date getDataFechamento() { + return dataFechamento; + } + + public void setDataFechamento(Date dataFechamento) { + this.dataFechamento = dataFechamento; + } + + public BigDecimal getValorAbertura() { + return valorAbertura; + } + + public void setValorAbertura(BigDecimal valorAbertura) { + this.valorAbertura = valorAbertura; + } + + public Funcionario getFuncionario() { + return funcionario; + } + + public void setFuncionario(Funcionario funcionario) { + this.funcionario = funcionario; + } +} diff --git a/289_Schedule_Novo_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Cidade.java b/289_Schedule_Novo_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Cidade.java new file mode 100644 index 0000000..cf94ede --- /dev/null +++ b/289_Schedule_Novo_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Cidade.java @@ -0,0 +1,33 @@ +package br.pro.delfino.drogaria.domain; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.JoinColumn; +import javax.persistence.ManyToOne; + +@SuppressWarnings("serial") +@Entity +public class Cidade extends GenericDomain { + @Column(length = 50, nullable = false) + private String nome; + + @ManyToOne + @JoinColumn(nullable = false) + private Estado estado; + + public String getNome() { + return nome; + } + + public void setNome(String nome) { + this.nome = nome; + } + + public Estado getEstado() { + return estado; + } + + public void setEstado(Estado estado) { + this.estado = estado; + } +} diff --git a/289_Schedule_Novo_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Cliente.java b/289_Schedule_Novo_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Cliente.java new file mode 100644 index 0000000..6ace9b9 --- /dev/null +++ b/289_Schedule_Novo_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Cliente.java @@ -0,0 +1,49 @@ +package br.pro.delfino.drogaria.domain; + +import java.util.Date; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.JoinColumn; +import javax.persistence.OneToOne; +import javax.persistence.Temporal; +import javax.persistence.TemporalType; + +@SuppressWarnings("serial") +@Entity +public class Cliente extends GenericDomain { + @Column(nullable = false) + @Temporal(TemporalType.DATE) + private Date dataCadastro; + + @Column(nullable = false) + private Boolean liberado; + + @OneToOne + @JoinColumn(nullable = false) + private Pessoa pessoa; + + public Date getDataCadastro() { + return dataCadastro; + } + + public void setDataCadastro(Date dataCadastro) { + this.dataCadastro = dataCadastro; + } + + public Boolean getLiberado() { + return liberado; + } + + public void setLiberado(Boolean liberado) { + this.liberado = liberado; + } + + public Pessoa getPessoa() { + return pessoa; + } + + public void setPessoa(Pessoa pessoa) { + this.pessoa = pessoa; + } +} diff --git a/289_Schedule_Novo_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Estado.java b/289_Schedule_Novo_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Estado.java new file mode 100644 index 0000000..1c06b98 --- /dev/null +++ b/289_Schedule_Novo_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Estado.java @@ -0,0 +1,30 @@ +package br.pro.delfino.drogaria.domain; + +import javax.persistence.Column; +import javax.persistence.Entity; + +@SuppressWarnings("serial") +@Entity +public class Estado extends GenericDomain { + @Column(length = 2, nullable = false) + private String sigla; + + @Column(length = 50, nullable = false) + private String nome; + + public String getSigla() { + return sigla; + } + + public void setSigla(String sigla) { + this.sigla = sigla; + } + + public String getNome() { + return nome; + } + + public void setNome(String nome) { + this.nome = nome; + } +} diff --git a/289_Schedule_Novo_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Fabricante.java b/289_Schedule_Novo_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Fabricante.java new file mode 100644 index 0000000..02eab8c --- /dev/null +++ b/289_Schedule_Novo_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Fabricante.java @@ -0,0 +1,19 @@ +package br.pro.delfino.drogaria.domain; + +import javax.persistence.Column; +import javax.persistence.Entity; + +@SuppressWarnings("serial") +@Entity +public class Fabricante extends GenericDomain { + @Column(length = 50, nullable = false) + private String descricao; + + public String getDescricao() { + return descricao; + } + + public void setDescricao(String descricao) { + this.descricao = descricao; + } +} diff --git a/289_Schedule_Novo_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Funcionario.java b/289_Schedule_Novo_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Funcionario.java new file mode 100644 index 0000000..dec9378 --- /dev/null +++ b/289_Schedule_Novo_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Funcionario.java @@ -0,0 +1,49 @@ +package br.pro.delfino.drogaria.domain; + +import java.util.Date; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.JoinColumn; +import javax.persistence.OneToOne; +import javax.persistence.Temporal; +import javax.persistence.TemporalType; + +@SuppressWarnings("serial") +@Entity +public class Funcionario extends GenericDomain { + @Column(length = 15, nullable = false) + private String carteiraTrabalho; + + @Column(nullable = false) + @Temporal(TemporalType.DATE) + private Date dataAdmissao; + + @OneToOne + @JoinColumn(nullable = false) + private Pessoa pessoa; + + public String getCarteiraTrabalho() { + return carteiraTrabalho; + } + + public void setCarteiraTrabalho(String carteiraTrabalho) { + this.carteiraTrabalho = carteiraTrabalho; + } + + public Date getDataAdmissao() { + return dataAdmissao; + } + + public void setDataAdmissao(Date dataAdmissao) { + this.dataAdmissao = dataAdmissao; + } + + public Pessoa getPessoa() { + return pessoa; + } + + public void setPessoa(Pessoa pessoa) { + this.pessoa = pessoa; + } +} diff --git a/289_Schedule_Novo_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/GenericDomain.java b/289_Schedule_Novo_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/GenericDomain.java new file mode 100644 index 0000000..f37efea --- /dev/null +++ b/289_Schedule_Novo_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/GenericDomain.java @@ -0,0 +1,54 @@ +package br.pro.delfino.drogaria.domain; + +import java.io.Serializable; + +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Id; +import javax.persistence.MappedSuperclass; + +@SuppressWarnings("serial") +@MappedSuperclass +public class GenericDomain implements Serializable { + @Id + @GeneratedValue(strategy = GenerationType.AUTO) + private Long codigo; + + public Long getCodigo() { + return codigo; + } + + public void setCodigo(Long codigo) { + this.codigo = codigo; + } + + @Override + public String toString() { + return String.format("%s[codigo=%d]", getClass().getSimpleName(), getCodigo()); + } + + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + ((codigo == null) ? 0 : codigo.hashCode()); + return result; + } + + @Override + public boolean equals(Object obj) { + if (this == obj) + return true; + if (obj == null) + return false; + if (getClass() != obj.getClass()) + return false; + GenericDomain other = (GenericDomain) obj; + if (codigo == null) { + if (other.codigo != null) + return false; + } else if (!codigo.equals(other.codigo)) + return false; + return true; + } +} diff --git a/289_Schedule_Novo_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Historico.java b/289_Schedule_Novo_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Historico.java new file mode 100644 index 0000000..dafdaeb --- /dev/null +++ b/289_Schedule_Novo_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Historico.java @@ -0,0 +1,49 @@ +package br.pro.delfino.drogaria.domain; + +import java.util.Date; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.JoinColumn; +import javax.persistence.ManyToOne; +import javax.persistence.Temporal; +import javax.persistence.TemporalType; + +@SuppressWarnings("serial") +@Entity +public class Historico extends GenericDomain { + @Column(nullable = false) + @Temporal(TemporalType.TIMESTAMP) + private Date horario; + + @Column(nullable = false, length = 500) + private String observacoes; + + @ManyToOne + @JoinColumn(nullable = false) + private Produto produto; + + public Date getHorario() { + return horario; + } + + public void setHorario(Date horario) { + this.horario = horario; + } + + public String getObservacoes() { + return observacoes; + } + + public void setObservacoes(String observacoes) { + this.observacoes = observacoes; + } + + public Produto getProduto() { + return produto; + } + + public void setProduto(Produto produto) { + this.produto = produto; + } +} diff --git a/289_Schedule_Novo_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/ItemVenda.java b/289_Schedule_Novo_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/ItemVenda.java new file mode 100644 index 0000000..590ab26 --- /dev/null +++ b/289_Schedule_Novo_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/ItemVenda.java @@ -0,0 +1,58 @@ +package br.pro.delfino.drogaria.domain; + +import java.math.BigDecimal; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.JoinColumn; +import javax.persistence.ManyToOne; + +@SuppressWarnings("serial") +@Entity +public class ItemVenda extends GenericDomain { + @Column(nullable = false) + private Short quantidade; + + @Column(nullable = false, precision = 7, scale = 2) + private BigDecimal precoParcial; + + @ManyToOne + @JoinColumn(nullable = false) + private Produto produto; + + @ManyToOne + @JoinColumn(nullable = false) + private Venda venda; + + public Short getQuantidade() { + return quantidade; + } + + public void setQuantidade(Short quantidade) { + this.quantidade = quantidade; + } + + public BigDecimal getPrecoParcial() { + return precoParcial; + } + + public void setPrecoParcial(BigDecimal precoParcial) { + this.precoParcial = precoParcial; + } + + public Produto getProduto() { + return produto; + } + + public void setProduto(Produto produto) { + this.produto = produto; + } + + public Venda getVenda() { + return venda; + } + + public void setVenda(Venda venda) { + this.venda = venda; + } +} diff --git a/289_Schedule_Novo_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Movimentacao.java b/289_Schedule_Novo_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Movimentacao.java new file mode 100644 index 0000000..c3d6319 --- /dev/null +++ b/289_Schedule_Novo_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Movimentacao.java @@ -0,0 +1,50 @@ +package br.pro.delfino.drogaria.domain; + +import java.math.BigDecimal; +import java.util.Date; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.JoinColumn; +import javax.persistence.ManyToOne; +import javax.persistence.Temporal; +import javax.persistence.TemporalType; + +@SuppressWarnings("serial") +@Entity +public class Movimentacao extends GenericDomain { + @Column(nullable = false) + @Temporal(TemporalType.TIMESTAMP) + private Date horario; + + @Column(nullable = false, precision = 7, scale = 2) + private BigDecimal valor; + + @ManyToOne + @JoinColumn(nullable = false) + private Caixa caixa; + + public Date getHorario() { + return horario; + } + + public void setHorario(Date horario) { + this.horario = horario; + } + + public BigDecimal getValor() { + return valor; + } + + public void setValor(BigDecimal valor) { + this.valor = valor; + } + + public Caixa getCaixa() { + return caixa; + } + + public void setCaixa(Caixa caixa) { + this.caixa = caixa; + } +} diff --git a/289_Schedule_Novo_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Pessoa.java b/289_Schedule_Novo_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Pessoa.java new file mode 100644 index 0000000..f354001 --- /dev/null +++ b/289_Schedule_Novo_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Pessoa.java @@ -0,0 +1,143 @@ +package br.pro.delfino.drogaria.domain; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.JoinColumn; +import javax.persistence.ManyToOne; + +@SuppressWarnings("serial") +@Entity +public class Pessoa extends GenericDomain { + @Column(length = 50, nullable = false) + private String nome; + + @Column(length = 14, nullable = false) + private String cpf; + + @Column(length = 12, nullable = false) + private String rg; + + @Column(length = 100, nullable = false) + private String rua; + + @Column(nullable = false) + private Short numero; + + @Column(length = 30, nullable = false) + private String bairro; + + @Column(length = 10, nullable = false) + private String cep; + + @Column(length = 10) + private String complemento; + + @Column(length = 13, nullable = false) + private String telefone; + + @Column(length = 14, nullable = false) + private String celular; + + @Column(length = 100, nullable = false) + private String email; + + @ManyToOne + @JoinColumn(nullable = false) + private Cidade cidade; + + public String getNome() { + return nome; + } + + public void setNome(String nome) { + this.nome = nome; + } + + public String getCpf() { + return cpf; + } + + public void setCpf(String cpf) { + this.cpf = cpf; + } + + public String getRg() { + return rg; + } + + public void setRg(String rg) { + this.rg = rg; + } + + public String getRua() { + return rua; + } + + public void setRua(String rua) { + this.rua = rua; + } + + public Short getNumero() { + return numero; + } + + public void setNumero(Short numero) { + this.numero = numero; + } + + public String getBairro() { + return bairro; + } + + public void setBairro(String bairro) { + this.bairro = bairro; + } + + public String getCep() { + return cep; + } + + public void setCep(String cep) { + this.cep = cep; + } + + public String getComplemento() { + return complemento; + } + + public void setComplemento(String complemento) { + this.complemento = complemento; + } + + public String getTelefone() { + return telefone; + } + + public void setTelefone(String telefone) { + this.telefone = telefone; + } + + public String getCelular() { + return celular; + } + + public void setCelular(String celular) { + this.celular = celular; + } + + public String getEmail() { + return email; + } + + public void setEmail(String email) { + this.email = email; + } + + public Cidade getCidade() { + return cidade; + } + + public void setCidade(Cidade cidade) { + this.cidade = cidade; + } +} diff --git a/289_Schedule_Novo_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Produto.java b/289_Schedule_Novo_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Produto.java new file mode 100644 index 0000000..82049b0 --- /dev/null +++ b/289_Schedule_Novo_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Produto.java @@ -0,0 +1,69 @@ +package br.pro.delfino.drogaria.domain; + +import java.math.BigDecimal; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.JoinColumn; +import javax.persistence.ManyToOne; +import javax.persistence.Transient; + +@SuppressWarnings("serial") +@Entity +public class Produto extends GenericDomain { + @Column(length = 80, nullable = false) + private String descricao; + + @Column(nullable = false) + private Short quantidade; + + @Column(nullable = false, precision = 6, scale = 2) + private BigDecimal preco; + + @ManyToOne + @JoinColumn(nullable = false) + private Fabricante fabricante; + + @Transient + private String caminho; + + public String getDescricao() { + return descricao; + } + + public void setDescricao(String descricao) { + this.descricao = descricao; + } + + public Short getQuantidade() { + return quantidade; + } + + public void setQuantidade(Short quantidade) { + this.quantidade = quantidade; + } + + public BigDecimal getPreco() { + return preco; + } + + public void setPreco(BigDecimal preco) { + this.preco = preco; + } + + public Fabricante getFabricante() { + return fabricante; + } + + public void setFabricante(Fabricante fabricante) { + this.fabricante = fabricante; + } + + public String getCaminho() { + return caminho; + } + + public void setCaminho(String caminho) { + this.caminho = caminho; + } +} diff --git a/289_Schedule_Novo_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Usuario.java b/289_Schedule_Novo_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Usuario.java new file mode 100644 index 0000000..ae51941 --- /dev/null +++ b/289_Schedule_Novo_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Usuario.java @@ -0,0 +1,93 @@ +package br.pro.delfino.drogaria.domain; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.JoinColumn; +import javax.persistence.OneToOne; +import javax.persistence.Transient; + +@SuppressWarnings("serial") +@Entity +public class Usuario extends GenericDomain { + @Column(length = 32, nullable = false) + private String senha; + + @Transient + private String senhaSemCriptografia; + + @Column(nullable = false) + private Character tipo; + + @Column(nullable = false) + private Boolean ativo; + + @OneToOne + @JoinColumn(nullable = false) + private Pessoa pessoa; + + public String getSenha() { + return senha; + } + + public void setSenha(String senha) { + this.senha = senha; + } + + public String getSenhaSemCriptografia() { + return senhaSemCriptografia; + } + + public void setSenhaSemCriptografia(String senhaSemCriptografia) { + this.senhaSemCriptografia = senhaSemCriptografia; + } + + public Character getTipo() { + return tipo; + } + + @Transient + public String getTipoFormatado() { + String tipoFormatado = null; + + if (tipo == 'A') { + tipoFormatado = "Administrador"; + } else if (tipo == 'B') { + tipoFormatado = "Balconista"; + } else if (tipo == 'G') { + tipoFormatado = "Gerente"; + } + + return tipoFormatado; + } + + public void setTipo(Character tipo) { + this.tipo = tipo; + } + + public Boolean getAtivo() { + return ativo; + } + + @Transient + public String getAtivoFormatado(){ + String ativoFormatado = "Não"; + + if(ativo){ + ativoFormatado = "Sim"; + } + + return ativoFormatado; + } + + public void setAtivo(Boolean ativo) { + this.ativo = ativo; + } + + public Pessoa getPessoa() { + return pessoa; + } + + public void setPessoa(Pessoa pessoa) { + this.pessoa = pessoa; + } +} diff --git a/289_Schedule_Novo_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Venda.java b/289_Schedule_Novo_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Venda.java new file mode 100644 index 0000000..3f4c226 --- /dev/null +++ b/289_Schedule_Novo_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Venda.java @@ -0,0 +1,61 @@ +package br.pro.delfino.drogaria.domain; + +import java.math.BigDecimal; +import java.util.Date; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.JoinColumn; +import javax.persistence.ManyToOne; +import javax.persistence.Temporal; +import javax.persistence.TemporalType; + +@SuppressWarnings("serial") +@Entity +public class Venda extends GenericDomain { + @Column(nullable = false) + @Temporal(TemporalType.TIMESTAMP) + private Date horario; + + @Column(nullable = false, precision = 7, scale = 2) + private BigDecimal precoTotal; + + @ManyToOne + private Cliente cliente; + + @ManyToOne + @JoinColumn(nullable = false) + private Funcionario funcionario; + + public Date getHorario() { + return horario; + } + + public void setHorario(Date horario) { + this.horario = horario; + } + + public BigDecimal getPrecoTotal() { + return precoTotal; + } + + public void setPrecoTotal(BigDecimal precoTotal) { + this.precoTotal = precoTotal; + } + + public Cliente getCliente() { + return cliente; + } + + public void setCliente(Cliente cliente) { + this.cliente = cliente; + } + + public Funcionario getFuncionario() { + return funcionario; + } + + public void setFuncionario(Funcionario funcionario) { + this.funcionario = funcionario; + } +} diff --git a/289_Schedule_Novo_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/service/DrogariaService.java b/289_Schedule_Novo_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/service/DrogariaService.java new file mode 100644 index 0000000..fbb1f2b --- /dev/null +++ b/289_Schedule_Novo_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/service/DrogariaService.java @@ -0,0 +1,13 @@ +package br.pro.delfino.drogaria.service; + +import javax.ws.rs.GET; +import javax.ws.rs.Path; + +// http://localhost:8080/Drogaria/rest/drogaria +@Path("drogaria") +public class DrogariaService { + @GET + public String exibir(){ + return "Curso de Java"; + } +} diff --git a/289_Schedule_Novo_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/service/FabricanteService.java b/289_Schedule_Novo_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/service/FabricanteService.java new file mode 100644 index 0000000..1dbc0d1 --- /dev/null +++ b/289_Schedule_Novo_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/service/FabricanteService.java @@ -0,0 +1,85 @@ +package br.pro.delfino.drogaria.service; + +import java.util.List; + +import javax.ws.rs.DELETE; +import javax.ws.rs.GET; +import javax.ws.rs.POST; +import javax.ws.rs.PUT; +import javax.ws.rs.Path; +import javax.ws.rs.PathParam; + +import com.google.gson.Gson; + +import br.pro.delfino.drogaria.dao.FabricanteDAO; +import br.pro.delfino.drogaria.domain.Fabricante; + +@Path("fabricante") +public class FabricanteService { + // http://127.0.0.1:8080/Drogaria/rest/fabricante + @GET + public String listar() { + FabricanteDAO fabricanteDAO = new FabricanteDAO(); + List fabricantes = fabricanteDAO.listar("descricao"); + + Gson gson = new Gson(); + String json = gson.toJson(fabricantes); + + return json; + } + + // http://127.0.0.1:8080/Drogaria/rest/fabricante/{codigo} + // http://127.0.0.1:8080/Drogaria/rest/fabricante/10 + @GET + @Path("{codigo}") + public String buscar(@PathParam("codigo") Long codigo) { + FabricanteDAO fabricanteDAO = new FabricanteDAO(); + Fabricante fabricante = fabricanteDAO.buscar(codigo); + + Gson gson = new Gson(); + String json = gson.toJson(fabricante); + + return json; + } + + // http://127.0.0.1:8080/Drogaria/rest/fabricante + @POST + public String salvar(String json) { + Gson gson = new Gson(); + Fabricante fabricante = gson.fromJson(json, Fabricante.class); + + FabricanteDAO fabricanteDAO = new FabricanteDAO(); + fabricanteDAO.merge(fabricante); + + String jsonSaida = gson.toJson(fabricante); + return jsonSaida; + } + + // http://127.0.0.1:8080/Drogaria/rest/fabricante + @PUT + public String editar(String json) { + Gson gson = new Gson(); + Fabricante fabricante = gson.fromJson(json, Fabricante.class); + + FabricanteDAO fabricanteDAO = new FabricanteDAO(); + fabricanteDAO.editar(fabricante); + + String jsonSaida = gson.toJson(fabricante); + return jsonSaida; + } + + // http://127.0.0.1:8080/Drogaria/rest/fabricante/{codigo} + // http://127.0.0.1:8080/Drogaria/rest/fabricante/10 + @DELETE + @Path("{codigo}") + public String excluir(@PathParam("codigo") Long codigo){ + FabricanteDAO fabricanteDAO = new FabricanteDAO(); + + Fabricante fabricante = fabricanteDAO.buscar(codigo); + fabricanteDAO.excluir(fabricante); + + Gson gson = new Gson(); + String saida = gson.toJson(fabricante); + return saida; + } +} diff --git a/289_Schedule_Novo_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/service/ProdutoService.java b/289_Schedule_Novo_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/service/ProdutoService.java new file mode 100644 index 0000000..4dfdf40 --- /dev/null +++ b/289_Schedule_Novo_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/service/ProdutoService.java @@ -0,0 +1,39 @@ +package br.pro.delfino.drogaria.service; + +import java.util.List; + +import javax.ws.rs.GET; +import javax.ws.rs.POST; +import javax.ws.rs.Path; + +import com.google.gson.Gson; + +import br.pro.delfino.drogaria.dao.ProdutoDAO; +import br.pro.delfino.drogaria.domain.Produto; + +// http://127.0.0.1:8080/Drogaria/rest/produto +@Path("produto") +public class ProdutoService { + @GET + public String listar(){ + ProdutoDAO produtoDAO = new ProdutoDAO(); + List produtos = produtoDAO.listar("descricao"); + + Gson gson = new Gson(); + String json = gson.toJson(produtos); + + return json; + } + + @POST + public String salvar (String json){ + Gson gson = new Gson(); + Produto produto = gson.fromJson(json, Produto.class); + + ProdutoDAO produtoDAO = new ProdutoDAO(); + produto = produtoDAO.merge(produto); + + String jsonSaida = gson.toJson(produto); + return jsonSaida; + } +} diff --git a/289_Schedule_Novo_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/util/DrogariaResourceConfig.java b/289_Schedule_Novo_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/util/DrogariaResourceConfig.java new file mode 100644 index 0000000..2c997a9 --- /dev/null +++ b/289_Schedule_Novo_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/util/DrogariaResourceConfig.java @@ -0,0 +1,13 @@ +package br.pro.delfino.drogaria.util; + +import javax.ws.rs.ApplicationPath; + +import org.glassfish.jersey.server.ResourceConfig; + +//http://localhost:8080/Drogaria/rest +@ApplicationPath("rest") +public class DrogariaResourceConfig extends ResourceConfig { + public DrogariaResourceConfig(){ + packages("br.pro.delfino.drogaria.service"); + } +} diff --git a/289_Schedule_Novo_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/util/HibernateContexto.java b/289_Schedule_Novo_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/util/HibernateContexto.java new file mode 100644 index 0000000..71869d7 --- /dev/null +++ b/289_Schedule_Novo_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/util/HibernateContexto.java @@ -0,0 +1,18 @@ +package br.pro.delfino.drogaria.util; + +import javax.servlet.ServletContextEvent; +import javax.servlet.ServletContextListener; + +public class HibernateContexto implements ServletContextListener { + + @Override + public void contextDestroyed(ServletContextEvent event) { + HibernateUtil.getFabricaDeSessoes().close(); + } + + @Override + public void contextInitialized(ServletContextEvent event) { + HibernateUtil.getFabricaDeSessoes(); + } + +} diff --git a/289_Schedule_Novo_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/util/HibernateUtil.java b/289_Schedule_Novo_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/util/HibernateUtil.java new file mode 100644 index 0000000..693551b --- /dev/null +++ b/289_Schedule_Novo_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/util/HibernateUtil.java @@ -0,0 +1,47 @@ +package br.pro.delfino.drogaria.util; + +import java.sql.Connection; +import java.sql.SQLException; + +import org.hibernate.Session; +import org.hibernate.SessionFactory; +import org.hibernate.boot.registry.StandardServiceRegistryBuilder; +import org.hibernate.cfg.Configuration; +import org.hibernate.jdbc.ReturningWork; +import org.hibernate.service.ServiceRegistry; + +public class HibernateUtil { + private static SessionFactory fabricaDeSessoes = criarFabricaDeSessoes(); + + public static SessionFactory getFabricaDeSessoes() { + return fabricaDeSessoes; + } + + public static Connection getConexao(){ + Session sessao = fabricaDeSessoes.openSession(); + + Connection conexao = sessao.doReturningWork(new ReturningWork() { + @Override + public Connection execute(Connection conn) throws SQLException { + return conn; + } + }); + + return conexao; + } + + private static SessionFactory criarFabricaDeSessoes() { + try { + Configuration configuracao = new Configuration().configure(); + + ServiceRegistry registro = new StandardServiceRegistryBuilder().applySettings(configuracao.getProperties()).build(); + + SessionFactory fabrica = configuracao.buildSessionFactory(registro); + + return fabrica; + } catch (Throwable ex) { + System.err.println("A fábrica de sessões não pode ser criada." + ex); + throw new ExceptionInInitializerError(ex); + } + } +} diff --git a/289_Schedule_Novo_Evento/Drogaria/src/main/resources/hibernate.cfg.xml b/289_Schedule_Novo_Evento/Drogaria/src/main/resources/hibernate.cfg.xml new file mode 100644 index 0000000..65f392e --- /dev/null +++ b/289_Schedule_Novo_Evento/Drogaria/src/main/resources/hibernate.cfg.xml @@ -0,0 +1,51 @@ + + + + + + + + + + com.mysql.jdbc.Driver + jdbc:mysql://127.0.0.1:3306/drogaria + root + q1w2e3r4 + + + 1 + + + org.hibernate.dialect.MySQL5InnoDBDialect + + + thread + + + org.hibernate.cache.internal.NoCacheProvider + + + true + + + update + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/289_Schedule_Novo_Evento/Drogaria/src/main/webapp/WEB-INF/springsecurity.taglib.xml b/289_Schedule_Novo_Evento/Drogaria/src/main/webapp/WEB-INF/springsecurity.taglib.xml new file mode 100644 index 0000000..9d6938c --- /dev/null +++ b/289_Schedule_Novo_Evento/Drogaria/src/main/webapp/WEB-INF/springsecurity.taglib.xml @@ -0,0 +1,32 @@ + + + + http://www.springframework.org/security/tags + + authorize + org.springframework.faces.security.FaceletsAuthorizeTagHandler + + + areAllGranted + org.springframework.faces.security.FaceletsAuthorizeTagUtils + boolean areAllGranted(java.lang.String) + + + areAnyGranted + org.springframework.faces.security.FaceletsAuthorizeTagUtils + boolean areAnyGranted(java.lang.String) + + + areNotGranted + org.springframework.faces.security.FaceletsAuthorizeTagUtils + boolean areNotGranted(java.lang.String) + + + isAllowed + org.springframework.faces.security.FaceletsAuthorizeTagUtils + boolean isAllowed(java.lang.String, + java.lang.String) + + \ No newline at end of file diff --git a/289_Schedule_Novo_Evento/Drogaria/src/main/webapp/WEB-INF/web.xml b/289_Schedule_Novo_Evento/Drogaria/src/main/webapp/WEB-INF/web.xml new file mode 100644 index 0000000..6b0cf5d --- /dev/null +++ b/289_Schedule_Novo_Evento/Drogaria/src/main/webapp/WEB-INF/web.xml @@ -0,0 +1,48 @@ + + + + + Drogaria + + + + pages/principal.xhtml + + + + + javax.faces.PROJECT_STAGE + Development + + + + + primefaces.THEME + blitzer + + + + + primefaces.UPLOADER + native + + + + + Faces Servlet + javax.faces.webapp.FacesServlet + 1 + + + Faces Servlet + *.xhtml + + + + + br.pro.delfino.drogaria.util.HibernateContexto + + \ No newline at end of file diff --git a/289_Schedule_Novo_Evento/Drogaria/src/main/webapp/pages/autenticacao.xhtml b/289_Schedule_Novo_Evento/Drogaria/src/main/webapp/pages/autenticacao.xhtml new file mode 100644 index 0000000..e41a833 --- /dev/null +++ b/289_Schedule_Novo_Evento/Drogaria/src/main/webapp/pages/autenticacao.xhtml @@ -0,0 +1,36 @@ + + + + + + Autenticação + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/289_Schedule_Novo_Evento/Drogaria/src/main/webapp/pages/caixa.xhtml b/289_Schedule_Novo_Evento/Drogaria/src/main/webapp/pages/caixa.xhtml new file mode 100644 index 0000000..94fc8a1 --- /dev/null +++ b/289_Schedule_Novo_Evento/Drogaria/src/main/webapp/pages/caixa.xhtml @@ -0,0 +1,47 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/289_Schedule_Novo_Evento/Drogaria/src/main/webapp/pages/cidades.xhtml b/289_Schedule_Novo_Evento/Drogaria/src/main/webapp/pages/cidades.xhtml new file mode 100644 index 0000000..504f3a3 --- /dev/null +++ b/289_Schedule_Novo_Evento/Drogaria/src/main/webapp/pages/cidades.xhtml @@ -0,0 +1,100 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/289_Schedule_Novo_Evento/Drogaria/src/main/webapp/pages/clientes.xhtml b/289_Schedule_Novo_Evento/Drogaria/src/main/webapp/pages/clientes.xhtml new file mode 100644 index 0000000..4e3cfb5 --- /dev/null +++ b/289_Schedule_Novo_Evento/Drogaria/src/main/webapp/pages/clientes.xhtml @@ -0,0 +1,94 @@ + + + + + + Clientes + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/289_Schedule_Novo_Evento/Drogaria/src/main/webapp/pages/estados.xhtml b/289_Schedule_Novo_Evento/Drogaria/src/main/webapp/pages/estados.xhtml new file mode 100644 index 0000000..0cddf5e --- /dev/null +++ b/289_Schedule_Novo_Evento/Drogaria/src/main/webapp/pages/estados.xhtml @@ -0,0 +1,90 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/289_Schedule_Novo_Evento/Drogaria/src/main/webapp/pages/fabricantes.xhtml b/289_Schedule_Novo_Evento/Drogaria/src/main/webapp/pages/fabricantes.xhtml new file mode 100644 index 0000000..3904db0 --- /dev/null +++ b/289_Schedule_Novo_Evento/Drogaria/src/main/webapp/pages/fabricantes.xhtml @@ -0,0 +1,78 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/289_Schedule_Novo_Evento/Drogaria/src/main/webapp/pages/historico.xhtml b/289_Schedule_Novo_Evento/Drogaria/src/main/webapp/pages/historico.xhtml new file mode 100644 index 0000000..184a864 --- /dev/null +++ b/289_Schedule_Novo_Evento/Drogaria/src/main/webapp/pages/historico.xhtml @@ -0,0 +1,64 @@ + + + + + + Histórico + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/289_Schedule_Novo_Evento/Drogaria/src/main/webapp/pages/pessoas.xhtml b/289_Schedule_Novo_Evento/Drogaria/src/main/webapp/pages/pessoas.xhtml new file mode 100644 index 0000000..7d68e8c --- /dev/null +++ b/289_Schedule_Novo_Evento/Drogaria/src/main/webapp/pages/pessoas.xhtml @@ -0,0 +1,162 @@ + + + + + + Pessoas + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/289_Schedule_Novo_Evento/Drogaria/src/main/webapp/pages/principal.xhtml b/289_Schedule_Novo_Evento/Drogaria/src/main/webapp/pages/principal.xhtml new file mode 100644 index 0000000..726842c --- /dev/null +++ b/289_Schedule_Novo_Evento/Drogaria/src/main/webapp/pages/principal.xhtml @@ -0,0 +1,14 @@ + + + + + + + + + \ No newline at end of file diff --git a/289_Schedule_Novo_Evento/Drogaria/src/main/webapp/pages/produtos.xhtml b/289_Schedule_Novo_Evento/Drogaria/src/main/webapp/pages/produtos.xhtml new file mode 100644 index 0000000..56c5db4 --- /dev/null +++ b/289_Schedule_Novo_Evento/Drogaria/src/main/webapp/pages/produtos.xhtml @@ -0,0 +1,141 @@ + + + + + + Produtos + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/289_Schedule_Novo_Evento/Drogaria/src/main/webapp/pages/produtosEdicao.xhtml b/289_Schedule_Novo_Evento/Drogaria/src/main/webapp/pages/produtosEdicao.xhtml new file mode 100644 index 0000000..9eae78a --- /dev/null +++ b/289_Schedule_Novo_Evento/Drogaria/src/main/webapp/pages/produtosEdicao.xhtml @@ -0,0 +1,67 @@ + + + + + + + + + + + + Produtos + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/289_Schedule_Novo_Evento/Drogaria/src/main/webapp/pages/produtosListagem.xhtml b/289_Schedule_Novo_Evento/Drogaria/src/main/webapp/pages/produtosListagem.xhtml new file mode 100644 index 0000000..2b30417 --- /dev/null +++ b/289_Schedule_Novo_Evento/Drogaria/src/main/webapp/pages/produtosListagem.xhtml @@ -0,0 +1,59 @@ + + + + + + + + + + + Produtos + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/289_Schedule_Novo_Evento/Drogaria/src/main/webapp/pages/testeJSF.xhtml b/289_Schedule_Novo_Evento/Drogaria/src/main/webapp/pages/testeJSF.xhtml new file mode 100644 index 0000000..c20659b --- /dev/null +++ b/289_Schedule_Novo_Evento/Drogaria/src/main/webapp/pages/testeJSF.xhtml @@ -0,0 +1,12 @@ + + + + + + Teste JSF + + + + + \ No newline at end of file diff --git a/289_Schedule_Novo_Evento/Drogaria/src/main/webapp/pages/testePrimeFaces.xhtml b/289_Schedule_Novo_Evento/Drogaria/src/main/webapp/pages/testePrimeFaces.xhtml new file mode 100644 index 0000000..6c4d434 --- /dev/null +++ b/289_Schedule_Novo_Evento/Drogaria/src/main/webapp/pages/testePrimeFaces.xhtml @@ -0,0 +1,14 @@ + + + + + + Teste PrimeFaces + + + + + \ No newline at end of file diff --git a/289_Schedule_Novo_Evento/Drogaria/src/main/webapp/pages/usuarios.xhtml b/289_Schedule_Novo_Evento/Drogaria/src/main/webapp/pages/usuarios.xhtml new file mode 100644 index 0000000..45dd761 --- /dev/null +++ b/289_Schedule_Novo_Evento/Drogaria/src/main/webapp/pages/usuarios.xhtml @@ -0,0 +1,97 @@ + + + + + + Usuários + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/289_Schedule_Novo_Evento/Drogaria/src/main/webapp/pages/vendas.xhtml b/289_Schedule_Novo_Evento/Drogaria/src/main/webapp/pages/vendas.xhtml new file mode 100644 index 0000000..4485892 --- /dev/null +++ b/289_Schedule_Novo_Evento/Drogaria/src/main/webapp/pages/vendas.xhtml @@ -0,0 +1,156 @@ + + + + + + Vendas + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/289_Schedule_Novo_Evento/Drogaria/src/main/webapp/reports/estados.jasper b/289_Schedule_Novo_Evento/Drogaria/src/main/webapp/reports/estados.jasper new file mode 100644 index 0000000..96a1278 Binary files /dev/null and b/289_Schedule_Novo_Evento/Drogaria/src/main/webapp/reports/estados.jasper differ diff --git a/289_Schedule_Novo_Evento/Drogaria/src/main/webapp/reports/estados.jrxml b/289_Schedule_Novo_Evento/Drogaria/src/main/webapp/reports/estados.jrxml new file mode 100644 index 0000000..76da981 --- /dev/null +++ b/289_Schedule_Novo_Evento/Drogaria/src/main/webapp/reports/estados.jrxml @@ -0,0 +1,102 @@ + + + + + + + + + + + + + + + + + + + + <band height="80" splitType="Stretch"> + <image hAlign="Center" vAlign="Middle"> + <reportElement x="0" y="0" width="555" height="80" uuid="6f3208e9-d291-48b3-b13d-3ec9ef72cd3e"> + <property name="com.jaspersoft.studio.unit.width" value="pixel"/> + </reportElement> + <imageExpression><![CDATA["C:/Programação Web com Java/Workspace/Drogaria/src/main/webapp/resources/images/banner.jpg"]]></imageExpression> + </image> + </band> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/289_Schedule_Novo_Evento/Drogaria/src/main/webapp/reports/produtos.jasper b/289_Schedule_Novo_Evento/Drogaria/src/main/webapp/reports/produtos.jasper new file mode 100644 index 0000000..ad55e5f Binary files /dev/null and b/289_Schedule_Novo_Evento/Drogaria/src/main/webapp/reports/produtos.jasper differ diff --git a/289_Schedule_Novo_Evento/Drogaria/src/main/webapp/reports/produtos.jrxml b/289_Schedule_Novo_Evento/Drogaria/src/main/webapp/reports/produtos.jrxml new file mode 100644 index 0000000..800aed0 --- /dev/null +++ b/289_Schedule_Novo_Evento/Drogaria/src/main/webapp/reports/produtos.jrxml @@ -0,0 +1,130 @@ + + + + + + + + + + + + + + + + + + + + + <band height="79" splitType="Stretch"> + <image hAlign="Center"> + <reportElement x="0" y="0" width="555" height="79" uuid="727feda0-73ba-4c27-aa2c-a431492bd3d6"> + <property name="com.jaspersoft.studio.unit.width" value="pixel"/> + </reportElement> + <imageExpression><![CDATA["C:/Programação Web com Java/Workspace/Drogaria/src/main/webapp/resources/images/banner.jpg"]]></imageExpression> + </image> + </band> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/289_Schedule_Novo_Evento/Drogaria/src/main/webapp/resources/css/estilos.css b/289_Schedule_Novo_Evento/Drogaria/src/main/webapp/resources/css/estilos.css new file mode 100644 index 0000000..4acdd7f --- /dev/null +++ b/289_Schedule_Novo_Evento/Drogaria/src/main/webapp/resources/css/estilos.css @@ -0,0 +1,19 @@ +@CHARSET "UTF-8"; + +.imagemCentralizada { + display: block; + margin-left: auto; + margin-right: auto; +} + +.divTopo { + padding-bottom: 5px; +} + +.divCabecalho { + padding-bottom: 5px; +} + +.ui-widget, .ui-widget .ui-widget { + font-size: 100% !important; +} \ No newline at end of file diff --git a/289_Schedule_Novo_Evento/Drogaria/src/main/webapp/resources/images/banner.jpg b/289_Schedule_Novo_Evento/Drogaria/src/main/webapp/resources/images/banner.jpg new file mode 100644 index 0000000..f58cc21 Binary files /dev/null and b/289_Schedule_Novo_Evento/Drogaria/src/main/webapp/resources/images/banner.jpg differ diff --git a/289_Schedule_Novo_Evento/Drogaria/src/main/webapp/resources/js/scripts.js b/289_Schedule_Novo_Evento/Drogaria/src/main/webapp/resources/js/scripts.js new file mode 100644 index 0000000..e39ad9b --- /dev/null +++ b/289_Schedule_Novo_Evento/Drogaria/src/main/webapp/resources/js/scripts.js @@ -0,0 +1,26 @@ +PrimeFaces.locales['pt_BR'] = { + closeText: 'Fechar', + prevText: 'Anterior', + nextText: 'Próximo', + currentText: 'Começo', + monthNames: ['Janeiro','Fevereiro','Março','Abril','Maio','Junho','Julho','Agosto','Setembro','Outubro','Novembro','Dezembro'], + monthNamesShort: ['Jan','Fev','Mar','Abr','Mai','Jun', 'Jul','Ago','Set','Out','Nov','Dez'], + dayNames: ['Domingo','Segunda','Terça','Quarta','Quinta','Sexta','Sábado'], + dayNamesShort: ['Dom','Seg','Ter','Qua','Qui','Sex','Sáb'], + dayNamesMin: ['D','S','T','Q','Q','S','S'], + weekHeader: 'Semana', + firstDay: 0, + isRTL: false, + showMonthAfterYear: false, + yearSuffix: '', + timeOnlyTitle: 'Só Horas', + timeText: 'Tempo', + hourText: 'Hora', + minuteText: 'Minuto', + secondText: 'Segundo', + ampm: false, + month: 'Mês', + week: 'Semana', + day: 'Dia', + allDayText : 'Todo o Dia' +}; \ No newline at end of file diff --git a/289_Schedule_Novo_Evento/Drogaria/src/main/webapp/templates/modelo.xhtml b/289_Schedule_Novo_Evento/Drogaria/src/main/webapp/templates/modelo.xhtml new file mode 100644 index 0000000..62d3d1c --- /dev/null +++ b/289_Schedule_Novo_Evento/Drogaria/src/main/webapp/templates/modelo.xhtml @@ -0,0 +1,55 @@ + + + + + + SiGDro + + + + + +
+
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+
+ \ No newline at end of file diff --git a/289_Schedule_Novo_Evento/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/CaixaDAOTest.java b/289_Schedule_Novo_Evento/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/CaixaDAOTest.java new file mode 100644 index 0000000..b5e6156 --- /dev/null +++ b/289_Schedule_Novo_Evento/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/CaixaDAOTest.java @@ -0,0 +1,33 @@ +package br.pro.delfino.drogaria.dao; + +import java.math.BigDecimal; +import java.text.ParseException; +import java.text.SimpleDateFormat; + +import org.junit.Assert; +import org.junit.Ignore; +import org.junit.Test; + +import br.pro.delfino.drogaria.domain.Caixa; + +public class CaixaDAOTest { + @Test + @Ignore + public void salvar() throws ParseException { + Caixa caixa = new Caixa(); + caixa.setDataAbertura(new SimpleDateFormat("dd/MM/yyyy").parse("14/12/2015")); + caixa.setValorAbertura(new BigDecimal("100.00")); + + CaixaDAO caixaDAO = new CaixaDAO(); + caixaDAO.salvar(caixa); + } + + @Test + @Ignore + public void buscar() throws ParseException { + CaixaDAO caixaDAO = new CaixaDAO(); + Caixa caixa = caixaDAO.buscar(new SimpleDateFormat("dd/MM/yyyy").parse("13/12/2015")); + System.out.println(caixa); + Assert.assertNull(caixa); + } +} diff --git a/289_Schedule_Novo_Evento/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/CidadeDAOTest.java b/289_Schedule_Novo_Evento/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/CidadeDAOTest.java new file mode 100644 index 0000000..ec59599 --- /dev/null +++ b/289_Schedule_Novo_Evento/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/CidadeDAOTest.java @@ -0,0 +1,130 @@ +package br.pro.delfino.drogaria.dao; + +import java.util.List; + +import org.junit.Ignore; +import org.junit.Test; + +import br.pro.delfino.drogaria.domain.Cidade; +import br.pro.delfino.drogaria.domain.Estado; + +public class CidadeDAOTest { + @Test + @Ignore + public void salvar() { + Long codigoEstado = 1L; + + EstadoDAO estadoDAO = new EstadoDAO(); + + Estado estado = estadoDAO.buscar(codigoEstado); + + Cidade cidade = new Cidade(); + cidade.setNome("Marília"); + cidade.setEstado(estado); + + CidadeDAO cidadeDAO = new CidadeDAO(); + cidadeDAO.salvar(cidade); + } + + @Test + @Ignore + public void listar() { + CidadeDAO cidadeDAO = new CidadeDAO(); + List resultado = cidadeDAO.listar(); + + for (Cidade cidade : resultado) { + System.out.println("Código da Cidade: " + cidade.getCodigo()); + System.out.println("Nome da Cidade: " + cidade.getNome()); + System.out.println("Código do Estado: " + cidade.getEstado().getCodigo()); + System.out.println("Sigla do Estado: " + cidade.getEstado().getSigla()); + System.out.println("Nome do Estado: " + cidade.getEstado().getNome()); + System.out.println(); + } + } + + @Test + @Ignore + public void buscar(){ + Long codigo = 7L; + + CidadeDAO cidadeDAO = new CidadeDAO(); + Cidade cidade = cidadeDAO.buscar(codigo); + + System.out.println("Código da Cidade: " + cidade.getCodigo()); + System.out.println("Nome da Cidade: " + cidade.getNome()); + System.out.println("Código do Estado: " + cidade.getEstado().getCodigo()); + System.out.println("Sigla do Estado: " + cidade.getEstado().getSigla()); + System.out.println("Nome do Estado: " + cidade.getEstado().getNome()); + } + + @Test + @Ignore + public void excluir(){ + Long codigo = 7L; + + CidadeDAO cidadeDAO = new CidadeDAO(); + Cidade cidade = cidadeDAO.buscar(codigo); + + cidadeDAO.excluir(cidade); + + System.out.println("Cidade Removida"); + System.out.println("Código da Cidade: " + cidade.getCodigo()); + System.out.println("Nome da Cidade: " + cidade.getNome()); + System.out.println("Código do Estado: " + cidade.getEstado().getCodigo()); + System.out.println("Sigla do Estado: " + cidade.getEstado().getSigla()); + System.out.println("Nome do Estado: " + cidade.getEstado().getNome()); + } + + @Test + @Ignore + public void editar(){ + Long codigoCidade = 6L; + Long codigoEstado = 11L; + + EstadoDAO estadoDAO = new EstadoDAO(); + Estado estado = estadoDAO.buscar(codigoEstado); + + System.out.println("Código do Estado: " + estado.getCodigo()); + System.out.println("Sigla do Estado: " + estado.getSigla()); + System.out.println("Nome do Estado: " + estado.getNome()); + + CidadeDAO cidadeDAO = new CidadeDAO(); + Cidade cidade = cidadeDAO.buscar(codigoCidade); + + System.out.println("Cidade A Ser Editada"); + System.out.println("Código da Cidade: " + cidade.getCodigo()); + System.out.println("Nome da Cidade: " + cidade.getNome()); + System.out.println("Código do Estado: " + cidade.getEstado().getCodigo()); + System.out.println("Sigla do Estado: " + cidade.getEstado().getSigla()); + System.out.println("Nome do Estado: " + cidade.getEstado().getNome()); + + cidade.setNome("Guarapuava"); + cidade.setEstado(estado); + + cidadeDAO.editar(cidade); + + System.out.println("Cidade Editada"); + System.out.println("Código da Cidade: " + cidade.getCodigo()); + System.out.println("Nome da Cidade: " + cidade.getNome()); + System.out.println("Código do Estado: " + cidade.getEstado().getCodigo()); + System.out.println("Sigla do Estado: " + cidade.getEstado().getSigla()); + System.out.println("Nome do Estado: " + cidade.getEstado().getNome()); + } + + @Test + public void buscarPorEstado() { + Long estadoCodigo = 3L; + + CidadeDAO cidadeDAO = new CidadeDAO(); + List resultado = cidadeDAO.buscarPorEstado(estadoCodigo); + + for (Cidade cidade : resultado) { + System.out.println("Código da Cidade: " + cidade.getCodigo()); + System.out.println("Nome da Cidade: " + cidade.getNome()); + System.out.println("Código do Estado: " + cidade.getEstado().getCodigo()); + System.out.println("Sigla do Estado: " + cidade.getEstado().getSigla()); + System.out.println("Nome do Estado: " + cidade.getEstado().getNome()); + System.out.println(); + } + } +} diff --git a/289_Schedule_Novo_Evento/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/ClienteDAOTest.java b/289_Schedule_Novo_Evento/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/ClienteDAOTest.java new file mode 100644 index 0000000..4d557d9 --- /dev/null +++ b/289_Schedule_Novo_Evento/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/ClienteDAOTest.java @@ -0,0 +1,29 @@ +package br.pro.delfino.drogaria.dao; + +import java.text.ParseException; +import java.text.SimpleDateFormat; + +import org.junit.Ignore; +import org.junit.Test; + +import br.pro.delfino.drogaria.domain.Cliente; +import br.pro.delfino.drogaria.domain.Pessoa; + +public class ClienteDAOTest { + @Test + @Ignore + public void salvar() throws ParseException { + PessoaDAO pessoaDAO = new PessoaDAO(); + Pessoa pessoa = pessoaDAO.buscar(2L); + + Cliente cliente = new Cliente(); + cliente.setDataCadastro(new SimpleDateFormat("dd/MM/yyyy").parse("09/06/2015")); + cliente.setLiberado(false); + cliente.setPessoa(pessoa); + + ClienteDAO clienteDAO = new ClienteDAO(); + clienteDAO.salvar(cliente); + + System.out.println("Cliente salvo com sucesso."); + } +} diff --git a/289_Schedule_Novo_Evento/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/EstadoDAOTest.java b/289_Schedule_Novo_Evento/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/EstadoDAOTest.java new file mode 100644 index 0000000..f84a086 --- /dev/null +++ b/289_Schedule_Novo_Evento/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/EstadoDAOTest.java @@ -0,0 +1,88 @@ +package br.pro.delfino.drogaria.dao; + +import java.util.List; + +import org.junit.Ignore; +import org.junit.Test; + +import br.pro.delfino.drogaria.domain.Estado; + +public class EstadoDAOTest { + @Test + @Ignore + public void salvar() { + Estado estado = new Estado(); + estado.setNome("Rio Grande do Sul"); + estado.setSigla("RS"); + + EstadoDAO estadoDAO = new EstadoDAO(); + estadoDAO.salvar(estado); + } + + @Test + @Ignore + public void listar() { + EstadoDAO estadoDAO = new EstadoDAO(); + List resultado = estadoDAO.listar(); + + System.out.println("Total de Registros Encontrados: " + resultado.size()); + + for (Estado estado : resultado) { + System.out.println(estado.getCodigo() + " - " + estado.getSigla() + " - " + estado.getNome()); + } + } + + @Test + @Ignore + public void buscar(){ + Long codigo = 3L; + + EstadoDAO estadoDAO = new EstadoDAO(); + Estado estado = estadoDAO.buscar(codigo); + + if(estado == null){ + System.out.println("Nenhum registro encontrado"); + }else{ + System.out.println("Registro encontrado:"); + System.out.println(estado.getCodigo() + " - " + estado.getSigla() + " - " + estado.getNome()); + } + } + + @Test + @Ignore + public void excluir(){ + Long codigo = 1L; + EstadoDAO estadoDAO = new EstadoDAO(); + Estado estado = estadoDAO.buscar(codigo); + + if(estado == null){ + System.out.println("Nenhum registro encontrado"); + }else{ + estadoDAO.excluir(estado); + System.out.println("Registro removido:"); + System.out.println(estado.getCodigo() + " - " + estado.getSigla() + " - " + estado.getNome()); + } + } + + @Test + @Ignore + public void editar(){ + Long codigo = 10L; + EstadoDAO estadoDAO = new EstadoDAO(); + Estado estado = estadoDAO.buscar(codigo); + + if(estado == null){ + System.out.println("Nenhum registro encontrado"); + }else{ + System.out.println("Registro editado - Antes:"); + System.out.println(estado.getCodigo() + " - " + estado.getSigla() + " - " + estado.getNome()); + + estado.setNome("Santa Catarina"); + estado.setSigla("SC"); + estadoDAO.editar(estado); + + System.out.println("Registro editado - Depois:"); + System.out.println(estado.getCodigo() + " - " + estado.getSigla() + " - " + estado.getNome()); + } + } +} diff --git a/289_Schedule_Novo_Evento/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/FabricanteDAOTest.java b/289_Schedule_Novo_Evento/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/FabricanteDAOTest.java new file mode 100644 index 0000000..56fb124 --- /dev/null +++ b/289_Schedule_Novo_Evento/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/FabricanteDAOTest.java @@ -0,0 +1,63 @@ +package br.pro.delfino.drogaria.dao; + +import java.util.List; + +import org.junit.Ignore; +import org.junit.Test; + +import br.pro.delfino.drogaria.domain.Fabricante; + +public class FabricanteDAOTest { + @Test + @Ignore + public void salvar() { + Fabricante fabricante = new Fabricante(); + fabricante.setDescricao("Aché"); + + FabricanteDAO fabricanteDAO = new FabricanteDAO(); + fabricanteDAO.salvar(fabricante); + } + + @Test + @Ignore + public void listar() { + FabricanteDAO FabricanteDAO = new FabricanteDAO(); + List resultado = FabricanteDAO.listar(); + + System.out.println("Total de Registros Encontrados: " + resultado.size()); + + for (Fabricante fabricante : resultado) { + System.out.println(fabricante.getCodigo() + " - " + fabricante.getDescricao()); + } + } + + @Test + @Ignore + public void buscar(){ + Long codigo = 3L; + + FabricanteDAO fabricanteDAO = new FabricanteDAO(); + Fabricante fabricante = fabricanteDAO.buscar(codigo); + + if(fabricante == null){ + System.out.println("Nenhum registro encontrado"); + }else{ + System.out.println("Registro encontrado:"); + System.out.println(fabricante.getCodigo() + " - " + fabricante.getDescricao()); + } + } + + @Test + @Ignore + public void merge() { + //Fabricante fabricante = new Fabricante(); + //fabricante.setDescricao("Fabricante A"); + //FabricanteDAO fabricanteDAO = new FabricanteDAO(); + //fabricanteDAO.merge(fabricante); + + FabricanteDAO fabricanteDAO = new FabricanteDAO(); + Fabricante fabricante = fabricanteDAO.buscar(5L); + fabricante.setDescricao("Fabricante B"); + fabricanteDAO.merge(fabricante); + } +} diff --git a/289_Schedule_Novo_Evento/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/FuncionarioDAOTest.java b/289_Schedule_Novo_Evento/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/FuncionarioDAOTest.java new file mode 100644 index 0000000..06cfff7 --- /dev/null +++ b/289_Schedule_Novo_Evento/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/FuncionarioDAOTest.java @@ -0,0 +1,5 @@ +package br.pro.delfino.drogaria.dao; + +public class FuncionarioDAOTest { + +} diff --git a/289_Schedule_Novo_Evento/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/ProdutoDAOTest.java b/289_Schedule_Novo_Evento/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/ProdutoDAOTest.java new file mode 100644 index 0000000..36f8563 --- /dev/null +++ b/289_Schedule_Novo_Evento/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/ProdutoDAOTest.java @@ -0,0 +1,29 @@ +package br.pro.delfino.drogaria.dao; + +import java.math.BigDecimal; + +import org.junit.Ignore; +import org.junit.Test; + +import br.pro.delfino.drogaria.domain.Fabricante; +import br.pro.delfino.drogaria.domain.Produto; + +public class ProdutoDAOTest { + @Test + @Ignore + public void salvar(){ + FabricanteDAO fabricanteDAO = new FabricanteDAO(); + Fabricante fabricante = fabricanteDAO.buscar(new Long("3")); + + Produto produto = new Produto(); + produto.setDescricao("Cataflan 50mg com 20 Comprimidos"); + produto.setFabricante(fabricante); + produto.setPreco(new BigDecimal("13.70")); + produto.setQuantidade(new Short("7")); + + ProdutoDAO produtoDAO = new ProdutoDAO(); + produtoDAO.salvar(produto); + + System.out.println("Produto salvo com sucesso"); + } +} diff --git a/289_Schedule_Novo_Evento/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/UsuarioDAOTest.java b/289_Schedule_Novo_Evento/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/UsuarioDAOTest.java new file mode 100644 index 0000000..c567ec8 --- /dev/null +++ b/289_Schedule_Novo_Evento/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/UsuarioDAOTest.java @@ -0,0 +1,47 @@ +package br.pro.delfino.drogaria.dao; + +import org.apache.shiro.crypto.hash.SimpleHash; +import org.junit.Ignore; +import org.junit.Test; + +import br.pro.delfino.drogaria.domain.Pessoa; +import br.pro.delfino.drogaria.domain.Usuario; + +public class UsuarioDAOTest { + @Test + @Ignore + public void salvar(){ + PessoaDAO pessoaDAO = new PessoaDAO(); + Pessoa pessoa = pessoaDAO.buscar(3L); + + System.out.println("Pessoa Encontrada"); + System.out.println("Nome: " + pessoa.getNome()); + System.out.println("CPF: " + pessoa.getCpf()); + + Usuario usuario = new Usuario(); + usuario.setAtivo(true); + usuario.setPessoa(pessoa); + usuario.setSenhaSemCriptografia("q1w2e3r4"); + + SimpleHash hash = new SimpleHash("md5", usuario.getSenhaSemCriptografia()); + usuario.setSenha(hash.toHex()); + + usuario.setTipo('B'); + + UsuarioDAO usuarioDAO = new UsuarioDAO(); + usuarioDAO.salvar(usuario); + + System.out.println("Usuário salvo com sucesso."); + } + + @Test + public void autenticar(){ + String cpf = "999.999.999-99"; + String senha = "12345678"; + + UsuarioDAO usuarioDAO = new UsuarioDAO(); + Usuario usuario = usuarioDAO.autenticar(cpf, senha); + + System.out.println("Usuário autentica: " + usuario); + } +} diff --git a/289_Schedule_Novo_Evento/Drogaria/src/test/java/br/pro/delfino/drogaria/util/HibernateUtilTest.java b/289_Schedule_Novo_Evento/Drogaria/src/test/java/br/pro/delfino/drogaria/util/HibernateUtilTest.java new file mode 100644 index 0000000..75776e0 --- /dev/null +++ b/289_Schedule_Novo_Evento/Drogaria/src/test/java/br/pro/delfino/drogaria/util/HibernateUtilTest.java @@ -0,0 +1,13 @@ +package br.pro.delfino.drogaria.util; + +import org.hibernate.Session; +import org.junit.Test; + +public class HibernateUtilTest { + @Test + public void conectar(){ + Session sessao = HibernateUtil.getFabricaDeSessoes().openSession(); + sessao.close(); + HibernateUtil.getFabricaDeSessoes().close(); + } +} diff --git a/290_Schedule_Salvar_Evento/Drogaria/.tern-project b/290_Schedule_Salvar_Evento/Drogaria/.tern-project new file mode 100644 index 0000000..b6f48dd --- /dev/null +++ b/290_Schedule_Salvar_Evento/Drogaria/.tern-project @@ -0,0 +1 @@ +{"ide":{},"libs":["ecma5","browser"],"plugins":{"guess-types":{},"angular":{}}} \ No newline at end of file diff --git a/290_Schedule_Salvar_Evento/Drogaria/pom.xml b/290_Schedule_Salvar_Evento/Drogaria/pom.xml new file mode 100644 index 0000000..39b1e60 --- /dev/null +++ b/290_Schedule_Salvar_Evento/Drogaria/pom.xml @@ -0,0 +1,132 @@ + + 4.0.0 + br.pro.delfino.drogaria + Drogaria + 1.0 + war + + + + UTF-8 + + + + + + Drogaria + + + + + + org.apache.maven.plugins + maven-compiler-plugin + 3.3 + + 1.8 + 1.8 + + + + + + + + + + prime-repo + PrimeFaces Maven Repository + http://repository.primefaces.org + default + + + + + + + + org.hibernate + hibernate-core + 4.3.11.Final + + + + + mysql + mysql-connector-java + 5.1.36 + + + + + junit + junit + 4.12 + + + + + org.glassfish + javax.faces + 2.2.12 + + + + + org.primefaces + primefaces + 5.2 + + + + + org.primefaces.themes + all-themes + 1.0.10 + + + + + org.omnifaces + omnifaces + 1.11 + + + + + javax.servlet + javax.servlet-api + 3.1.0 + + + + + org.glassfish.jersey.containers + jersey-container-servlet + 2.22.1 + + + + + com.google.code.gson + gson + 2.4 + + + + + net.sf.jasperreports + jasperreports + 6.1.1 + + + + + org.apache.shiro + shiro-core + 1.2.4 + + + + \ No newline at end of file diff --git a/290_Schedule_Salvar_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/AutenticacaoBean.java b/290_Schedule_Salvar_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/AutenticacaoBean.java new file mode 100644 index 0000000..7e86b0d --- /dev/null +++ b/290_Schedule_Salvar_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/AutenticacaoBean.java @@ -0,0 +1,60 @@ +package br.pro.delfino.drogaria.bean; + +import java.io.IOException; + +import javax.annotation.PostConstruct; +import javax.faces.bean.ManagedBean; +import javax.faces.bean.SessionScoped; + +import org.omnifaces.util.Faces; +import org.omnifaces.util.Messages; + +import br.pro.delfino.drogaria.dao.UsuarioDAO; +import br.pro.delfino.drogaria.domain.Pessoa; +import br.pro.delfino.drogaria.domain.Usuario; + +@ManagedBean +@SessionScoped +public class AutenticacaoBean { + private Usuario usuario; + private Usuario usuarioLogado; + + public Usuario getUsuario() { + return usuario; + } + + public void setUsuario(Usuario usuario) { + this.usuario = usuario; + } + + public Usuario getUsuarioLogado() { + return usuarioLogado; + } + + public void setUsuarioLogado(Usuario usuarioLogado) { + this.usuarioLogado = usuarioLogado; + } + + @PostConstruct + public void iniciar() { + usuario = new Usuario(); + usuario.setPessoa(new Pessoa()); + } + + public void autenticar() { + try { + UsuarioDAO usuarioDAO = new UsuarioDAO(); + usuarioLogado = usuarioDAO.autenticar(usuario.getPessoa().getCpf(), usuario.getSenha()); + + if(usuarioLogado == null){ + Messages.addGlobalError("CPF e/ou senha incorretos"); + return; + } + + Faces.redirect("./pages/principal.xhtml"); + } catch (IOException erro) { + erro.printStackTrace(); + Messages.addGlobalError(erro.getMessage()); + } + } +} diff --git a/290_Schedule_Salvar_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/CaixaBean.java b/290_Schedule_Salvar_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/CaixaBean.java new file mode 100644 index 0000000..d9dd949 --- /dev/null +++ b/290_Schedule_Salvar_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/CaixaBean.java @@ -0,0 +1,76 @@ +package br.pro.delfino.drogaria.bean; + +import java.util.Calendar; +import java.util.Date; +import java.util.List; + +import javax.annotation.PostConstruct; +import javax.faces.bean.ManagedBean; +import javax.faces.bean.ViewScoped; + +import org.omnifaces.util.Messages; +import org.primefaces.event.SelectEvent; +import org.primefaces.model.DefaultScheduleModel; +import org.primefaces.model.ScheduleModel; + +import br.pro.delfino.drogaria.dao.CaixaDAO; +import br.pro.delfino.drogaria.dao.FuncionarioDAO; +import br.pro.delfino.drogaria.domain.Caixa; +import br.pro.delfino.drogaria.domain.Funcionario; + +@ManagedBean +@ViewScoped +public class CaixaBean { + private Caixa caixa; + + private ScheduleModel caixas; + private List funcionarios; + + public Caixa getCaixa() { + return caixa; + } + + public void setCaixa(Caixa caixa) { + this.caixa = caixa; + } + + public ScheduleModel getCaixas() { + return caixas; + } + + public void setCaixas(ScheduleModel caixas) { + this.caixas = caixas; + } + + public List getFuncionarios() { + return funcionarios; + } + + public void setFuncionarios(List funcionarios) { + this.funcionarios = funcionarios; + } + + @PostConstruct + public void listar() { + caixas = new DefaultScheduleModel(); + } + + public void novo(SelectEvent evento) { + caixa = new Caixa(); + caixa.setDataAbertura((Date) evento.getObject()); + + FuncionarioDAO funcionarioDAO = new FuncionarioDAO(); + funcionarios = funcionarioDAO.listar(); + } + + public void salvar(){ + Calendar calendar = Calendar.getInstance(); + calendar.setTime(caixa.getDataAbertura()); + calendar.add(Calendar.DATE, 1); + caixa.setDataAbertura(calendar.getTime()); + + CaixaDAO caixaDAO = new CaixaDAO(); + caixaDAO.salvar(caixa); + Messages.addGlobalInfo("Caixa aberto com sucesso"); + } +} diff --git a/290_Schedule_Salvar_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/CidadeBean.java b/290_Schedule_Salvar_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/CidadeBean.java new file mode 100644 index 0000000..4b03075 --- /dev/null +++ b/290_Schedule_Salvar_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/CidadeBean.java @@ -0,0 +1,119 @@ +package br.pro.delfino.drogaria.bean; + +import java.io.Serializable; +import java.util.List; + +import javax.annotation.PostConstruct; +import javax.faces.bean.ManagedBean; +import javax.faces.bean.ViewScoped; +import javax.faces.event.ActionEvent; + +import org.omnifaces.util.Messages; + +import br.pro.delfino.drogaria.dao.CidadeDAO; +import br.pro.delfino.drogaria.dao.EstadoDAO; +import br.pro.delfino.drogaria.domain.Cidade; +import br.pro.delfino.drogaria.domain.Estado; + +@SuppressWarnings("serial") +@ManagedBean +@ViewScoped +public class CidadeBean implements Serializable { + private Cidade cidade; + private List cidades; + private List estados; + + public Cidade getCidade() { + return cidade; + } + + public void setCidade(Cidade cidade) { + this.cidade = cidade; + } + + public List getCidades() { + return cidades; + } + + public void setCidades(List cidades) { + this.cidades = cidades; + } + + public List getEstados() { + return estados; + } + + public void setEstados(List estados) { + this.estados = estados; + } + + @PostConstruct + public void listar() { + try { + CidadeDAO cidadeDAO = new CidadeDAO(); + cidades = cidadeDAO.listar("nome"); + } catch (RuntimeException erro) { + Messages.addFlashGlobalError("Ocorreu um erro ao tentar listar as cidades"); + erro.printStackTrace(); + } + } + + public void novo() { + try { + cidade = new Cidade(); + + EstadoDAO estadoDAO = new EstadoDAO(); + estados = estadoDAO.listar("nome"); + } catch (RuntimeException erro) { + Messages.addFlashGlobalError("Ocorreu um erro ao gerar uma nova cidade"); + erro.printStackTrace(); + } + } + + public void salvar() { + try { + CidadeDAO cidadeDAO = new CidadeDAO(); + cidadeDAO.merge(cidade); + + cidade = new Cidade(); + + EstadoDAO estadoDAO = new EstadoDAO(); + estados = estadoDAO.listar(); + + cidades = cidadeDAO.listar(); + + Messages.addGlobalInfo("Cidade salva com sucesso"); + } catch (RuntimeException erro) { + Messages.addFlashGlobalError("Ocorreu um erro ao tentar salvar uma nova cidade"); + erro.printStackTrace(); + } + } + + public void excluir(ActionEvent evento) { + try { + cidade = (Cidade) evento.getComponent().getAttributes().get("cidadeSelecionada"); + + CidadeDAO cidadeDAO = new CidadeDAO(); + cidadeDAO.excluir(cidade); + + cidades = cidadeDAO.listar(); + + Messages.addGlobalInfo("Cidade removida com sucesso"); + } catch (RuntimeException erro) { + Messages.addFlashGlobalError("Ocorreu um erro ao tentar remover a cidade"); + erro.printStackTrace(); + } + } + + public void editar(ActionEvent evento){ + try { + cidade = (Cidade) evento.getComponent().getAttributes().get("cidadeSelecionada"); + + EstadoDAO estadoDAO = new EstadoDAO(); + estados = estadoDAO.listar(); + } catch (RuntimeException erro) { + Messages.addFlashGlobalError("Ocorreu um erro ao tentar selecionar uma cidade"); + erro.printStackTrace(); + } + } +} diff --git a/290_Schedule_Salvar_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/ClienteBean.java b/290_Schedule_Salvar_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/ClienteBean.java new file mode 100644 index 0000000..c96b115 --- /dev/null +++ b/290_Schedule_Salvar_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/ClienteBean.java @@ -0,0 +1,91 @@ +package br.pro.delfino.drogaria.bean; + +import java.io.Serializable; +import java.util.List; + +import javax.annotation.PostConstruct; +import javax.faces.bean.ManagedBean; +import javax.faces.bean.ViewScoped; + +import org.omnifaces.util.Messages; + +import br.pro.delfino.drogaria.dao.ClienteDAO; +import br.pro.delfino.drogaria.dao.PessoaDAO; +import br.pro.delfino.drogaria.domain.Cliente; +import br.pro.delfino.drogaria.domain.Pessoa; + +@SuppressWarnings("serial") +@ManagedBean +@ViewScoped +public class ClienteBean implements Serializable { + private Cliente cliente; + + private List clientes; + private List pessoas; + + public Cliente getCliente() { + return cliente; + } + + public void setCliente(Cliente cliente) { + this.cliente = cliente; + } + + public List getClientes() { + return clientes; + } + + public void setClientes(List clientes) { + this.clientes = clientes; + } + + public List getPessoas() { + return pessoas; + } + + public void setPessoas(List pessoas) { + this.pessoas = pessoas; + } + + @PostConstruct + public void listar() { + try { + ClienteDAO clienteDAO = new ClienteDAO(); + clientes = clienteDAO.listar("dataCadastro"); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar listar os clientes"); + erro.printStackTrace(); + } + } + + public void novo() { + try { + cliente = new Cliente(); + + PessoaDAO pessoaDAO = new PessoaDAO(); + pessoas = pessoaDAO.listar("nome"); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar criar um novo cliente"); + erro.printStackTrace(); + } + } + + public void salvar() { + try { + ClienteDAO clienteDAO = new ClienteDAO(); + clienteDAO.merge(cliente); + + cliente = new Cliente(); + + clientes = clienteDAO.listar("dataCadastro"); + + PessoaDAO pessoaDAO = new PessoaDAO(); + pessoas = pessoaDAO.listar("nome"); + + Messages.addGlobalInfo("Cliente salvo com sucesso"); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar salvar o cliente"); + erro.printStackTrace(); + } + } +} diff --git a/290_Schedule_Salvar_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/EstadoBean.java b/290_Schedule_Salvar_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/EstadoBean.java new file mode 100644 index 0000000..b4921fe --- /dev/null +++ b/290_Schedule_Salvar_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/EstadoBean.java @@ -0,0 +1,88 @@ +package br.pro.delfino.drogaria.bean; + +import java.io.Serializable; +import java.util.List; + +import javax.annotation.PostConstruct; +import javax.faces.bean.ManagedBean; +import javax.faces.bean.ViewScoped; +import javax.faces.event.ActionEvent; + +import org.omnifaces.util.Messages; + +import br.pro.delfino.drogaria.dao.EstadoDAO; +import br.pro.delfino.drogaria.domain.Estado; + +@SuppressWarnings("serial") +@ManagedBean +@ViewScoped +public class EstadoBean implements Serializable { + private Estado estado; + private List estados; + + public Estado getEstado() { + return estado; + } + + public void setEstado(Estado estado) { + this.estado = estado; + } + + public List getEstados() { + return estados; + } + + public void setEstados(List estados) { + this.estados = estados; + } + + @PostConstruct + public void listar() { + try { + EstadoDAO estadoDAO = new EstadoDAO(); + estados = estadoDAO.listar(); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar listar os estados"); + erro.printStackTrace(); + } + } + + public void novo() { + estado = new Estado(); + } + + public void salvar() { + try { + EstadoDAO estadoDAO = new EstadoDAO(); + estadoDAO.merge(estado); + + estado = new Estado(); + estados = estadoDAO.listar(); + + Messages.addGlobalInfo("Estado salvo com sucesso"); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar salvar o estado"); + erro.printStackTrace(); + } + } + + public void excluir(ActionEvent evento) { + try { + estado = (Estado) evento.getComponent().getAttributes().get("estadoSelecionado"); + + EstadoDAO estadoDAO = new EstadoDAO(); + estadoDAO.excluir(estado); + + estados = estadoDAO.listar(); + + Messages.addGlobalInfo("Estado removido com sucesso"); + } catch (RuntimeException erro) { + Messages.addFlashGlobalError("Ocorreu um erro ao tentar remover o estado"); + erro.printStackTrace(); + } + } + + public void editar(ActionEvent evento) { + estado = (Estado) evento.getComponent().getAttributes().get("estadoSelecionado"); + } +} diff --git a/290_Schedule_Salvar_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/FabricanteBean.java b/290_Schedule_Salvar_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/FabricanteBean.java new file mode 100644 index 0000000..7fddf7d --- /dev/null +++ b/290_Schedule_Salvar_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/FabricanteBean.java @@ -0,0 +1,116 @@ +package br.pro.delfino.drogaria.bean; + +import java.io.Serializable; +import java.util.Arrays; +import java.util.List; + +import javax.annotation.PostConstruct; +import javax.faces.bean.ManagedBean; +import javax.faces.bean.ViewScoped; +import javax.faces.event.ActionEvent; +import javax.ws.rs.client.Client; +import javax.ws.rs.client.ClientBuilder; +import javax.ws.rs.client.Entity; +import javax.ws.rs.client.WebTarget; + +import org.omnifaces.util.Messages; + +import com.google.gson.Gson; + +import br.pro.delfino.drogaria.domain.Fabricante; + +@SuppressWarnings("serial") +@ManagedBean +@ViewScoped +public class FabricanteBean implements Serializable { + private Fabricante fabricante; + private List fabricantes; + + public Fabricante getFabricante() { + return fabricante; + } + + public void setFabricante(Fabricante fabricante) { + this.fabricante = fabricante; + } + + public List getFabricantes() { + return fabricantes; + } + + public void setFabricantes(List fabricantes) { + this.fabricantes = fabricantes; + } + + @PostConstruct + public void listar() { + try { + Client cliente = ClientBuilder.newClient(); + WebTarget caminho = cliente.target("http://127.0.0.1:8080/Drogaria/rest/fabricante"); + String json = caminho.request().get(String.class); + + Gson gson = new Gson(); + Fabricante[] vetor = gson.fromJson(json, Fabricante[].class); + + fabricantes = Arrays.asList(vetor); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar listar os fabricantes"); + erro.printStackTrace(); + } + } + + public void novo() { + fabricante = new Fabricante(); + } + + public void salvar() { + try { + Client cliente = ClientBuilder.newClient(); + WebTarget caminho = cliente.target("http://127.0.0.1:8080/Drogaria/rest/fabricante"); + + Gson gson = new Gson(); + + String json = gson.toJson(fabricante); + caminho.request().post(Entity.json(json)); + + fabricante = new Fabricante(); + + json = caminho.request().get(String.class); + Fabricante[] vetor = gson.fromJson(json, Fabricante[].class); + fabricantes = Arrays.asList(vetor); + + Messages.addGlobalInfo("Fabricante salvo com sucesso"); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar salvar o fabricante"); + erro.printStackTrace(); + } + } + + public void excluir(ActionEvent evento) { + try { + fabricante = (Fabricante) evento.getComponent().getAttributes().get("fabricanteSelecionado"); + + Client cliente = ClientBuilder.newClient(); + + WebTarget caminho = cliente.target("http://127.0.0.1:8080/Drogaria/rest/fabricante"); + WebTarget caminhoExcluir = caminho.path("{codigo}").resolveTemplate("codigo", fabricante.getCodigo()); + + caminhoExcluir.request().delete(); + String json = caminho.request().get(String.class); + + Gson gson = new Gson(); + Fabricante[] vetor = gson.fromJson(json, Fabricante[].class); + + fabricantes = Arrays.asList(vetor); + + Messages.addGlobalInfo("Fabricante removido com sucesso"); + } catch (RuntimeException erro) { + Messages.addFlashGlobalError("Ocorreu um erro ao tentar remover o fabricante"); + erro.printStackTrace(); + } + } + + public void editar(ActionEvent evento) { + fabricante = (Fabricante) evento.getComponent().getAttributes().get("fabricanteSelecionado"); + } +} diff --git a/290_Schedule_Salvar_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/HistoricoBean.java b/290_Schedule_Salvar_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/HistoricoBean.java new file mode 100644 index 0000000..a042b04 --- /dev/null +++ b/290_Schedule_Salvar_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/HistoricoBean.java @@ -0,0 +1,89 @@ +package br.pro.delfino.drogaria.bean; + +import java.io.Serializable; +import java.util.Date; + +import javax.annotation.PostConstruct; +import javax.faces.bean.ManagedBean; +import javax.faces.bean.ViewScoped; + +import org.omnifaces.util.Messages; + +import br.pro.delfino.drogaria.dao.HistoricoDAO; +import br.pro.delfino.drogaria.dao.ProdutoDAO; +import br.pro.delfino.drogaria.domain.Historico; +import br.pro.delfino.drogaria.domain.Produto; + +@SuppressWarnings("serial") +@ManagedBean +@ViewScoped +public class HistoricoBean implements Serializable { + private Produto produto; + private Boolean exibePainelDados; + + private Historico historico; + + public Produto getProduto() { + return produto; + } + + public void setProduto(Produto produto) { + this.produto = produto; + } + + public Boolean getExibePainelDados() { + return exibePainelDados; + } + + public void setExibePainelDados(Boolean exibePainelDados) { + this.exibePainelDados = exibePainelDados; + } + + public Historico getHistorico() { + return historico; + } + + public void setHistorico(Historico historico) { + this.historico = historico; + } + + @PostConstruct + public void novo() { + historico = new Historico(); + produto = new Produto(); + exibePainelDados = false; + } + + public void buscar() { + try { + ProdutoDAO produtoDAO = new ProdutoDAO(); + Produto resultado = produtoDAO.buscar(produto.getCodigo()); + + if (resultado == null) { + exibePainelDados = false; + Messages.addGlobalWarn("Não existe produto cadastrado para o código informado"); + } else { + exibePainelDados = true; + produto = resultado; + } + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar buscar o produto"); + erro.printStackTrace(); + } + } + + public void salvar() { + try { + historico.setHorario(new Date()); + historico.setProduto(produto); + + HistoricoDAO historicoDAO = new HistoricoDAO(); + historicoDAO.salvar(historico); + + Messages.addGlobalInfo("Histórico salvo com sucesso"); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar salvar o histórico"); + erro.printStackTrace(); + } + } +} diff --git a/290_Schedule_Salvar_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/ImagemBean.java b/290_Schedule_Salvar_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/ImagemBean.java new file mode 100644 index 0000000..eb963a8 --- /dev/null +++ b/290_Schedule_Salvar_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/ImagemBean.java @@ -0,0 +1,48 @@ +package br.pro.delfino.drogaria.bean; + +import java.io.IOException; +import java.io.InputStream; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; + +import javax.faces.bean.ManagedBean; +import javax.faces.bean.ManagedProperty; +import javax.faces.bean.RequestScoped; + +import org.primefaces.model.DefaultStreamedContent; +import org.primefaces.model.StreamedContent; + +@ManagedBean +@RequestScoped +public class ImagemBean { + @ManagedProperty("#{param.caminho}") + private String caminho; + + private StreamedContent foto; + + public String getCaminho() { + return caminho; + } + + public void setCaminho(String caminho) { + this.caminho = caminho; + } + + public StreamedContent getFoto() throws IOException { + if(caminho == null || caminho.isEmpty()){ + Path path = Paths.get("C:/Programação Web com Java/Uploads/branco.png"); + InputStream stream = Files.newInputStream(path); + foto = new DefaultStreamedContent(stream); + }else{ + Path path = Paths.get(caminho); + InputStream stream = Files.newInputStream(path); + foto = new DefaultStreamedContent(stream); + } + return foto; + } + + public void setFoto(StreamedContent foto) { + this.foto = foto; + } +} diff --git a/290_Schedule_Salvar_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/PessoaBean.java b/290_Schedule_Salvar_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/PessoaBean.java new file mode 100644 index 0000000..931edf7 --- /dev/null +++ b/290_Schedule_Salvar_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/PessoaBean.java @@ -0,0 +1,156 @@ +package br.pro.delfino.drogaria.bean; + +import java.io.Serializable; +import java.util.ArrayList; +import java.util.List; + +import javax.annotation.PostConstruct; +import javax.faces.bean.ManagedBean; +import javax.faces.bean.ViewScoped; +import javax.faces.event.ActionEvent; + +import org.omnifaces.util.Messages; + +import br.pro.delfino.drogaria.dao.CidadeDAO; +import br.pro.delfino.drogaria.dao.EstadoDAO; +import br.pro.delfino.drogaria.dao.PessoaDAO; +import br.pro.delfino.drogaria.domain.Cidade; +import br.pro.delfino.drogaria.domain.Estado; +import br.pro.delfino.drogaria.domain.Pessoa; + +@SuppressWarnings("serial") +@ManagedBean +@ViewScoped +public class PessoaBean implements Serializable { + private Pessoa pessoa; + private List pessoas; + + private Estado estado; + private List estados; + + private List cidades; + + public Pessoa getPessoa() { + return pessoa; + } + + public void setPessoa(Pessoa pessoa) { + this.pessoa = pessoa; + } + + public List getPessoas() { + return pessoas; + } + + public void setPessoas(List pessoas) { + this.pessoas = pessoas; + } + + public Estado getEstado() { + return estado; + } + + public void setEstado(Estado estado) { + this.estado = estado; + } + + public List getEstados() { + return estados; + } + + public void setEstados(List estados) { + this.estados = estados; + } + + public List getCidades() { + return cidades; + } + + public void setCidades(List cidades) { + this.cidades = cidades; + } + + @PostConstruct + public void listar() { + try { + PessoaDAO pessoaDAO = new PessoaDAO(); + pessoas = pessoaDAO.listar("nome"); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar listar as pessoas"); + erro.printStackTrace(); + } + } + + public void novo() { + try { + pessoa = new Pessoa(); + + estado = new Estado(); + + EstadoDAO estadoDAO = new EstadoDAO(); + estados = estadoDAO.listar("nome"); + + cidades = new ArrayList<>(); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar gerar uma nova pessoa"); + erro.printStackTrace(); + } + } + + public void editar(ActionEvent evento) { + try{ + pessoa = (Pessoa) evento.getComponent().getAttributes().get("pessoaSelecionada"); + + estado = pessoa.getCidade().getEstado(); + + EstadoDAO estadoDAO = new EstadoDAO(); + estados = estadoDAO.listar("nome"); + + CidadeDAO cidadeDAO = new CidadeDAO(); + cidades = cidadeDAO.buscarPorEstado(estado.getCodigo()); + }catch(RuntimeException erro){ + Messages.addGlobalError("Ocorreu um erro ao tentar selecionar uma pessoa"); + } + } + + public void salvar() { + try { + PessoaDAO pessoaDAO = new PessoaDAO(); + pessoaDAO.merge(pessoa); + + pessoas = pessoaDAO.listar("nome"); + + pessoa = new Pessoa(); + + estado = new Estado(); + + EstadoDAO estadoDAO = new EstadoDAO(); + estados = estadoDAO.listar("nome"); + + cidades = new ArrayList<>(); + + Messages.addGlobalInfo("Pessoa salva com sucesso"); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar salvar a pessoa"); + erro.printStackTrace(); + } + } + + public void excluir(ActionEvent evento) { + + } + + public void popular() { + try { + if (estado != null) { + CidadeDAO cidadeDAO = new CidadeDAO(); + cidades = cidadeDAO.buscarPorEstado(estado.getCodigo()); + } else { + cidades = new ArrayList<>(); + } + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar filtrar as cidades"); + erro.printStackTrace(); + } + } +} diff --git a/290_Schedule_Salvar_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/ProdutoBean.java b/290_Schedule_Salvar_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/ProdutoBean.java new file mode 100644 index 0000000..e48e0d1 --- /dev/null +++ b/290_Schedule_Salvar_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/ProdutoBean.java @@ -0,0 +1,196 @@ +package br.pro.delfino.drogaria.bean; + +import java.io.IOException; +import java.io.Serializable; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; +import java.nio.file.StandardCopyOption; +import java.sql.Connection; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import javax.annotation.PostConstruct; +import javax.faces.bean.ManagedBean; +import javax.faces.bean.ViewScoped; +import javax.faces.event.ActionEvent; + +import org.omnifaces.util.Faces; +import org.omnifaces.util.Messages; +import org.primefaces.component.datatable.DataTable; +import org.primefaces.event.FileUploadEvent; +import org.primefaces.model.UploadedFile; + +import br.pro.delfino.drogaria.dao.FabricanteDAO; +import br.pro.delfino.drogaria.dao.ProdutoDAO; +import br.pro.delfino.drogaria.domain.Fabricante; +import br.pro.delfino.drogaria.domain.Produto; +import br.pro.delfino.drogaria.util.HibernateUtil; +import net.sf.jasperreports.engine.JRException; +import net.sf.jasperreports.engine.JasperFillManager; +import net.sf.jasperreports.engine.JasperPrint; +import net.sf.jasperreports.engine.JasperPrintManager; + +@SuppressWarnings("serial") +@ManagedBean +@ViewScoped +public class ProdutoBean implements Serializable { + private Produto produto; + private List produtos; + private List fabricantes; + + public Produto getProduto() { + return produto; + } + + public void setProduto(Produto produto) { + this.produto = produto; + } + + public List getProdutos() { + return produtos; + } + + public void setProdutos(List produtos) { + this.produtos = produtos; + } + + public List getFabricantes() { + return fabricantes; + } + + public void setFabricantes(List fabricantes) { + this.fabricantes = fabricantes; + } + + @PostConstruct + public void listar() { + try { + ProdutoDAO produtoDAO = new ProdutoDAO(); + produtos = produtoDAO.listar("descricao"); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar listar os produtos"); + erro.printStackTrace(); + } + } + + public void novo() { + try { + produto = new Produto(); + + FabricanteDAO fabricanteDAO = new FabricanteDAO(); + fabricantes = fabricanteDAO.listar("descricao"); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar gerar um novo produto"); + erro.printStackTrace(); + } + } + + public void editar(ActionEvent evento) { + try { + produto = (Produto) evento.getComponent().getAttributes().get("produtoSelecionado"); + produto.setCaminho("C:/Programação Web com Java/Uploads/" + produto.getCodigo() + ".png"); + + FabricanteDAO fabricanteDAO = new FabricanteDAO(); + fabricantes = fabricanteDAO.listar(); + } catch (RuntimeException erro) { + Messages.addFlashGlobalError("Ocorreu um erro ao tentar selecionar um produto"); + erro.printStackTrace(); + } + } + + public void salvar() { + try { + if (produto.getCaminho() == null) { + Messages.addGlobalError("O campo foto é obrigatório"); + return; + } + + ProdutoDAO produtoDAO = new ProdutoDAO(); + Produto produtoRetorno = produtoDAO.merge(produto); + + Path origem = Paths.get(produto.getCaminho()); + Path destino = Paths.get("C:/Programação Web com Java/Uploads/" + produtoRetorno.getCodigo() + ".png"); + Files.copy(origem, destino, StandardCopyOption.REPLACE_EXISTING); + + produto = new Produto(); + + FabricanteDAO fabricanteDAO = new FabricanteDAO(); + fabricantes = fabricanteDAO.listar(); + + produtos = produtoDAO.listar(); + + Messages.addGlobalInfo("Produto salvo com sucesso"); + } catch (RuntimeException | IOException erro) { + Messages.addFlashGlobalError("Ocorreu um erro ao tentar salvar o produto"); + erro.printStackTrace(); + } + } + + public void excluir(ActionEvent evento) { + try { + produto = (Produto) evento.getComponent().getAttributes().get("produtoSelecionado"); + + ProdutoDAO produtoDAO = new ProdutoDAO(); + produtoDAO.excluir(produto); + + Path arquivo = Paths.get("C:/Programação Web com Java/Uploads/" + produto.getCodigo() + ".png"); + Files.deleteIfExists(arquivo); + + produtos = produtoDAO.listar(); + + Messages.addGlobalInfo("Produto removido com sucesso"); + } catch (RuntimeException | IOException erro) { + Messages.addFlashGlobalError("Ocorreu um erro ao tentar remover o produto"); + erro.printStackTrace(); + } + } + + public void upload(FileUploadEvent evento) { + try { + UploadedFile arquivoUpload = evento.getFile(); + Path arquivoTemp = Files.createTempFile(null, null); + Files.copy(arquivoUpload.getInputstream(), arquivoTemp, StandardCopyOption.REPLACE_EXISTING); + produto.setCaminho(arquivoTemp.toString()); + + Messages.addGlobalInfo("Upload realizado com sucesso"); + } catch (IOException erro) { + Messages.addGlobalInfo("Ocorreu um erro ao tentar realizar o upload de arquivo"); + erro.printStackTrace(); + } + } + + public void imprimir() { + try { + DataTable tabela = (DataTable) Faces.getViewRoot().findComponent("formListagem:tabela"); + Map filtros = tabela.getFilters(); + + String proDescricao = (String) filtros.get("descricao"); + String fabDescricao = (String) filtros.get("fabricante.descricao"); + + String caminho = Faces.getRealPath("/reports/produtos.jasper"); + + Map parametros = new HashMap<>(); + if (proDescricao == null) { + parametros.put("PRODUTO_DESCRICAO", "%%"); + } else { + parametros.put("PRODUTO_DESCRICAO", "%" + proDescricao + "%"); + } + if (fabDescricao == null) { + parametros.put("FABRICANTE_DESCRICAO", "%%"); + } else { + parametros.put("FABRICANTE_DESCRICAO", "%" + fabDescricao + "%"); + } + + Connection conexao = HibernateUtil.getConexao(); + + JasperPrint relatorio = JasperFillManager.fillReport(caminho, parametros, conexao); + + JasperPrintManager.printReport(relatorio, true); + } catch (JRException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar gerar o relatório"); + erro.printStackTrace(); + } + } +} diff --git a/290_Schedule_Salvar_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/ProdutoBean2.java b/290_Schedule_Salvar_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/ProdutoBean2.java new file mode 100644 index 0000000..f36cd86 --- /dev/null +++ b/290_Schedule_Salvar_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/ProdutoBean2.java @@ -0,0 +1,86 @@ +package br.pro.delfino.drogaria.bean; + +import java.io.Serializable; +import java.util.List; + +import javax.annotation.PostConstruct; +import javax.faces.bean.ManagedBean; +import javax.faces.bean.ViewScoped; + +import org.omnifaces.util.Messages; + +import br.pro.delfino.drogaria.dao.FabricanteDAO; +import br.pro.delfino.drogaria.dao.ProdutoDAO; +import br.pro.delfino.drogaria.domain.Fabricante; +import br.pro.delfino.drogaria.domain.Produto; + +@SuppressWarnings("serial") +@ManagedBean +@ViewScoped +public class ProdutoBean2 implements Serializable { + private Produto produto; + private Long codigoProduto; + + private List fabricantes; + private List produtos; + + private FabricanteDAO fabricanteDAO; + private ProdutoDAO produtoDAO; + + public Produto getProduto() { + return produto; + } + + public void setProduto(Produto produto) { + this.produto = produto; + } + + public Long getCodigoProduto() { + return codigoProduto; + } + + public void setCodigoProduto(Long codigoProduto) { + this.codigoProduto = codigoProduto; + } + + public void setFabricantes(List fabricantes) { + this.fabricantes = fabricantes; + } + + public List getFabricantes() { + return fabricantes; + } + public List getProdutos() { + return produtos; + } + + public void setProdutos(List produtos) { + this.produtos = produtos; + } + + @PostConstruct + public void iniciar(){ + fabricanteDAO = new FabricanteDAO(); + produtoDAO = new ProdutoDAO(); + } + + public void listar() { + try { + produtos = produtoDAO.listar("descricao"); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar listar os produtos"); + erro.printStackTrace(); + } + } + + public void carregarEdicao(){ + try { + produto = produtoDAO.buscar(codigoProduto); + + fabricantes = fabricanteDAO.listar("descricao"); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar carregar os dados para edição"); + erro.printStackTrace(); + } + } +} diff --git a/290_Schedule_Salvar_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/UsuarioBean.java b/290_Schedule_Salvar_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/UsuarioBean.java new file mode 100644 index 0000000..f526df8 --- /dev/null +++ b/290_Schedule_Salvar_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/UsuarioBean.java @@ -0,0 +1,90 @@ +package br.pro.delfino.drogaria.bean; + +import java.io.Serializable; +import java.util.List; + +import javax.annotation.PostConstruct; +import javax.faces.bean.ManagedBean; +import javax.faces.bean.ViewScoped; + +import org.omnifaces.util.Messages; + +import br.pro.delfino.drogaria.dao.PessoaDAO; +import br.pro.delfino.drogaria.dao.UsuarioDAO; +import br.pro.delfino.drogaria.domain.Pessoa; +import br.pro.delfino.drogaria.domain.Usuario; + +@SuppressWarnings("serial") +@ManagedBean +@ViewScoped +public class UsuarioBean implements Serializable { + private Usuario usuario; + + private List pessoas; + private List usuarios; + + public Usuario getUsuario() { + return usuario; + } + + public void setUsuario(Usuario usuario) { + this.usuario = usuario; + } + + public List getPessoas() { + return pessoas; + } + + public void setPessoas(List pessoas) { + this.pessoas = pessoas; + } + + public List getUsuarios() { + return usuarios; + } + + public void setUsuarios(List usuarios) { + this.usuarios = usuarios; + } + + @PostConstruct + public void listar(){ + try{ + UsuarioDAO usuarioDAO = new UsuarioDAO(); + usuarios = usuarioDAO.listar("tipo"); + }catch(RuntimeException erro){ + Messages.addGlobalError("Ocorreu um erro ao tentar listar os usuários"); + erro.printStackTrace(); + } + } + + public void novo() { + try { + usuario = new Usuario(); + + PessoaDAO pessoaDAO = new PessoaDAO(); + pessoas = pessoaDAO.listar("nome"); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar criar um novo usuário"); + erro.printStackTrace(); + } + } + + public void salvar() { + try { + UsuarioDAO usuarioDAO = new UsuarioDAO(); + usuarioDAO.merge(usuario); + + usuario = new Usuario(); + usuarios = usuarioDAO.listar("tipo"); + + PessoaDAO pessoaDAO = new PessoaDAO(); + pessoas = pessoaDAO.listar("nome"); + + Messages.addGlobalInfo("Usuário salvo com sucesso"); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar salvar o usuário"); + erro.printStackTrace(); + } + } +} diff --git a/290_Schedule_Salvar_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/VendaBean.java b/290_Schedule_Salvar_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/VendaBean.java new file mode 100644 index 0000000..ada8ff2 --- /dev/null +++ b/290_Schedule_Salvar_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/VendaBean.java @@ -0,0 +1,186 @@ +package br.pro.delfino.drogaria.bean; + +import java.io.Serializable; +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +import javax.annotation.PostConstruct; +import javax.faces.bean.ManagedBean; +import javax.faces.bean.ViewScoped; +import javax.faces.event.ActionEvent; + +import org.omnifaces.util.Messages; + +import br.pro.delfino.drogaria.dao.ClienteDAO; +import br.pro.delfino.drogaria.dao.FuncionarioDAO; +import br.pro.delfino.drogaria.dao.ProdutoDAO; +import br.pro.delfino.drogaria.dao.VendaDAO; +import br.pro.delfino.drogaria.domain.Cliente; +import br.pro.delfino.drogaria.domain.Funcionario; +import br.pro.delfino.drogaria.domain.ItemVenda; +import br.pro.delfino.drogaria.domain.Produto; +import br.pro.delfino.drogaria.domain.Venda; + +@SuppressWarnings("serial") +@ManagedBean +@ViewScoped +public class VendaBean implements Serializable { + private Venda venda; + + private List produtos; + private List itensVenda; + private List clientes; + private List funcionarios; + + public Venda getVenda() { + return venda; + } + + public void setVenda(Venda venda) { + this.venda = venda; + } + + public List getProdutos() { + return produtos; + } + + public void setProdutos(List produtos) { + this.produtos = produtos; + } + + public List getItensVenda() { + return itensVenda; + } + + public void setItensVenda(List itensVenda) { + this.itensVenda = itensVenda; + } + + public List getClientes() { + return clientes; + } + + public void setClientes(List clientes) { + this.clientes = clientes; + } + + public List getFuncionarios() { + return funcionarios; + } + + public void setFuncionarios(List funcionarios) { + this.funcionarios = funcionarios; + } + + @PostConstruct + public void novo() { + try { + venda = new Venda(); + venda.setPrecoTotal(new BigDecimal("0.00")); + + ProdutoDAO produtoDAO = new ProdutoDAO(); + produtos = produtoDAO.listar("descricao"); + + itensVenda = new ArrayList<>(); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar carregar a tela de vendas"); + erro.printStackTrace(); + } + } + + public void adicionar(ActionEvent evento) { + Produto produto = (Produto) evento.getComponent().getAttributes().get("produtoSelecionado"); + + int achou = -1; + for (int posicao = 0; posicao < itensVenda.size(); posicao++) { + if (itensVenda.get(posicao).getProduto().equals(produto)) { + achou = posicao; + } + } + + if (achou < 0) { + ItemVenda itemVenda = new ItemVenda(); + itemVenda.setPrecoParcial(produto.getPreco()); + itemVenda.setProduto(produto); + itemVenda.setQuantidade(new Short("1")); + + itensVenda.add(itemVenda); + } else { + ItemVenda itemVenda = itensVenda.get(achou); + itemVenda.setQuantidade(new Short(itemVenda.getQuantidade() + 1 + "")); + itemVenda.setPrecoParcial(produto.getPreco().multiply(new BigDecimal(itemVenda.getQuantidade()))); + } + + calcular(); + } + + public void remover(ActionEvent evento) { + ItemVenda itemVenda = (ItemVenda) evento.getComponent().getAttributes().get("itemSelecionado"); + + int achou = -1; + for (int posicao = 0; posicao < itensVenda.size(); posicao++) { + if (itensVenda.get(posicao).getProduto().equals(itemVenda.getProduto())) { + achou = posicao; + } + } + + if (achou > -1) { + itensVenda.remove(achou); + } + + calcular(); + } + + public void calcular() { + venda.setPrecoTotal(new BigDecimal("0.00")); + + for (int posicao = 0; posicao < itensVenda.size(); posicao++) { + ItemVenda itemVenda = itensVenda.get(posicao); + venda.setPrecoTotal(venda.getPrecoTotal().add(itemVenda.getPrecoParcial())); + } + } + + public void finalizar() { + try { + venda.setHorario(new Date()); + venda.setCliente(null); + venda.setFuncionario(null); + + FuncionarioDAO funcionarioDAO = new FuncionarioDAO(); + funcionarios = funcionarioDAO.listarOrdenado(); + + ClienteDAO clienteDAO = new ClienteDAO(); + clientes = clienteDAO.listarOrdenado(); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar finalizar a venda"); + erro.printStackTrace(); + } + } + + public void salvar() { + try { + if(venda.getPrecoTotal().signum() == 0){ + Messages.addGlobalError("Informe pelo menos um item para a venda"); + return; + } + + VendaDAO vendaDAO = new VendaDAO(); + vendaDAO.salvar(venda, itensVenda); + + venda = new Venda(); + venda.setPrecoTotal(new BigDecimal("0.00")); + + ProdutoDAO produtoDAO = new ProdutoDAO(); + produtos = produtoDAO.listar("descricao"); + + itensVenda = new ArrayList<>(); + + Messages.addGlobalInfo("Venda realizada com sucesso"); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar salvar a venda"); + erro.printStackTrace(); + } + } +} diff --git a/290_Schedule_Salvar_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/converter/UpperCaseConverter.java b/290_Schedule_Salvar_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/converter/UpperCaseConverter.java new file mode 100644 index 0000000..8a5d259 --- /dev/null +++ b/290_Schedule_Salvar_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/converter/UpperCaseConverter.java @@ -0,0 +1,28 @@ +package br.pro.delfino.drogaria.converter; + +import javax.faces.component.UIComponent; +import javax.faces.context.FacesContext; +import javax.faces.convert.Converter; +import javax.faces.convert.FacesConverter; + +@FacesConverter("upperCaseConverter") +public class UpperCaseConverter implements Converter { + + @Override + public Object getAsObject(FacesContext context, UIComponent component, String value) { + if (value == null) { + return null; + } else { + return value.toUpperCase(); + } + } + + @Override + public String getAsString(FacesContext context, UIComponent component, Object value) { + if (value == null) { + return ""; + } else { + return value.toString(); + } + } +} diff --git a/290_Schedule_Salvar_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/CaixaDAO.java b/290_Schedule_Salvar_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/CaixaDAO.java new file mode 100644 index 0000000..fd8acd7 --- /dev/null +++ b/290_Schedule_Salvar_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/CaixaDAO.java @@ -0,0 +1,26 @@ +package br.pro.delfino.drogaria.dao; + +import java.util.Date; + +import org.hibernate.Criteria; +import org.hibernate.Session; +import org.hibernate.criterion.Restrictions; + +import br.pro.delfino.drogaria.domain.Caixa; +import br.pro.delfino.drogaria.util.HibernateUtil; + +public class CaixaDAO extends GenericDAO { + public Caixa buscar(Date dataAbertura) { + Session sessao = HibernateUtil.getFabricaDeSessoes().openSession(); + try { + Criteria consulta = sessao.createCriteria(Caixa.class); + consulta.add(Restrictions.eq("dataAbertura", dataAbertura)); + Caixa resultado = (Caixa) consulta.uniqueResult(); + return resultado; + } catch (RuntimeException erro) { + throw erro; + } finally { + sessao.close(); + } + } +} diff --git a/290_Schedule_Salvar_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/CidadeDAO.java b/290_Schedule_Salvar_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/CidadeDAO.java new file mode 100644 index 0000000..e685e93 --- /dev/null +++ b/290_Schedule_Salvar_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/CidadeDAO.java @@ -0,0 +1,29 @@ +package br.pro.delfino.drogaria.dao; + +import java.util.List; + +import org.hibernate.Criteria; +import org.hibernate.Session; +import org.hibernate.criterion.Order; +import org.hibernate.criterion.Restrictions; + +import br.pro.delfino.drogaria.domain.Cidade; +import br.pro.delfino.drogaria.util.HibernateUtil; + +public class CidadeDAO extends GenericDAO { + @SuppressWarnings("unchecked") + public List buscarPorEstado(Long estadoCodigo) { + Session sessao = HibernateUtil.getFabricaDeSessoes().openSession(); + try { + Criteria consulta = sessao.createCriteria(Cidade.class); + consulta.add(Restrictions.eq("estado.codigo", estadoCodigo)); + consulta.addOrder(Order.asc("nome")); + List resultado = consulta.list(); + return resultado; + } catch (RuntimeException erro) { + throw erro; + } finally { + sessao.close(); + } + } +} \ No newline at end of file diff --git a/290_Schedule_Salvar_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/ClienteDAO.java b/290_Schedule_Salvar_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/ClienteDAO.java new file mode 100644 index 0000000..e9796b5 --- /dev/null +++ b/290_Schedule_Salvar_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/ClienteDAO.java @@ -0,0 +1,28 @@ +package br.pro.delfino.drogaria.dao; + +import java.util.List; + +import org.hibernate.Criteria; +import org.hibernate.Session; +import org.hibernate.criterion.Order; + +import br.pro.delfino.drogaria.domain.Cliente; +import br.pro.delfino.drogaria.util.HibernateUtil; + +public class ClienteDAO extends GenericDAO { + @SuppressWarnings("unchecked") + public List listarOrdenado() { + Session sessao = HibernateUtil.getFabricaDeSessoes().openSession(); + try { + Criteria consulta = sessao.createCriteria(Cliente.class); + consulta.createAlias("pessoa", "p"); + consulta.addOrder(Order.asc("p.nome")); + List resultado = consulta.list(); + return resultado; + } catch (RuntimeException erro) { + throw erro; + } finally { + sessao.close(); + } + } +} diff --git a/290_Schedule_Salvar_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/EstadoDAO.java b/290_Schedule_Salvar_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/EstadoDAO.java new file mode 100644 index 0000000..32b4a79 --- /dev/null +++ b/290_Schedule_Salvar_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/EstadoDAO.java @@ -0,0 +1,7 @@ +package br.pro.delfino.drogaria.dao; + +import br.pro.delfino.drogaria.domain.Estado; + +public class EstadoDAO extends GenericDAO { + +} diff --git a/290_Schedule_Salvar_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/FabricanteDAO.java b/290_Schedule_Salvar_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/FabricanteDAO.java new file mode 100644 index 0000000..8b7f946 --- /dev/null +++ b/290_Schedule_Salvar_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/FabricanteDAO.java @@ -0,0 +1,7 @@ +package br.pro.delfino.drogaria.dao; + +import br.pro.delfino.drogaria.domain.Fabricante; + +public class FabricanteDAO extends GenericDAO { + +} diff --git a/290_Schedule_Salvar_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/FuncionarioDAO.java b/290_Schedule_Salvar_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/FuncionarioDAO.java new file mode 100644 index 0000000..2b3114d --- /dev/null +++ b/290_Schedule_Salvar_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/FuncionarioDAO.java @@ -0,0 +1,28 @@ +package br.pro.delfino.drogaria.dao; + +import java.util.List; + +import org.hibernate.Criteria; +import org.hibernate.Session; +import org.hibernate.criterion.Order; + +import br.pro.delfino.drogaria.domain.Funcionario; +import br.pro.delfino.drogaria.util.HibernateUtil; + +public class FuncionarioDAO extends GenericDAO{ + @SuppressWarnings("unchecked") + public List listarOrdenado() { + Session sessao = HibernateUtil.getFabricaDeSessoes().openSession(); + try { + Criteria consulta = sessao.createCriteria(Funcionario.class); + consulta.createAlias("pessoa", "p"); + consulta.addOrder(Order.asc("p.nome")); + List resultado = consulta.list(); + return resultado; + } catch (RuntimeException erro) { + throw erro; + } finally { + sessao.close(); + } + } +} diff --git a/290_Schedule_Salvar_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/GenericDAO.java b/290_Schedule_Salvar_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/GenericDAO.java new file mode 100644 index 0000000..b505cd3 --- /dev/null +++ b/290_Schedule_Salvar_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/GenericDAO.java @@ -0,0 +1,140 @@ +package br.pro.delfino.drogaria.dao; + +import java.lang.reflect.ParameterizedType; +import java.util.List; + +import org.hibernate.Criteria; +import org.hibernate.Session; +import org.hibernate.Transaction; +import org.hibernate.criterion.Order; +import org.hibernate.criterion.Restrictions; + +import br.pro.delfino.drogaria.util.HibernateUtil; + +public class GenericDAO { + private Class classe; + + @SuppressWarnings("unchecked") + public GenericDAO() { + this.classe = (Class) ((ParameterizedType) getClass().getGenericSuperclass()) + .getActualTypeArguments()[0]; + } + + public void salvar(Entidade entidade) { + Session sessao = HibernateUtil.getFabricaDeSessoes().openSession(); + Transaction transacao = null; + + try { + transacao = sessao.beginTransaction(); + sessao.save(entidade); + transacao.commit(); + } catch (RuntimeException erro) { + if (transacao != null) { + transacao.rollback(); + } + throw erro; + } finally { + sessao.close(); + } + } + + @SuppressWarnings("unchecked") + public List listar() { + Session sessao = HibernateUtil.getFabricaDeSessoes().openSession(); + try { + Criteria consulta = sessao.createCriteria(classe); + List resultado = consulta.list(); + return resultado; + } catch (RuntimeException erro) { + throw erro; + } finally { + sessao.close(); + } + } + + @SuppressWarnings("unchecked") + public List listar(String campoOrdenacao) { + Session sessao = HibernateUtil.getFabricaDeSessoes().openSession(); + try { + Criteria consulta = sessao.createCriteria(classe); + consulta.addOrder(Order.asc(campoOrdenacao)); + List resultado = consulta.list(); + return resultado; + } catch (RuntimeException erro) { + throw erro; + } finally { + sessao.close(); + } + } + + @SuppressWarnings("unchecked") + public Entidade buscar(Long codigo) { + Session sessao = HibernateUtil.getFabricaDeSessoes().openSession(); + try { + Criteria consulta = sessao.createCriteria(classe); + consulta.add(Restrictions.idEq(codigo)); + Entidade resultado = (Entidade) consulta.uniqueResult(); + return resultado; + } catch (RuntimeException erro) { + throw erro; + } finally { + sessao.close(); + } + } + + public void excluir(Entidade entidade) { + Session sessao = HibernateUtil.getFabricaDeSessoes().openSession(); + Transaction transacao = null; + + try { + transacao = sessao.beginTransaction(); + sessao.delete(entidade); + transacao.commit(); + } catch (RuntimeException erro) { + if (transacao != null) { + transacao.rollback(); + } + throw erro; + } finally { + sessao.close(); + } + } + + public void editar(Entidade entidade) { + Session sessao = HibernateUtil.getFabricaDeSessoes().openSession(); + Transaction transacao = null; + + try { + transacao = sessao.beginTransaction(); + sessao.update(entidade); + transacao.commit(); + } catch (RuntimeException erro) { + if (transacao != null) { + transacao.rollback(); + } + throw erro; + } finally { + sessao.close(); + } + } + + @SuppressWarnings("unchecked") + public Entidade merge(Entidade entidade) { + Session sessao = HibernateUtil.getFabricaDeSessoes().openSession(); + Transaction transacao = null; + + try { + transacao = sessao.beginTransaction(); + Entidade retorno = (Entidade) sessao.merge(entidade); + transacao.commit(); + return retorno; + } catch (RuntimeException erro) { + if (transacao != null) { + transacao.rollback(); + } + throw erro; + } finally { + sessao.close(); + } + } +} diff --git a/290_Schedule_Salvar_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/HistoricoDAO.java b/290_Schedule_Salvar_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/HistoricoDAO.java new file mode 100644 index 0000000..7b30017 --- /dev/null +++ b/290_Schedule_Salvar_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/HistoricoDAO.java @@ -0,0 +1,7 @@ +package br.pro.delfino.drogaria.dao; + +import br.pro.delfino.drogaria.domain.Historico; + +public class HistoricoDAO extends GenericDAO { + +} diff --git a/290_Schedule_Salvar_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/MovimentacaoDAO.java b/290_Schedule_Salvar_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/MovimentacaoDAO.java new file mode 100644 index 0000000..b6560e2 --- /dev/null +++ b/290_Schedule_Salvar_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/MovimentacaoDAO.java @@ -0,0 +1,7 @@ +package br.pro.delfino.drogaria.dao; + +import br.pro.delfino.drogaria.domain.Movimentacao; + +public class MovimentacaoDAO extends GenericDAO { + +} diff --git a/290_Schedule_Salvar_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/PessoaDAO.java b/290_Schedule_Salvar_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/PessoaDAO.java new file mode 100644 index 0000000..bbd116b --- /dev/null +++ b/290_Schedule_Salvar_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/PessoaDAO.java @@ -0,0 +1,7 @@ +package br.pro.delfino.drogaria.dao; + +import br.pro.delfino.drogaria.domain.Pessoa; + +public class PessoaDAO extends GenericDAO { + +} diff --git a/290_Schedule_Salvar_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/ProdutoDAO.java b/290_Schedule_Salvar_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/ProdutoDAO.java new file mode 100644 index 0000000..4c1e751 --- /dev/null +++ b/290_Schedule_Salvar_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/ProdutoDAO.java @@ -0,0 +1,7 @@ +package br.pro.delfino.drogaria.dao; + +import br.pro.delfino.drogaria.domain.Produto; + +public class ProdutoDAO extends GenericDAO { + +} diff --git a/290_Schedule_Salvar_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/UsuarioDAO.java b/290_Schedule_Salvar_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/UsuarioDAO.java new file mode 100644 index 0000000..b4bf524 --- /dev/null +++ b/290_Schedule_Salvar_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/UsuarioDAO.java @@ -0,0 +1,33 @@ +package br.pro.delfino.drogaria.dao; + +import org.apache.shiro.crypto.hash.SimpleHash; +import org.hibernate.Criteria; +import org.hibernate.Session; +import org.hibernate.criterion.Restrictions; + +import br.pro.delfino.drogaria.domain.Usuario; +import br.pro.delfino.drogaria.util.HibernateUtil; + +public class UsuarioDAO extends GenericDAO { + public Usuario autenticar(String cpf, String senha) { + Session sessao = HibernateUtil.getFabricaDeSessoes().openSession(); + + try{ + Criteria consulta = sessao.createCriteria(Usuario.class); + consulta.createAlias("pessoa", "p"); + + consulta.add(Restrictions.eq("p.cpf", cpf)); + + SimpleHash hash = new SimpleHash("md5", senha); + consulta.add(Restrictions.eq("senha", hash.toHex())); + + Usuario resultado = (Usuario) consulta.uniqueResult(); + + return resultado; + } catch (RuntimeException erro) { + throw erro; + } finally { + sessao.close(); + } + } +} diff --git a/290_Schedule_Salvar_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/VendaDAO.java b/290_Schedule_Salvar_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/VendaDAO.java new file mode 100644 index 0000000..3428939 --- /dev/null +++ b/290_Schedule_Salvar_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/VendaDAO.java @@ -0,0 +1,49 @@ +package br.pro.delfino.drogaria.dao; + +import java.util.List; + +import org.hibernate.Session; +import org.hibernate.Transaction; + +import br.pro.delfino.drogaria.domain.ItemVenda; +import br.pro.delfino.drogaria.domain.Produto; +import br.pro.delfino.drogaria.domain.Venda; +import br.pro.delfino.drogaria.util.HibernateUtil; + +public class VendaDAO extends GenericDAO { + public void salvar(Venda venda, List itensVenda) { + Session sessao = HibernateUtil.getFabricaDeSessoes().openSession(); + Transaction transacao = null; + + try { + transacao = sessao.beginTransaction(); + + sessao.save(venda); + + for (int posicao = 0; posicao < itensVenda.size(); posicao++) { + ItemVenda itemVenda = itensVenda.get(posicao); + itemVenda.setVenda(venda); + + sessao.save(itemVenda); + + Produto produto = itemVenda.getProduto(); + int quantidade = produto.getQuantidade() - itemVenda.getQuantidade(); + if (quantidade >= 0) { + produto.setQuantidade(new Short(quantidade + "")); + sessao.update(produto); + } else { + throw new RuntimeException("Quantidade insuficiente em estoque"); + } + } + + transacao.commit(); + } catch (RuntimeException erro) { + if (transacao != null) { + transacao.rollback(); + } + throw erro; + } finally { + sessao.close(); + } + } +} diff --git a/290_Schedule_Salvar_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Caixa.java b/290_Schedule_Salvar_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Caixa.java new file mode 100644 index 0000000..61fc69b --- /dev/null +++ b/290_Schedule_Salvar_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Caixa.java @@ -0,0 +1,62 @@ +package br.pro.delfino.drogaria.domain; + +import java.math.BigDecimal; +import java.util.Date; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.JoinColumn; +import javax.persistence.ManyToOne; +import javax.persistence.Temporal; +import javax.persistence.TemporalType; + +@SuppressWarnings("serial") +@Entity +public class Caixa extends GenericDomain { + @Column(nullable = false, unique = true) + @Temporal(TemporalType.DATE) + private Date dataAbertura; + + @Column(nullable = true) + @Temporal(TemporalType.DATE) + private Date dataFechamento; + + @Column(nullable = false, precision = 7, scale = 2) + private BigDecimal valorAbertura; + + @ManyToOne + @JoinColumn(nullable = false) + private Funcionario funcionario; + + public Date getDataAbertura() { + return dataAbertura; + } + + public void setDataAbertura(Date dataAbertura) { + this.dataAbertura = dataAbertura; + } + + public Date getDataFechamento() { + return dataFechamento; + } + + public void setDataFechamento(Date dataFechamento) { + this.dataFechamento = dataFechamento; + } + + public BigDecimal getValorAbertura() { + return valorAbertura; + } + + public void setValorAbertura(BigDecimal valorAbertura) { + this.valorAbertura = valorAbertura; + } + + public Funcionario getFuncionario() { + return funcionario; + } + + public void setFuncionario(Funcionario funcionario) { + this.funcionario = funcionario; + } +} diff --git a/290_Schedule_Salvar_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Cidade.java b/290_Schedule_Salvar_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Cidade.java new file mode 100644 index 0000000..cf94ede --- /dev/null +++ b/290_Schedule_Salvar_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Cidade.java @@ -0,0 +1,33 @@ +package br.pro.delfino.drogaria.domain; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.JoinColumn; +import javax.persistence.ManyToOne; + +@SuppressWarnings("serial") +@Entity +public class Cidade extends GenericDomain { + @Column(length = 50, nullable = false) + private String nome; + + @ManyToOne + @JoinColumn(nullable = false) + private Estado estado; + + public String getNome() { + return nome; + } + + public void setNome(String nome) { + this.nome = nome; + } + + public Estado getEstado() { + return estado; + } + + public void setEstado(Estado estado) { + this.estado = estado; + } +} diff --git a/290_Schedule_Salvar_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Cliente.java b/290_Schedule_Salvar_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Cliente.java new file mode 100644 index 0000000..6ace9b9 --- /dev/null +++ b/290_Schedule_Salvar_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Cliente.java @@ -0,0 +1,49 @@ +package br.pro.delfino.drogaria.domain; + +import java.util.Date; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.JoinColumn; +import javax.persistence.OneToOne; +import javax.persistence.Temporal; +import javax.persistence.TemporalType; + +@SuppressWarnings("serial") +@Entity +public class Cliente extends GenericDomain { + @Column(nullable = false) + @Temporal(TemporalType.DATE) + private Date dataCadastro; + + @Column(nullable = false) + private Boolean liberado; + + @OneToOne + @JoinColumn(nullable = false) + private Pessoa pessoa; + + public Date getDataCadastro() { + return dataCadastro; + } + + public void setDataCadastro(Date dataCadastro) { + this.dataCadastro = dataCadastro; + } + + public Boolean getLiberado() { + return liberado; + } + + public void setLiberado(Boolean liberado) { + this.liberado = liberado; + } + + public Pessoa getPessoa() { + return pessoa; + } + + public void setPessoa(Pessoa pessoa) { + this.pessoa = pessoa; + } +} diff --git a/290_Schedule_Salvar_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Estado.java b/290_Schedule_Salvar_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Estado.java new file mode 100644 index 0000000..1c06b98 --- /dev/null +++ b/290_Schedule_Salvar_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Estado.java @@ -0,0 +1,30 @@ +package br.pro.delfino.drogaria.domain; + +import javax.persistence.Column; +import javax.persistence.Entity; + +@SuppressWarnings("serial") +@Entity +public class Estado extends GenericDomain { + @Column(length = 2, nullable = false) + private String sigla; + + @Column(length = 50, nullable = false) + private String nome; + + public String getSigla() { + return sigla; + } + + public void setSigla(String sigla) { + this.sigla = sigla; + } + + public String getNome() { + return nome; + } + + public void setNome(String nome) { + this.nome = nome; + } +} diff --git a/290_Schedule_Salvar_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Fabricante.java b/290_Schedule_Salvar_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Fabricante.java new file mode 100644 index 0000000..02eab8c --- /dev/null +++ b/290_Schedule_Salvar_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Fabricante.java @@ -0,0 +1,19 @@ +package br.pro.delfino.drogaria.domain; + +import javax.persistence.Column; +import javax.persistence.Entity; + +@SuppressWarnings("serial") +@Entity +public class Fabricante extends GenericDomain { + @Column(length = 50, nullable = false) + private String descricao; + + public String getDescricao() { + return descricao; + } + + public void setDescricao(String descricao) { + this.descricao = descricao; + } +} diff --git a/290_Schedule_Salvar_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Funcionario.java b/290_Schedule_Salvar_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Funcionario.java new file mode 100644 index 0000000..dec9378 --- /dev/null +++ b/290_Schedule_Salvar_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Funcionario.java @@ -0,0 +1,49 @@ +package br.pro.delfino.drogaria.domain; + +import java.util.Date; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.JoinColumn; +import javax.persistence.OneToOne; +import javax.persistence.Temporal; +import javax.persistence.TemporalType; + +@SuppressWarnings("serial") +@Entity +public class Funcionario extends GenericDomain { + @Column(length = 15, nullable = false) + private String carteiraTrabalho; + + @Column(nullable = false) + @Temporal(TemporalType.DATE) + private Date dataAdmissao; + + @OneToOne + @JoinColumn(nullable = false) + private Pessoa pessoa; + + public String getCarteiraTrabalho() { + return carteiraTrabalho; + } + + public void setCarteiraTrabalho(String carteiraTrabalho) { + this.carteiraTrabalho = carteiraTrabalho; + } + + public Date getDataAdmissao() { + return dataAdmissao; + } + + public void setDataAdmissao(Date dataAdmissao) { + this.dataAdmissao = dataAdmissao; + } + + public Pessoa getPessoa() { + return pessoa; + } + + public void setPessoa(Pessoa pessoa) { + this.pessoa = pessoa; + } +} diff --git a/290_Schedule_Salvar_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/GenericDomain.java b/290_Schedule_Salvar_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/GenericDomain.java new file mode 100644 index 0000000..f37efea --- /dev/null +++ b/290_Schedule_Salvar_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/GenericDomain.java @@ -0,0 +1,54 @@ +package br.pro.delfino.drogaria.domain; + +import java.io.Serializable; + +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Id; +import javax.persistence.MappedSuperclass; + +@SuppressWarnings("serial") +@MappedSuperclass +public class GenericDomain implements Serializable { + @Id + @GeneratedValue(strategy = GenerationType.AUTO) + private Long codigo; + + public Long getCodigo() { + return codigo; + } + + public void setCodigo(Long codigo) { + this.codigo = codigo; + } + + @Override + public String toString() { + return String.format("%s[codigo=%d]", getClass().getSimpleName(), getCodigo()); + } + + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + ((codigo == null) ? 0 : codigo.hashCode()); + return result; + } + + @Override + public boolean equals(Object obj) { + if (this == obj) + return true; + if (obj == null) + return false; + if (getClass() != obj.getClass()) + return false; + GenericDomain other = (GenericDomain) obj; + if (codigo == null) { + if (other.codigo != null) + return false; + } else if (!codigo.equals(other.codigo)) + return false; + return true; + } +} diff --git a/290_Schedule_Salvar_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Historico.java b/290_Schedule_Salvar_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Historico.java new file mode 100644 index 0000000..dafdaeb --- /dev/null +++ b/290_Schedule_Salvar_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Historico.java @@ -0,0 +1,49 @@ +package br.pro.delfino.drogaria.domain; + +import java.util.Date; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.JoinColumn; +import javax.persistence.ManyToOne; +import javax.persistence.Temporal; +import javax.persistence.TemporalType; + +@SuppressWarnings("serial") +@Entity +public class Historico extends GenericDomain { + @Column(nullable = false) + @Temporal(TemporalType.TIMESTAMP) + private Date horario; + + @Column(nullable = false, length = 500) + private String observacoes; + + @ManyToOne + @JoinColumn(nullable = false) + private Produto produto; + + public Date getHorario() { + return horario; + } + + public void setHorario(Date horario) { + this.horario = horario; + } + + public String getObservacoes() { + return observacoes; + } + + public void setObservacoes(String observacoes) { + this.observacoes = observacoes; + } + + public Produto getProduto() { + return produto; + } + + public void setProduto(Produto produto) { + this.produto = produto; + } +} diff --git a/290_Schedule_Salvar_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/ItemVenda.java b/290_Schedule_Salvar_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/ItemVenda.java new file mode 100644 index 0000000..590ab26 --- /dev/null +++ b/290_Schedule_Salvar_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/ItemVenda.java @@ -0,0 +1,58 @@ +package br.pro.delfino.drogaria.domain; + +import java.math.BigDecimal; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.JoinColumn; +import javax.persistence.ManyToOne; + +@SuppressWarnings("serial") +@Entity +public class ItemVenda extends GenericDomain { + @Column(nullable = false) + private Short quantidade; + + @Column(nullable = false, precision = 7, scale = 2) + private BigDecimal precoParcial; + + @ManyToOne + @JoinColumn(nullable = false) + private Produto produto; + + @ManyToOne + @JoinColumn(nullable = false) + private Venda venda; + + public Short getQuantidade() { + return quantidade; + } + + public void setQuantidade(Short quantidade) { + this.quantidade = quantidade; + } + + public BigDecimal getPrecoParcial() { + return precoParcial; + } + + public void setPrecoParcial(BigDecimal precoParcial) { + this.precoParcial = precoParcial; + } + + public Produto getProduto() { + return produto; + } + + public void setProduto(Produto produto) { + this.produto = produto; + } + + public Venda getVenda() { + return venda; + } + + public void setVenda(Venda venda) { + this.venda = venda; + } +} diff --git a/290_Schedule_Salvar_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Movimentacao.java b/290_Schedule_Salvar_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Movimentacao.java new file mode 100644 index 0000000..c3d6319 --- /dev/null +++ b/290_Schedule_Salvar_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Movimentacao.java @@ -0,0 +1,50 @@ +package br.pro.delfino.drogaria.domain; + +import java.math.BigDecimal; +import java.util.Date; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.JoinColumn; +import javax.persistence.ManyToOne; +import javax.persistence.Temporal; +import javax.persistence.TemporalType; + +@SuppressWarnings("serial") +@Entity +public class Movimentacao extends GenericDomain { + @Column(nullable = false) + @Temporal(TemporalType.TIMESTAMP) + private Date horario; + + @Column(nullable = false, precision = 7, scale = 2) + private BigDecimal valor; + + @ManyToOne + @JoinColumn(nullable = false) + private Caixa caixa; + + public Date getHorario() { + return horario; + } + + public void setHorario(Date horario) { + this.horario = horario; + } + + public BigDecimal getValor() { + return valor; + } + + public void setValor(BigDecimal valor) { + this.valor = valor; + } + + public Caixa getCaixa() { + return caixa; + } + + public void setCaixa(Caixa caixa) { + this.caixa = caixa; + } +} diff --git a/290_Schedule_Salvar_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Pessoa.java b/290_Schedule_Salvar_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Pessoa.java new file mode 100644 index 0000000..f354001 --- /dev/null +++ b/290_Schedule_Salvar_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Pessoa.java @@ -0,0 +1,143 @@ +package br.pro.delfino.drogaria.domain; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.JoinColumn; +import javax.persistence.ManyToOne; + +@SuppressWarnings("serial") +@Entity +public class Pessoa extends GenericDomain { + @Column(length = 50, nullable = false) + private String nome; + + @Column(length = 14, nullable = false) + private String cpf; + + @Column(length = 12, nullable = false) + private String rg; + + @Column(length = 100, nullable = false) + private String rua; + + @Column(nullable = false) + private Short numero; + + @Column(length = 30, nullable = false) + private String bairro; + + @Column(length = 10, nullable = false) + private String cep; + + @Column(length = 10) + private String complemento; + + @Column(length = 13, nullable = false) + private String telefone; + + @Column(length = 14, nullable = false) + private String celular; + + @Column(length = 100, nullable = false) + private String email; + + @ManyToOne + @JoinColumn(nullable = false) + private Cidade cidade; + + public String getNome() { + return nome; + } + + public void setNome(String nome) { + this.nome = nome; + } + + public String getCpf() { + return cpf; + } + + public void setCpf(String cpf) { + this.cpf = cpf; + } + + public String getRg() { + return rg; + } + + public void setRg(String rg) { + this.rg = rg; + } + + public String getRua() { + return rua; + } + + public void setRua(String rua) { + this.rua = rua; + } + + public Short getNumero() { + return numero; + } + + public void setNumero(Short numero) { + this.numero = numero; + } + + public String getBairro() { + return bairro; + } + + public void setBairro(String bairro) { + this.bairro = bairro; + } + + public String getCep() { + return cep; + } + + public void setCep(String cep) { + this.cep = cep; + } + + public String getComplemento() { + return complemento; + } + + public void setComplemento(String complemento) { + this.complemento = complemento; + } + + public String getTelefone() { + return telefone; + } + + public void setTelefone(String telefone) { + this.telefone = telefone; + } + + public String getCelular() { + return celular; + } + + public void setCelular(String celular) { + this.celular = celular; + } + + public String getEmail() { + return email; + } + + public void setEmail(String email) { + this.email = email; + } + + public Cidade getCidade() { + return cidade; + } + + public void setCidade(Cidade cidade) { + this.cidade = cidade; + } +} diff --git a/290_Schedule_Salvar_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Produto.java b/290_Schedule_Salvar_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Produto.java new file mode 100644 index 0000000..82049b0 --- /dev/null +++ b/290_Schedule_Salvar_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Produto.java @@ -0,0 +1,69 @@ +package br.pro.delfino.drogaria.domain; + +import java.math.BigDecimal; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.JoinColumn; +import javax.persistence.ManyToOne; +import javax.persistence.Transient; + +@SuppressWarnings("serial") +@Entity +public class Produto extends GenericDomain { + @Column(length = 80, nullable = false) + private String descricao; + + @Column(nullable = false) + private Short quantidade; + + @Column(nullable = false, precision = 6, scale = 2) + private BigDecimal preco; + + @ManyToOne + @JoinColumn(nullable = false) + private Fabricante fabricante; + + @Transient + private String caminho; + + public String getDescricao() { + return descricao; + } + + public void setDescricao(String descricao) { + this.descricao = descricao; + } + + public Short getQuantidade() { + return quantidade; + } + + public void setQuantidade(Short quantidade) { + this.quantidade = quantidade; + } + + public BigDecimal getPreco() { + return preco; + } + + public void setPreco(BigDecimal preco) { + this.preco = preco; + } + + public Fabricante getFabricante() { + return fabricante; + } + + public void setFabricante(Fabricante fabricante) { + this.fabricante = fabricante; + } + + public String getCaminho() { + return caminho; + } + + public void setCaminho(String caminho) { + this.caminho = caminho; + } +} diff --git a/290_Schedule_Salvar_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Usuario.java b/290_Schedule_Salvar_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Usuario.java new file mode 100644 index 0000000..ae51941 --- /dev/null +++ b/290_Schedule_Salvar_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Usuario.java @@ -0,0 +1,93 @@ +package br.pro.delfino.drogaria.domain; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.JoinColumn; +import javax.persistence.OneToOne; +import javax.persistence.Transient; + +@SuppressWarnings("serial") +@Entity +public class Usuario extends GenericDomain { + @Column(length = 32, nullable = false) + private String senha; + + @Transient + private String senhaSemCriptografia; + + @Column(nullable = false) + private Character tipo; + + @Column(nullable = false) + private Boolean ativo; + + @OneToOne + @JoinColumn(nullable = false) + private Pessoa pessoa; + + public String getSenha() { + return senha; + } + + public void setSenha(String senha) { + this.senha = senha; + } + + public String getSenhaSemCriptografia() { + return senhaSemCriptografia; + } + + public void setSenhaSemCriptografia(String senhaSemCriptografia) { + this.senhaSemCriptografia = senhaSemCriptografia; + } + + public Character getTipo() { + return tipo; + } + + @Transient + public String getTipoFormatado() { + String tipoFormatado = null; + + if (tipo == 'A') { + tipoFormatado = "Administrador"; + } else if (tipo == 'B') { + tipoFormatado = "Balconista"; + } else if (tipo == 'G') { + tipoFormatado = "Gerente"; + } + + return tipoFormatado; + } + + public void setTipo(Character tipo) { + this.tipo = tipo; + } + + public Boolean getAtivo() { + return ativo; + } + + @Transient + public String getAtivoFormatado(){ + String ativoFormatado = "Não"; + + if(ativo){ + ativoFormatado = "Sim"; + } + + return ativoFormatado; + } + + public void setAtivo(Boolean ativo) { + this.ativo = ativo; + } + + public Pessoa getPessoa() { + return pessoa; + } + + public void setPessoa(Pessoa pessoa) { + this.pessoa = pessoa; + } +} diff --git a/290_Schedule_Salvar_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Venda.java b/290_Schedule_Salvar_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Venda.java new file mode 100644 index 0000000..3f4c226 --- /dev/null +++ b/290_Schedule_Salvar_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Venda.java @@ -0,0 +1,61 @@ +package br.pro.delfino.drogaria.domain; + +import java.math.BigDecimal; +import java.util.Date; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.JoinColumn; +import javax.persistence.ManyToOne; +import javax.persistence.Temporal; +import javax.persistence.TemporalType; + +@SuppressWarnings("serial") +@Entity +public class Venda extends GenericDomain { + @Column(nullable = false) + @Temporal(TemporalType.TIMESTAMP) + private Date horario; + + @Column(nullable = false, precision = 7, scale = 2) + private BigDecimal precoTotal; + + @ManyToOne + private Cliente cliente; + + @ManyToOne + @JoinColumn(nullable = false) + private Funcionario funcionario; + + public Date getHorario() { + return horario; + } + + public void setHorario(Date horario) { + this.horario = horario; + } + + public BigDecimal getPrecoTotal() { + return precoTotal; + } + + public void setPrecoTotal(BigDecimal precoTotal) { + this.precoTotal = precoTotal; + } + + public Cliente getCliente() { + return cliente; + } + + public void setCliente(Cliente cliente) { + this.cliente = cliente; + } + + public Funcionario getFuncionario() { + return funcionario; + } + + public void setFuncionario(Funcionario funcionario) { + this.funcionario = funcionario; + } +} diff --git a/290_Schedule_Salvar_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/service/DrogariaService.java b/290_Schedule_Salvar_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/service/DrogariaService.java new file mode 100644 index 0000000..fbb1f2b --- /dev/null +++ b/290_Schedule_Salvar_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/service/DrogariaService.java @@ -0,0 +1,13 @@ +package br.pro.delfino.drogaria.service; + +import javax.ws.rs.GET; +import javax.ws.rs.Path; + +// http://localhost:8080/Drogaria/rest/drogaria +@Path("drogaria") +public class DrogariaService { + @GET + public String exibir(){ + return "Curso de Java"; + } +} diff --git a/290_Schedule_Salvar_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/service/FabricanteService.java b/290_Schedule_Salvar_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/service/FabricanteService.java new file mode 100644 index 0000000..1dbc0d1 --- /dev/null +++ b/290_Schedule_Salvar_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/service/FabricanteService.java @@ -0,0 +1,85 @@ +package br.pro.delfino.drogaria.service; + +import java.util.List; + +import javax.ws.rs.DELETE; +import javax.ws.rs.GET; +import javax.ws.rs.POST; +import javax.ws.rs.PUT; +import javax.ws.rs.Path; +import javax.ws.rs.PathParam; + +import com.google.gson.Gson; + +import br.pro.delfino.drogaria.dao.FabricanteDAO; +import br.pro.delfino.drogaria.domain.Fabricante; + +@Path("fabricante") +public class FabricanteService { + // http://127.0.0.1:8080/Drogaria/rest/fabricante + @GET + public String listar() { + FabricanteDAO fabricanteDAO = new FabricanteDAO(); + List fabricantes = fabricanteDAO.listar("descricao"); + + Gson gson = new Gson(); + String json = gson.toJson(fabricantes); + + return json; + } + + // http://127.0.0.1:8080/Drogaria/rest/fabricante/{codigo} + // http://127.0.0.1:8080/Drogaria/rest/fabricante/10 + @GET + @Path("{codigo}") + public String buscar(@PathParam("codigo") Long codigo) { + FabricanteDAO fabricanteDAO = new FabricanteDAO(); + Fabricante fabricante = fabricanteDAO.buscar(codigo); + + Gson gson = new Gson(); + String json = gson.toJson(fabricante); + + return json; + } + + // http://127.0.0.1:8080/Drogaria/rest/fabricante + @POST + public String salvar(String json) { + Gson gson = new Gson(); + Fabricante fabricante = gson.fromJson(json, Fabricante.class); + + FabricanteDAO fabricanteDAO = new FabricanteDAO(); + fabricanteDAO.merge(fabricante); + + String jsonSaida = gson.toJson(fabricante); + return jsonSaida; + } + + // http://127.0.0.1:8080/Drogaria/rest/fabricante + @PUT + public String editar(String json) { + Gson gson = new Gson(); + Fabricante fabricante = gson.fromJson(json, Fabricante.class); + + FabricanteDAO fabricanteDAO = new FabricanteDAO(); + fabricanteDAO.editar(fabricante); + + String jsonSaida = gson.toJson(fabricante); + return jsonSaida; + } + + // http://127.0.0.1:8080/Drogaria/rest/fabricante/{codigo} + // http://127.0.0.1:8080/Drogaria/rest/fabricante/10 + @DELETE + @Path("{codigo}") + public String excluir(@PathParam("codigo") Long codigo){ + FabricanteDAO fabricanteDAO = new FabricanteDAO(); + + Fabricante fabricante = fabricanteDAO.buscar(codigo); + fabricanteDAO.excluir(fabricante); + + Gson gson = new Gson(); + String saida = gson.toJson(fabricante); + return saida; + } +} diff --git a/290_Schedule_Salvar_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/service/ProdutoService.java b/290_Schedule_Salvar_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/service/ProdutoService.java new file mode 100644 index 0000000..4dfdf40 --- /dev/null +++ b/290_Schedule_Salvar_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/service/ProdutoService.java @@ -0,0 +1,39 @@ +package br.pro.delfino.drogaria.service; + +import java.util.List; + +import javax.ws.rs.GET; +import javax.ws.rs.POST; +import javax.ws.rs.Path; + +import com.google.gson.Gson; + +import br.pro.delfino.drogaria.dao.ProdutoDAO; +import br.pro.delfino.drogaria.domain.Produto; + +// http://127.0.0.1:8080/Drogaria/rest/produto +@Path("produto") +public class ProdutoService { + @GET + public String listar(){ + ProdutoDAO produtoDAO = new ProdutoDAO(); + List produtos = produtoDAO.listar("descricao"); + + Gson gson = new Gson(); + String json = gson.toJson(produtos); + + return json; + } + + @POST + public String salvar (String json){ + Gson gson = new Gson(); + Produto produto = gson.fromJson(json, Produto.class); + + ProdutoDAO produtoDAO = new ProdutoDAO(); + produto = produtoDAO.merge(produto); + + String jsonSaida = gson.toJson(produto); + return jsonSaida; + } +} diff --git a/290_Schedule_Salvar_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/util/DrogariaResourceConfig.java b/290_Schedule_Salvar_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/util/DrogariaResourceConfig.java new file mode 100644 index 0000000..2c997a9 --- /dev/null +++ b/290_Schedule_Salvar_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/util/DrogariaResourceConfig.java @@ -0,0 +1,13 @@ +package br.pro.delfino.drogaria.util; + +import javax.ws.rs.ApplicationPath; + +import org.glassfish.jersey.server.ResourceConfig; + +//http://localhost:8080/Drogaria/rest +@ApplicationPath("rest") +public class DrogariaResourceConfig extends ResourceConfig { + public DrogariaResourceConfig(){ + packages("br.pro.delfino.drogaria.service"); + } +} diff --git a/290_Schedule_Salvar_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/util/HibernateContexto.java b/290_Schedule_Salvar_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/util/HibernateContexto.java new file mode 100644 index 0000000..71869d7 --- /dev/null +++ b/290_Schedule_Salvar_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/util/HibernateContexto.java @@ -0,0 +1,18 @@ +package br.pro.delfino.drogaria.util; + +import javax.servlet.ServletContextEvent; +import javax.servlet.ServletContextListener; + +public class HibernateContexto implements ServletContextListener { + + @Override + public void contextDestroyed(ServletContextEvent event) { + HibernateUtil.getFabricaDeSessoes().close(); + } + + @Override + public void contextInitialized(ServletContextEvent event) { + HibernateUtil.getFabricaDeSessoes(); + } + +} diff --git a/290_Schedule_Salvar_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/util/HibernateUtil.java b/290_Schedule_Salvar_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/util/HibernateUtil.java new file mode 100644 index 0000000..693551b --- /dev/null +++ b/290_Schedule_Salvar_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/util/HibernateUtil.java @@ -0,0 +1,47 @@ +package br.pro.delfino.drogaria.util; + +import java.sql.Connection; +import java.sql.SQLException; + +import org.hibernate.Session; +import org.hibernate.SessionFactory; +import org.hibernate.boot.registry.StandardServiceRegistryBuilder; +import org.hibernate.cfg.Configuration; +import org.hibernate.jdbc.ReturningWork; +import org.hibernate.service.ServiceRegistry; + +public class HibernateUtil { + private static SessionFactory fabricaDeSessoes = criarFabricaDeSessoes(); + + public static SessionFactory getFabricaDeSessoes() { + return fabricaDeSessoes; + } + + public static Connection getConexao(){ + Session sessao = fabricaDeSessoes.openSession(); + + Connection conexao = sessao.doReturningWork(new ReturningWork() { + @Override + public Connection execute(Connection conn) throws SQLException { + return conn; + } + }); + + return conexao; + } + + private static SessionFactory criarFabricaDeSessoes() { + try { + Configuration configuracao = new Configuration().configure(); + + ServiceRegistry registro = new StandardServiceRegistryBuilder().applySettings(configuracao.getProperties()).build(); + + SessionFactory fabrica = configuracao.buildSessionFactory(registro); + + return fabrica; + } catch (Throwable ex) { + System.err.println("A fábrica de sessões não pode ser criada." + ex); + throw new ExceptionInInitializerError(ex); + } + } +} diff --git a/290_Schedule_Salvar_Evento/Drogaria/src/main/resources/hibernate.cfg.xml b/290_Schedule_Salvar_Evento/Drogaria/src/main/resources/hibernate.cfg.xml new file mode 100644 index 0000000..65f392e --- /dev/null +++ b/290_Schedule_Salvar_Evento/Drogaria/src/main/resources/hibernate.cfg.xml @@ -0,0 +1,51 @@ + + + + + + + + + + com.mysql.jdbc.Driver + jdbc:mysql://127.0.0.1:3306/drogaria + root + q1w2e3r4 + + + 1 + + + org.hibernate.dialect.MySQL5InnoDBDialect + + + thread + + + org.hibernate.cache.internal.NoCacheProvider + + + true + + + update + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/290_Schedule_Salvar_Evento/Drogaria/src/main/webapp/WEB-INF/springsecurity.taglib.xml b/290_Schedule_Salvar_Evento/Drogaria/src/main/webapp/WEB-INF/springsecurity.taglib.xml new file mode 100644 index 0000000..9d6938c --- /dev/null +++ b/290_Schedule_Salvar_Evento/Drogaria/src/main/webapp/WEB-INF/springsecurity.taglib.xml @@ -0,0 +1,32 @@ + + + + http://www.springframework.org/security/tags + + authorize + org.springframework.faces.security.FaceletsAuthorizeTagHandler + + + areAllGranted + org.springframework.faces.security.FaceletsAuthorizeTagUtils + boolean areAllGranted(java.lang.String) + + + areAnyGranted + org.springframework.faces.security.FaceletsAuthorizeTagUtils + boolean areAnyGranted(java.lang.String) + + + areNotGranted + org.springframework.faces.security.FaceletsAuthorizeTagUtils + boolean areNotGranted(java.lang.String) + + + isAllowed + org.springframework.faces.security.FaceletsAuthorizeTagUtils + boolean isAllowed(java.lang.String, + java.lang.String) + + \ No newline at end of file diff --git a/290_Schedule_Salvar_Evento/Drogaria/src/main/webapp/WEB-INF/web.xml b/290_Schedule_Salvar_Evento/Drogaria/src/main/webapp/WEB-INF/web.xml new file mode 100644 index 0000000..6b0cf5d --- /dev/null +++ b/290_Schedule_Salvar_Evento/Drogaria/src/main/webapp/WEB-INF/web.xml @@ -0,0 +1,48 @@ + + + + + Drogaria + + + + pages/principal.xhtml + + + + + javax.faces.PROJECT_STAGE + Development + + + + + primefaces.THEME + blitzer + + + + + primefaces.UPLOADER + native + + + + + Faces Servlet + javax.faces.webapp.FacesServlet + 1 + + + Faces Servlet + *.xhtml + + + + + br.pro.delfino.drogaria.util.HibernateContexto + + \ No newline at end of file diff --git a/290_Schedule_Salvar_Evento/Drogaria/src/main/webapp/pages/autenticacao.xhtml b/290_Schedule_Salvar_Evento/Drogaria/src/main/webapp/pages/autenticacao.xhtml new file mode 100644 index 0000000..e41a833 --- /dev/null +++ b/290_Schedule_Salvar_Evento/Drogaria/src/main/webapp/pages/autenticacao.xhtml @@ -0,0 +1,36 @@ + + + + + + Autenticação + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/290_Schedule_Salvar_Evento/Drogaria/src/main/webapp/pages/caixa.xhtml b/290_Schedule_Salvar_Evento/Drogaria/src/main/webapp/pages/caixa.xhtml new file mode 100644 index 0000000..526e766 --- /dev/null +++ b/290_Schedule_Salvar_Evento/Drogaria/src/main/webapp/pages/caixa.xhtml @@ -0,0 +1,50 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/290_Schedule_Salvar_Evento/Drogaria/src/main/webapp/pages/cidades.xhtml b/290_Schedule_Salvar_Evento/Drogaria/src/main/webapp/pages/cidades.xhtml new file mode 100644 index 0000000..504f3a3 --- /dev/null +++ b/290_Schedule_Salvar_Evento/Drogaria/src/main/webapp/pages/cidades.xhtml @@ -0,0 +1,100 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/290_Schedule_Salvar_Evento/Drogaria/src/main/webapp/pages/clientes.xhtml b/290_Schedule_Salvar_Evento/Drogaria/src/main/webapp/pages/clientes.xhtml new file mode 100644 index 0000000..4e3cfb5 --- /dev/null +++ b/290_Schedule_Salvar_Evento/Drogaria/src/main/webapp/pages/clientes.xhtml @@ -0,0 +1,94 @@ + + + + + + Clientes + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/290_Schedule_Salvar_Evento/Drogaria/src/main/webapp/pages/estados.xhtml b/290_Schedule_Salvar_Evento/Drogaria/src/main/webapp/pages/estados.xhtml new file mode 100644 index 0000000..0cddf5e --- /dev/null +++ b/290_Schedule_Salvar_Evento/Drogaria/src/main/webapp/pages/estados.xhtml @@ -0,0 +1,90 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/290_Schedule_Salvar_Evento/Drogaria/src/main/webapp/pages/fabricantes.xhtml b/290_Schedule_Salvar_Evento/Drogaria/src/main/webapp/pages/fabricantes.xhtml new file mode 100644 index 0000000..3904db0 --- /dev/null +++ b/290_Schedule_Salvar_Evento/Drogaria/src/main/webapp/pages/fabricantes.xhtml @@ -0,0 +1,78 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/290_Schedule_Salvar_Evento/Drogaria/src/main/webapp/pages/historico.xhtml b/290_Schedule_Salvar_Evento/Drogaria/src/main/webapp/pages/historico.xhtml new file mode 100644 index 0000000..184a864 --- /dev/null +++ b/290_Schedule_Salvar_Evento/Drogaria/src/main/webapp/pages/historico.xhtml @@ -0,0 +1,64 @@ + + + + + + Histórico + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/290_Schedule_Salvar_Evento/Drogaria/src/main/webapp/pages/pessoas.xhtml b/290_Schedule_Salvar_Evento/Drogaria/src/main/webapp/pages/pessoas.xhtml new file mode 100644 index 0000000..7d68e8c --- /dev/null +++ b/290_Schedule_Salvar_Evento/Drogaria/src/main/webapp/pages/pessoas.xhtml @@ -0,0 +1,162 @@ + + + + + + Pessoas + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/290_Schedule_Salvar_Evento/Drogaria/src/main/webapp/pages/principal.xhtml b/290_Schedule_Salvar_Evento/Drogaria/src/main/webapp/pages/principal.xhtml new file mode 100644 index 0000000..726842c --- /dev/null +++ b/290_Schedule_Salvar_Evento/Drogaria/src/main/webapp/pages/principal.xhtml @@ -0,0 +1,14 @@ + + + + + + + + + \ No newline at end of file diff --git a/290_Schedule_Salvar_Evento/Drogaria/src/main/webapp/pages/produtos.xhtml b/290_Schedule_Salvar_Evento/Drogaria/src/main/webapp/pages/produtos.xhtml new file mode 100644 index 0000000..56c5db4 --- /dev/null +++ b/290_Schedule_Salvar_Evento/Drogaria/src/main/webapp/pages/produtos.xhtml @@ -0,0 +1,141 @@ + + + + + + Produtos + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/290_Schedule_Salvar_Evento/Drogaria/src/main/webapp/pages/produtosEdicao.xhtml b/290_Schedule_Salvar_Evento/Drogaria/src/main/webapp/pages/produtosEdicao.xhtml new file mode 100644 index 0000000..9eae78a --- /dev/null +++ b/290_Schedule_Salvar_Evento/Drogaria/src/main/webapp/pages/produtosEdicao.xhtml @@ -0,0 +1,67 @@ + + + + + + + + + + + + Produtos + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/290_Schedule_Salvar_Evento/Drogaria/src/main/webapp/pages/produtosListagem.xhtml b/290_Schedule_Salvar_Evento/Drogaria/src/main/webapp/pages/produtosListagem.xhtml new file mode 100644 index 0000000..2b30417 --- /dev/null +++ b/290_Schedule_Salvar_Evento/Drogaria/src/main/webapp/pages/produtosListagem.xhtml @@ -0,0 +1,59 @@ + + + + + + + + + + + Produtos + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/290_Schedule_Salvar_Evento/Drogaria/src/main/webapp/pages/testeJSF.xhtml b/290_Schedule_Salvar_Evento/Drogaria/src/main/webapp/pages/testeJSF.xhtml new file mode 100644 index 0000000..c20659b --- /dev/null +++ b/290_Schedule_Salvar_Evento/Drogaria/src/main/webapp/pages/testeJSF.xhtml @@ -0,0 +1,12 @@ + + + + + + Teste JSF + + + + + \ No newline at end of file diff --git a/290_Schedule_Salvar_Evento/Drogaria/src/main/webapp/pages/testePrimeFaces.xhtml b/290_Schedule_Salvar_Evento/Drogaria/src/main/webapp/pages/testePrimeFaces.xhtml new file mode 100644 index 0000000..6c4d434 --- /dev/null +++ b/290_Schedule_Salvar_Evento/Drogaria/src/main/webapp/pages/testePrimeFaces.xhtml @@ -0,0 +1,14 @@ + + + + + + Teste PrimeFaces + + + + + \ No newline at end of file diff --git a/290_Schedule_Salvar_Evento/Drogaria/src/main/webapp/pages/usuarios.xhtml b/290_Schedule_Salvar_Evento/Drogaria/src/main/webapp/pages/usuarios.xhtml new file mode 100644 index 0000000..45dd761 --- /dev/null +++ b/290_Schedule_Salvar_Evento/Drogaria/src/main/webapp/pages/usuarios.xhtml @@ -0,0 +1,97 @@ + + + + + + Usuários + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/290_Schedule_Salvar_Evento/Drogaria/src/main/webapp/pages/vendas.xhtml b/290_Schedule_Salvar_Evento/Drogaria/src/main/webapp/pages/vendas.xhtml new file mode 100644 index 0000000..4485892 --- /dev/null +++ b/290_Schedule_Salvar_Evento/Drogaria/src/main/webapp/pages/vendas.xhtml @@ -0,0 +1,156 @@ + + + + + + Vendas + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/290_Schedule_Salvar_Evento/Drogaria/src/main/webapp/reports/estados.jasper b/290_Schedule_Salvar_Evento/Drogaria/src/main/webapp/reports/estados.jasper new file mode 100644 index 0000000..96a1278 Binary files /dev/null and b/290_Schedule_Salvar_Evento/Drogaria/src/main/webapp/reports/estados.jasper differ diff --git a/290_Schedule_Salvar_Evento/Drogaria/src/main/webapp/reports/estados.jrxml b/290_Schedule_Salvar_Evento/Drogaria/src/main/webapp/reports/estados.jrxml new file mode 100644 index 0000000..76da981 --- /dev/null +++ b/290_Schedule_Salvar_Evento/Drogaria/src/main/webapp/reports/estados.jrxml @@ -0,0 +1,102 @@ + + + + + + + + + + + + + + + + + + + + <band height="80" splitType="Stretch"> + <image hAlign="Center" vAlign="Middle"> + <reportElement x="0" y="0" width="555" height="80" uuid="6f3208e9-d291-48b3-b13d-3ec9ef72cd3e"> + <property name="com.jaspersoft.studio.unit.width" value="pixel"/> + </reportElement> + <imageExpression><![CDATA["C:/Programação Web com Java/Workspace/Drogaria/src/main/webapp/resources/images/banner.jpg"]]></imageExpression> + </image> + </band> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/290_Schedule_Salvar_Evento/Drogaria/src/main/webapp/reports/produtos.jasper b/290_Schedule_Salvar_Evento/Drogaria/src/main/webapp/reports/produtos.jasper new file mode 100644 index 0000000..ad55e5f Binary files /dev/null and b/290_Schedule_Salvar_Evento/Drogaria/src/main/webapp/reports/produtos.jasper differ diff --git a/290_Schedule_Salvar_Evento/Drogaria/src/main/webapp/reports/produtos.jrxml b/290_Schedule_Salvar_Evento/Drogaria/src/main/webapp/reports/produtos.jrxml new file mode 100644 index 0000000..800aed0 --- /dev/null +++ b/290_Schedule_Salvar_Evento/Drogaria/src/main/webapp/reports/produtos.jrxml @@ -0,0 +1,130 @@ + + + + + + + + + + + + + + + + + + + + + <band height="79" splitType="Stretch"> + <image hAlign="Center"> + <reportElement x="0" y="0" width="555" height="79" uuid="727feda0-73ba-4c27-aa2c-a431492bd3d6"> + <property name="com.jaspersoft.studio.unit.width" value="pixel"/> + </reportElement> + <imageExpression><![CDATA["C:/Programação Web com Java/Workspace/Drogaria/src/main/webapp/resources/images/banner.jpg"]]></imageExpression> + </image> + </band> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/290_Schedule_Salvar_Evento/Drogaria/src/main/webapp/resources/css/estilos.css b/290_Schedule_Salvar_Evento/Drogaria/src/main/webapp/resources/css/estilos.css new file mode 100644 index 0000000..4acdd7f --- /dev/null +++ b/290_Schedule_Salvar_Evento/Drogaria/src/main/webapp/resources/css/estilos.css @@ -0,0 +1,19 @@ +@CHARSET "UTF-8"; + +.imagemCentralizada { + display: block; + margin-left: auto; + margin-right: auto; +} + +.divTopo { + padding-bottom: 5px; +} + +.divCabecalho { + padding-bottom: 5px; +} + +.ui-widget, .ui-widget .ui-widget { + font-size: 100% !important; +} \ No newline at end of file diff --git a/290_Schedule_Salvar_Evento/Drogaria/src/main/webapp/resources/images/banner.jpg b/290_Schedule_Salvar_Evento/Drogaria/src/main/webapp/resources/images/banner.jpg new file mode 100644 index 0000000..f58cc21 Binary files /dev/null and b/290_Schedule_Salvar_Evento/Drogaria/src/main/webapp/resources/images/banner.jpg differ diff --git a/290_Schedule_Salvar_Evento/Drogaria/src/main/webapp/resources/js/scripts.js b/290_Schedule_Salvar_Evento/Drogaria/src/main/webapp/resources/js/scripts.js new file mode 100644 index 0000000..e39ad9b --- /dev/null +++ b/290_Schedule_Salvar_Evento/Drogaria/src/main/webapp/resources/js/scripts.js @@ -0,0 +1,26 @@ +PrimeFaces.locales['pt_BR'] = { + closeText: 'Fechar', + prevText: 'Anterior', + nextText: 'Próximo', + currentText: 'Começo', + monthNames: ['Janeiro','Fevereiro','Março','Abril','Maio','Junho','Julho','Agosto','Setembro','Outubro','Novembro','Dezembro'], + monthNamesShort: ['Jan','Fev','Mar','Abr','Mai','Jun', 'Jul','Ago','Set','Out','Nov','Dez'], + dayNames: ['Domingo','Segunda','Terça','Quarta','Quinta','Sexta','Sábado'], + dayNamesShort: ['Dom','Seg','Ter','Qua','Qui','Sex','Sáb'], + dayNamesMin: ['D','S','T','Q','Q','S','S'], + weekHeader: 'Semana', + firstDay: 0, + isRTL: false, + showMonthAfterYear: false, + yearSuffix: '', + timeOnlyTitle: 'Só Horas', + timeText: 'Tempo', + hourText: 'Hora', + minuteText: 'Minuto', + secondText: 'Segundo', + ampm: false, + month: 'Mês', + week: 'Semana', + day: 'Dia', + allDayText : 'Todo o Dia' +}; \ No newline at end of file diff --git a/290_Schedule_Salvar_Evento/Drogaria/src/main/webapp/templates/modelo.xhtml b/290_Schedule_Salvar_Evento/Drogaria/src/main/webapp/templates/modelo.xhtml new file mode 100644 index 0000000..62d3d1c --- /dev/null +++ b/290_Schedule_Salvar_Evento/Drogaria/src/main/webapp/templates/modelo.xhtml @@ -0,0 +1,55 @@ + + + + + + SiGDro + + + + + +
+
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+
+ \ No newline at end of file diff --git a/290_Schedule_Salvar_Evento/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/CaixaDAOTest.java b/290_Schedule_Salvar_Evento/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/CaixaDAOTest.java new file mode 100644 index 0000000..b5e6156 --- /dev/null +++ b/290_Schedule_Salvar_Evento/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/CaixaDAOTest.java @@ -0,0 +1,33 @@ +package br.pro.delfino.drogaria.dao; + +import java.math.BigDecimal; +import java.text.ParseException; +import java.text.SimpleDateFormat; + +import org.junit.Assert; +import org.junit.Ignore; +import org.junit.Test; + +import br.pro.delfino.drogaria.domain.Caixa; + +public class CaixaDAOTest { + @Test + @Ignore + public void salvar() throws ParseException { + Caixa caixa = new Caixa(); + caixa.setDataAbertura(new SimpleDateFormat("dd/MM/yyyy").parse("14/12/2015")); + caixa.setValorAbertura(new BigDecimal("100.00")); + + CaixaDAO caixaDAO = new CaixaDAO(); + caixaDAO.salvar(caixa); + } + + @Test + @Ignore + public void buscar() throws ParseException { + CaixaDAO caixaDAO = new CaixaDAO(); + Caixa caixa = caixaDAO.buscar(new SimpleDateFormat("dd/MM/yyyy").parse("13/12/2015")); + System.out.println(caixa); + Assert.assertNull(caixa); + } +} diff --git a/290_Schedule_Salvar_Evento/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/CidadeDAOTest.java b/290_Schedule_Salvar_Evento/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/CidadeDAOTest.java new file mode 100644 index 0000000..ec59599 --- /dev/null +++ b/290_Schedule_Salvar_Evento/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/CidadeDAOTest.java @@ -0,0 +1,130 @@ +package br.pro.delfino.drogaria.dao; + +import java.util.List; + +import org.junit.Ignore; +import org.junit.Test; + +import br.pro.delfino.drogaria.domain.Cidade; +import br.pro.delfino.drogaria.domain.Estado; + +public class CidadeDAOTest { + @Test + @Ignore + public void salvar() { + Long codigoEstado = 1L; + + EstadoDAO estadoDAO = new EstadoDAO(); + + Estado estado = estadoDAO.buscar(codigoEstado); + + Cidade cidade = new Cidade(); + cidade.setNome("Marília"); + cidade.setEstado(estado); + + CidadeDAO cidadeDAO = new CidadeDAO(); + cidadeDAO.salvar(cidade); + } + + @Test + @Ignore + public void listar() { + CidadeDAO cidadeDAO = new CidadeDAO(); + List resultado = cidadeDAO.listar(); + + for (Cidade cidade : resultado) { + System.out.println("Código da Cidade: " + cidade.getCodigo()); + System.out.println("Nome da Cidade: " + cidade.getNome()); + System.out.println("Código do Estado: " + cidade.getEstado().getCodigo()); + System.out.println("Sigla do Estado: " + cidade.getEstado().getSigla()); + System.out.println("Nome do Estado: " + cidade.getEstado().getNome()); + System.out.println(); + } + } + + @Test + @Ignore + public void buscar(){ + Long codigo = 7L; + + CidadeDAO cidadeDAO = new CidadeDAO(); + Cidade cidade = cidadeDAO.buscar(codigo); + + System.out.println("Código da Cidade: " + cidade.getCodigo()); + System.out.println("Nome da Cidade: " + cidade.getNome()); + System.out.println("Código do Estado: " + cidade.getEstado().getCodigo()); + System.out.println("Sigla do Estado: " + cidade.getEstado().getSigla()); + System.out.println("Nome do Estado: " + cidade.getEstado().getNome()); + } + + @Test + @Ignore + public void excluir(){ + Long codigo = 7L; + + CidadeDAO cidadeDAO = new CidadeDAO(); + Cidade cidade = cidadeDAO.buscar(codigo); + + cidadeDAO.excluir(cidade); + + System.out.println("Cidade Removida"); + System.out.println("Código da Cidade: " + cidade.getCodigo()); + System.out.println("Nome da Cidade: " + cidade.getNome()); + System.out.println("Código do Estado: " + cidade.getEstado().getCodigo()); + System.out.println("Sigla do Estado: " + cidade.getEstado().getSigla()); + System.out.println("Nome do Estado: " + cidade.getEstado().getNome()); + } + + @Test + @Ignore + public void editar(){ + Long codigoCidade = 6L; + Long codigoEstado = 11L; + + EstadoDAO estadoDAO = new EstadoDAO(); + Estado estado = estadoDAO.buscar(codigoEstado); + + System.out.println("Código do Estado: " + estado.getCodigo()); + System.out.println("Sigla do Estado: " + estado.getSigla()); + System.out.println("Nome do Estado: " + estado.getNome()); + + CidadeDAO cidadeDAO = new CidadeDAO(); + Cidade cidade = cidadeDAO.buscar(codigoCidade); + + System.out.println("Cidade A Ser Editada"); + System.out.println("Código da Cidade: " + cidade.getCodigo()); + System.out.println("Nome da Cidade: " + cidade.getNome()); + System.out.println("Código do Estado: " + cidade.getEstado().getCodigo()); + System.out.println("Sigla do Estado: " + cidade.getEstado().getSigla()); + System.out.println("Nome do Estado: " + cidade.getEstado().getNome()); + + cidade.setNome("Guarapuava"); + cidade.setEstado(estado); + + cidadeDAO.editar(cidade); + + System.out.println("Cidade Editada"); + System.out.println("Código da Cidade: " + cidade.getCodigo()); + System.out.println("Nome da Cidade: " + cidade.getNome()); + System.out.println("Código do Estado: " + cidade.getEstado().getCodigo()); + System.out.println("Sigla do Estado: " + cidade.getEstado().getSigla()); + System.out.println("Nome do Estado: " + cidade.getEstado().getNome()); + } + + @Test + public void buscarPorEstado() { + Long estadoCodigo = 3L; + + CidadeDAO cidadeDAO = new CidadeDAO(); + List resultado = cidadeDAO.buscarPorEstado(estadoCodigo); + + for (Cidade cidade : resultado) { + System.out.println("Código da Cidade: " + cidade.getCodigo()); + System.out.println("Nome da Cidade: " + cidade.getNome()); + System.out.println("Código do Estado: " + cidade.getEstado().getCodigo()); + System.out.println("Sigla do Estado: " + cidade.getEstado().getSigla()); + System.out.println("Nome do Estado: " + cidade.getEstado().getNome()); + System.out.println(); + } + } +} diff --git a/290_Schedule_Salvar_Evento/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/ClienteDAOTest.java b/290_Schedule_Salvar_Evento/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/ClienteDAOTest.java new file mode 100644 index 0000000..4d557d9 --- /dev/null +++ b/290_Schedule_Salvar_Evento/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/ClienteDAOTest.java @@ -0,0 +1,29 @@ +package br.pro.delfino.drogaria.dao; + +import java.text.ParseException; +import java.text.SimpleDateFormat; + +import org.junit.Ignore; +import org.junit.Test; + +import br.pro.delfino.drogaria.domain.Cliente; +import br.pro.delfino.drogaria.domain.Pessoa; + +public class ClienteDAOTest { + @Test + @Ignore + public void salvar() throws ParseException { + PessoaDAO pessoaDAO = new PessoaDAO(); + Pessoa pessoa = pessoaDAO.buscar(2L); + + Cliente cliente = new Cliente(); + cliente.setDataCadastro(new SimpleDateFormat("dd/MM/yyyy").parse("09/06/2015")); + cliente.setLiberado(false); + cliente.setPessoa(pessoa); + + ClienteDAO clienteDAO = new ClienteDAO(); + clienteDAO.salvar(cliente); + + System.out.println("Cliente salvo com sucesso."); + } +} diff --git a/290_Schedule_Salvar_Evento/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/EstadoDAOTest.java b/290_Schedule_Salvar_Evento/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/EstadoDAOTest.java new file mode 100644 index 0000000..f84a086 --- /dev/null +++ b/290_Schedule_Salvar_Evento/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/EstadoDAOTest.java @@ -0,0 +1,88 @@ +package br.pro.delfino.drogaria.dao; + +import java.util.List; + +import org.junit.Ignore; +import org.junit.Test; + +import br.pro.delfino.drogaria.domain.Estado; + +public class EstadoDAOTest { + @Test + @Ignore + public void salvar() { + Estado estado = new Estado(); + estado.setNome("Rio Grande do Sul"); + estado.setSigla("RS"); + + EstadoDAO estadoDAO = new EstadoDAO(); + estadoDAO.salvar(estado); + } + + @Test + @Ignore + public void listar() { + EstadoDAO estadoDAO = new EstadoDAO(); + List resultado = estadoDAO.listar(); + + System.out.println("Total de Registros Encontrados: " + resultado.size()); + + for (Estado estado : resultado) { + System.out.println(estado.getCodigo() + " - " + estado.getSigla() + " - " + estado.getNome()); + } + } + + @Test + @Ignore + public void buscar(){ + Long codigo = 3L; + + EstadoDAO estadoDAO = new EstadoDAO(); + Estado estado = estadoDAO.buscar(codigo); + + if(estado == null){ + System.out.println("Nenhum registro encontrado"); + }else{ + System.out.println("Registro encontrado:"); + System.out.println(estado.getCodigo() + " - " + estado.getSigla() + " - " + estado.getNome()); + } + } + + @Test + @Ignore + public void excluir(){ + Long codigo = 1L; + EstadoDAO estadoDAO = new EstadoDAO(); + Estado estado = estadoDAO.buscar(codigo); + + if(estado == null){ + System.out.println("Nenhum registro encontrado"); + }else{ + estadoDAO.excluir(estado); + System.out.println("Registro removido:"); + System.out.println(estado.getCodigo() + " - " + estado.getSigla() + " - " + estado.getNome()); + } + } + + @Test + @Ignore + public void editar(){ + Long codigo = 10L; + EstadoDAO estadoDAO = new EstadoDAO(); + Estado estado = estadoDAO.buscar(codigo); + + if(estado == null){ + System.out.println("Nenhum registro encontrado"); + }else{ + System.out.println("Registro editado - Antes:"); + System.out.println(estado.getCodigo() + " - " + estado.getSigla() + " - " + estado.getNome()); + + estado.setNome("Santa Catarina"); + estado.setSigla("SC"); + estadoDAO.editar(estado); + + System.out.println("Registro editado - Depois:"); + System.out.println(estado.getCodigo() + " - " + estado.getSigla() + " - " + estado.getNome()); + } + } +} diff --git a/290_Schedule_Salvar_Evento/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/FabricanteDAOTest.java b/290_Schedule_Salvar_Evento/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/FabricanteDAOTest.java new file mode 100644 index 0000000..56fb124 --- /dev/null +++ b/290_Schedule_Salvar_Evento/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/FabricanteDAOTest.java @@ -0,0 +1,63 @@ +package br.pro.delfino.drogaria.dao; + +import java.util.List; + +import org.junit.Ignore; +import org.junit.Test; + +import br.pro.delfino.drogaria.domain.Fabricante; + +public class FabricanteDAOTest { + @Test + @Ignore + public void salvar() { + Fabricante fabricante = new Fabricante(); + fabricante.setDescricao("Aché"); + + FabricanteDAO fabricanteDAO = new FabricanteDAO(); + fabricanteDAO.salvar(fabricante); + } + + @Test + @Ignore + public void listar() { + FabricanteDAO FabricanteDAO = new FabricanteDAO(); + List resultado = FabricanteDAO.listar(); + + System.out.println("Total de Registros Encontrados: " + resultado.size()); + + for (Fabricante fabricante : resultado) { + System.out.println(fabricante.getCodigo() + " - " + fabricante.getDescricao()); + } + } + + @Test + @Ignore + public void buscar(){ + Long codigo = 3L; + + FabricanteDAO fabricanteDAO = new FabricanteDAO(); + Fabricante fabricante = fabricanteDAO.buscar(codigo); + + if(fabricante == null){ + System.out.println("Nenhum registro encontrado"); + }else{ + System.out.println("Registro encontrado:"); + System.out.println(fabricante.getCodigo() + " - " + fabricante.getDescricao()); + } + } + + @Test + @Ignore + public void merge() { + //Fabricante fabricante = new Fabricante(); + //fabricante.setDescricao("Fabricante A"); + //FabricanteDAO fabricanteDAO = new FabricanteDAO(); + //fabricanteDAO.merge(fabricante); + + FabricanteDAO fabricanteDAO = new FabricanteDAO(); + Fabricante fabricante = fabricanteDAO.buscar(5L); + fabricante.setDescricao("Fabricante B"); + fabricanteDAO.merge(fabricante); + } +} diff --git a/290_Schedule_Salvar_Evento/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/FuncionarioDAOTest.java b/290_Schedule_Salvar_Evento/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/FuncionarioDAOTest.java new file mode 100644 index 0000000..06cfff7 --- /dev/null +++ b/290_Schedule_Salvar_Evento/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/FuncionarioDAOTest.java @@ -0,0 +1,5 @@ +package br.pro.delfino.drogaria.dao; + +public class FuncionarioDAOTest { + +} diff --git a/290_Schedule_Salvar_Evento/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/ProdutoDAOTest.java b/290_Schedule_Salvar_Evento/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/ProdutoDAOTest.java new file mode 100644 index 0000000..36f8563 --- /dev/null +++ b/290_Schedule_Salvar_Evento/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/ProdutoDAOTest.java @@ -0,0 +1,29 @@ +package br.pro.delfino.drogaria.dao; + +import java.math.BigDecimal; + +import org.junit.Ignore; +import org.junit.Test; + +import br.pro.delfino.drogaria.domain.Fabricante; +import br.pro.delfino.drogaria.domain.Produto; + +public class ProdutoDAOTest { + @Test + @Ignore + public void salvar(){ + FabricanteDAO fabricanteDAO = new FabricanteDAO(); + Fabricante fabricante = fabricanteDAO.buscar(new Long("3")); + + Produto produto = new Produto(); + produto.setDescricao("Cataflan 50mg com 20 Comprimidos"); + produto.setFabricante(fabricante); + produto.setPreco(new BigDecimal("13.70")); + produto.setQuantidade(new Short("7")); + + ProdutoDAO produtoDAO = new ProdutoDAO(); + produtoDAO.salvar(produto); + + System.out.println("Produto salvo com sucesso"); + } +} diff --git a/290_Schedule_Salvar_Evento/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/UsuarioDAOTest.java b/290_Schedule_Salvar_Evento/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/UsuarioDAOTest.java new file mode 100644 index 0000000..c567ec8 --- /dev/null +++ b/290_Schedule_Salvar_Evento/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/UsuarioDAOTest.java @@ -0,0 +1,47 @@ +package br.pro.delfino.drogaria.dao; + +import org.apache.shiro.crypto.hash.SimpleHash; +import org.junit.Ignore; +import org.junit.Test; + +import br.pro.delfino.drogaria.domain.Pessoa; +import br.pro.delfino.drogaria.domain.Usuario; + +public class UsuarioDAOTest { + @Test + @Ignore + public void salvar(){ + PessoaDAO pessoaDAO = new PessoaDAO(); + Pessoa pessoa = pessoaDAO.buscar(3L); + + System.out.println("Pessoa Encontrada"); + System.out.println("Nome: " + pessoa.getNome()); + System.out.println("CPF: " + pessoa.getCpf()); + + Usuario usuario = new Usuario(); + usuario.setAtivo(true); + usuario.setPessoa(pessoa); + usuario.setSenhaSemCriptografia("q1w2e3r4"); + + SimpleHash hash = new SimpleHash("md5", usuario.getSenhaSemCriptografia()); + usuario.setSenha(hash.toHex()); + + usuario.setTipo('B'); + + UsuarioDAO usuarioDAO = new UsuarioDAO(); + usuarioDAO.salvar(usuario); + + System.out.println("Usuário salvo com sucesso."); + } + + @Test + public void autenticar(){ + String cpf = "999.999.999-99"; + String senha = "12345678"; + + UsuarioDAO usuarioDAO = new UsuarioDAO(); + Usuario usuario = usuarioDAO.autenticar(cpf, senha); + + System.out.println("Usuário autentica: " + usuario); + } +} diff --git a/290_Schedule_Salvar_Evento/Drogaria/src/test/java/br/pro/delfino/drogaria/util/HibernateUtilTest.java b/290_Schedule_Salvar_Evento/Drogaria/src/test/java/br/pro/delfino/drogaria/util/HibernateUtilTest.java new file mode 100644 index 0000000..75776e0 --- /dev/null +++ b/290_Schedule_Salvar_Evento/Drogaria/src/test/java/br/pro/delfino/drogaria/util/HibernateUtilTest.java @@ -0,0 +1,13 @@ +package br.pro.delfino.drogaria.util; + +import org.hibernate.Session; +import org.junit.Test; + +public class HibernateUtilTest { + @Test + public void conectar(){ + Session sessao = HibernateUtil.getFabricaDeSessoes().openSession(); + sessao.close(); + HibernateUtil.getFabricaDeSessoes().close(); + } +} diff --git a/291_PhaseListener_Introducao/Drogaria/.tern-project b/291_PhaseListener_Introducao/Drogaria/.tern-project new file mode 100644 index 0000000..b6f48dd --- /dev/null +++ b/291_PhaseListener_Introducao/Drogaria/.tern-project @@ -0,0 +1 @@ +{"ide":{},"libs":["ecma5","browser"],"plugins":{"guess-types":{},"angular":{}}} \ No newline at end of file diff --git a/291_PhaseListener_Introducao/Drogaria/pom.xml b/291_PhaseListener_Introducao/Drogaria/pom.xml new file mode 100644 index 0000000..39b1e60 --- /dev/null +++ b/291_PhaseListener_Introducao/Drogaria/pom.xml @@ -0,0 +1,132 @@ + + 4.0.0 + br.pro.delfino.drogaria + Drogaria + 1.0 + war + + + + UTF-8 + + + + + + Drogaria + + + + + + org.apache.maven.plugins + maven-compiler-plugin + 3.3 + + 1.8 + 1.8 + + + + + + + + + + prime-repo + PrimeFaces Maven Repository + http://repository.primefaces.org + default + + + + + + + + org.hibernate + hibernate-core + 4.3.11.Final + + + + + mysql + mysql-connector-java + 5.1.36 + + + + + junit + junit + 4.12 + + + + + org.glassfish + javax.faces + 2.2.12 + + + + + org.primefaces + primefaces + 5.2 + + + + + org.primefaces.themes + all-themes + 1.0.10 + + + + + org.omnifaces + omnifaces + 1.11 + + + + + javax.servlet + javax.servlet-api + 3.1.0 + + + + + org.glassfish.jersey.containers + jersey-container-servlet + 2.22.1 + + + + + com.google.code.gson + gson + 2.4 + + + + + net.sf.jasperreports + jasperreports + 6.1.1 + + + + + org.apache.shiro + shiro-core + 1.2.4 + + + + \ No newline at end of file diff --git a/291_PhaseListener_Introducao/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/AutenticacaoBean.java b/291_PhaseListener_Introducao/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/AutenticacaoBean.java new file mode 100644 index 0000000..7e86b0d --- /dev/null +++ b/291_PhaseListener_Introducao/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/AutenticacaoBean.java @@ -0,0 +1,60 @@ +package br.pro.delfino.drogaria.bean; + +import java.io.IOException; + +import javax.annotation.PostConstruct; +import javax.faces.bean.ManagedBean; +import javax.faces.bean.SessionScoped; + +import org.omnifaces.util.Faces; +import org.omnifaces.util.Messages; + +import br.pro.delfino.drogaria.dao.UsuarioDAO; +import br.pro.delfino.drogaria.domain.Pessoa; +import br.pro.delfino.drogaria.domain.Usuario; + +@ManagedBean +@SessionScoped +public class AutenticacaoBean { + private Usuario usuario; + private Usuario usuarioLogado; + + public Usuario getUsuario() { + return usuario; + } + + public void setUsuario(Usuario usuario) { + this.usuario = usuario; + } + + public Usuario getUsuarioLogado() { + return usuarioLogado; + } + + public void setUsuarioLogado(Usuario usuarioLogado) { + this.usuarioLogado = usuarioLogado; + } + + @PostConstruct + public void iniciar() { + usuario = new Usuario(); + usuario.setPessoa(new Pessoa()); + } + + public void autenticar() { + try { + UsuarioDAO usuarioDAO = new UsuarioDAO(); + usuarioLogado = usuarioDAO.autenticar(usuario.getPessoa().getCpf(), usuario.getSenha()); + + if(usuarioLogado == null){ + Messages.addGlobalError("CPF e/ou senha incorretos"); + return; + } + + Faces.redirect("./pages/principal.xhtml"); + } catch (IOException erro) { + erro.printStackTrace(); + Messages.addGlobalError(erro.getMessage()); + } + } +} diff --git a/291_PhaseListener_Introducao/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/CaixaBean.java b/291_PhaseListener_Introducao/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/CaixaBean.java new file mode 100644 index 0000000..1c32fc6 --- /dev/null +++ b/291_PhaseListener_Introducao/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/CaixaBean.java @@ -0,0 +1,78 @@ +package br.pro.delfino.drogaria.bean; + +import java.util.Calendar; +import java.util.Date; +import java.util.List; + +import javax.annotation.PostConstruct; +import javax.faces.bean.ManagedBean; +import javax.faces.bean.ViewScoped; + +import org.omnifaces.util.Messages; +import org.primefaces.event.SelectEvent; +import org.primefaces.model.DefaultScheduleEvent; +import org.primefaces.model.DefaultScheduleModel; +import org.primefaces.model.ScheduleEvent; +import org.primefaces.model.ScheduleModel; + +import br.pro.delfino.drogaria.dao.CaixaDAO; +import br.pro.delfino.drogaria.dao.FuncionarioDAO; +import br.pro.delfino.drogaria.domain.Caixa; +import br.pro.delfino.drogaria.domain.Funcionario; + +@ManagedBean +@ViewScoped +public class CaixaBean { + private Caixa caixa; + + private ScheduleModel caixas; + private List funcionarios; + + public Caixa getCaixa() { + return caixa; + } + + public void setCaixa(Caixa caixa) { + this.caixa = caixa; + } + + public ScheduleModel getCaixas() { + return caixas; + } + + public void setCaixas(ScheduleModel caixas) { + this.caixas = caixas; + } + + public List getFuncionarios() { + return funcionarios; + } + + public void setFuncionarios(List funcionarios) { + this.funcionarios = funcionarios; + } + + @PostConstruct + public void listar() { + caixas = new DefaultScheduleModel(); + } + + public void novo(SelectEvent evento) { + caixa = new Caixa(); + caixa.setDataAbertura((Date) evento.getObject()); + + FuncionarioDAO funcionarioDAO = new FuncionarioDAO(); + funcionarios = funcionarioDAO.listar(); + } + + public void salvar(){ + Calendar calendar = Calendar.getInstance(); + calendar.setTime(caixa.getDataAbertura()); + calendar.add(Calendar.DATE, 1); + caixa.setDataAbertura(calendar.getTime()); + + CaixaDAO caixaDAO = new CaixaDAO(); + caixaDAO.salvar(caixa); + Messages.addGlobalInfo("Caixa aberto com sucesso"); + } +} diff --git a/291_PhaseListener_Introducao/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/CidadeBean.java b/291_PhaseListener_Introducao/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/CidadeBean.java new file mode 100644 index 0000000..4b03075 --- /dev/null +++ b/291_PhaseListener_Introducao/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/CidadeBean.java @@ -0,0 +1,119 @@ +package br.pro.delfino.drogaria.bean; + +import java.io.Serializable; +import java.util.List; + +import javax.annotation.PostConstruct; +import javax.faces.bean.ManagedBean; +import javax.faces.bean.ViewScoped; +import javax.faces.event.ActionEvent; + +import org.omnifaces.util.Messages; + +import br.pro.delfino.drogaria.dao.CidadeDAO; +import br.pro.delfino.drogaria.dao.EstadoDAO; +import br.pro.delfino.drogaria.domain.Cidade; +import br.pro.delfino.drogaria.domain.Estado; + +@SuppressWarnings("serial") +@ManagedBean +@ViewScoped +public class CidadeBean implements Serializable { + private Cidade cidade; + private List cidades; + private List estados; + + public Cidade getCidade() { + return cidade; + } + + public void setCidade(Cidade cidade) { + this.cidade = cidade; + } + + public List getCidades() { + return cidades; + } + + public void setCidades(List cidades) { + this.cidades = cidades; + } + + public List getEstados() { + return estados; + } + + public void setEstados(List estados) { + this.estados = estados; + } + + @PostConstruct + public void listar() { + try { + CidadeDAO cidadeDAO = new CidadeDAO(); + cidades = cidadeDAO.listar("nome"); + } catch (RuntimeException erro) { + Messages.addFlashGlobalError("Ocorreu um erro ao tentar listar as cidades"); + erro.printStackTrace(); + } + } + + public void novo() { + try { + cidade = new Cidade(); + + EstadoDAO estadoDAO = new EstadoDAO(); + estados = estadoDAO.listar("nome"); + } catch (RuntimeException erro) { + Messages.addFlashGlobalError("Ocorreu um erro ao gerar uma nova cidade"); + erro.printStackTrace(); + } + } + + public void salvar() { + try { + CidadeDAO cidadeDAO = new CidadeDAO(); + cidadeDAO.merge(cidade); + + cidade = new Cidade(); + + EstadoDAO estadoDAO = new EstadoDAO(); + estados = estadoDAO.listar(); + + cidades = cidadeDAO.listar(); + + Messages.addGlobalInfo("Cidade salva com sucesso"); + } catch (RuntimeException erro) { + Messages.addFlashGlobalError("Ocorreu um erro ao tentar salvar uma nova cidade"); + erro.printStackTrace(); + } + } + + public void excluir(ActionEvent evento) { + try { + cidade = (Cidade) evento.getComponent().getAttributes().get("cidadeSelecionada"); + + CidadeDAO cidadeDAO = new CidadeDAO(); + cidadeDAO.excluir(cidade); + + cidades = cidadeDAO.listar(); + + Messages.addGlobalInfo("Cidade removida com sucesso"); + } catch (RuntimeException erro) { + Messages.addFlashGlobalError("Ocorreu um erro ao tentar remover a cidade"); + erro.printStackTrace(); + } + } + + public void editar(ActionEvent evento){ + try { + cidade = (Cidade) evento.getComponent().getAttributes().get("cidadeSelecionada"); + + EstadoDAO estadoDAO = new EstadoDAO(); + estados = estadoDAO.listar(); + } catch (RuntimeException erro) { + Messages.addFlashGlobalError("Ocorreu um erro ao tentar selecionar uma cidade"); + erro.printStackTrace(); + } + } +} diff --git a/291_PhaseListener_Introducao/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/ClienteBean.java b/291_PhaseListener_Introducao/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/ClienteBean.java new file mode 100644 index 0000000..c96b115 --- /dev/null +++ b/291_PhaseListener_Introducao/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/ClienteBean.java @@ -0,0 +1,91 @@ +package br.pro.delfino.drogaria.bean; + +import java.io.Serializable; +import java.util.List; + +import javax.annotation.PostConstruct; +import javax.faces.bean.ManagedBean; +import javax.faces.bean.ViewScoped; + +import org.omnifaces.util.Messages; + +import br.pro.delfino.drogaria.dao.ClienteDAO; +import br.pro.delfino.drogaria.dao.PessoaDAO; +import br.pro.delfino.drogaria.domain.Cliente; +import br.pro.delfino.drogaria.domain.Pessoa; + +@SuppressWarnings("serial") +@ManagedBean +@ViewScoped +public class ClienteBean implements Serializable { + private Cliente cliente; + + private List clientes; + private List pessoas; + + public Cliente getCliente() { + return cliente; + } + + public void setCliente(Cliente cliente) { + this.cliente = cliente; + } + + public List getClientes() { + return clientes; + } + + public void setClientes(List clientes) { + this.clientes = clientes; + } + + public List getPessoas() { + return pessoas; + } + + public void setPessoas(List pessoas) { + this.pessoas = pessoas; + } + + @PostConstruct + public void listar() { + try { + ClienteDAO clienteDAO = new ClienteDAO(); + clientes = clienteDAO.listar("dataCadastro"); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar listar os clientes"); + erro.printStackTrace(); + } + } + + public void novo() { + try { + cliente = new Cliente(); + + PessoaDAO pessoaDAO = new PessoaDAO(); + pessoas = pessoaDAO.listar("nome"); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar criar um novo cliente"); + erro.printStackTrace(); + } + } + + public void salvar() { + try { + ClienteDAO clienteDAO = new ClienteDAO(); + clienteDAO.merge(cliente); + + cliente = new Cliente(); + + clientes = clienteDAO.listar("dataCadastro"); + + PessoaDAO pessoaDAO = new PessoaDAO(); + pessoas = pessoaDAO.listar("nome"); + + Messages.addGlobalInfo("Cliente salvo com sucesso"); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar salvar o cliente"); + erro.printStackTrace(); + } + } +} diff --git a/291_PhaseListener_Introducao/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/EstadoBean.java b/291_PhaseListener_Introducao/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/EstadoBean.java new file mode 100644 index 0000000..b4921fe --- /dev/null +++ b/291_PhaseListener_Introducao/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/EstadoBean.java @@ -0,0 +1,88 @@ +package br.pro.delfino.drogaria.bean; + +import java.io.Serializable; +import java.util.List; + +import javax.annotation.PostConstruct; +import javax.faces.bean.ManagedBean; +import javax.faces.bean.ViewScoped; +import javax.faces.event.ActionEvent; + +import org.omnifaces.util.Messages; + +import br.pro.delfino.drogaria.dao.EstadoDAO; +import br.pro.delfino.drogaria.domain.Estado; + +@SuppressWarnings("serial") +@ManagedBean +@ViewScoped +public class EstadoBean implements Serializable { + private Estado estado; + private List estados; + + public Estado getEstado() { + return estado; + } + + public void setEstado(Estado estado) { + this.estado = estado; + } + + public List getEstados() { + return estados; + } + + public void setEstados(List estados) { + this.estados = estados; + } + + @PostConstruct + public void listar() { + try { + EstadoDAO estadoDAO = new EstadoDAO(); + estados = estadoDAO.listar(); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar listar os estados"); + erro.printStackTrace(); + } + } + + public void novo() { + estado = new Estado(); + } + + public void salvar() { + try { + EstadoDAO estadoDAO = new EstadoDAO(); + estadoDAO.merge(estado); + + estado = new Estado(); + estados = estadoDAO.listar(); + + Messages.addGlobalInfo("Estado salvo com sucesso"); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar salvar o estado"); + erro.printStackTrace(); + } + } + + public void excluir(ActionEvent evento) { + try { + estado = (Estado) evento.getComponent().getAttributes().get("estadoSelecionado"); + + EstadoDAO estadoDAO = new EstadoDAO(); + estadoDAO.excluir(estado); + + estados = estadoDAO.listar(); + + Messages.addGlobalInfo("Estado removido com sucesso"); + } catch (RuntimeException erro) { + Messages.addFlashGlobalError("Ocorreu um erro ao tentar remover o estado"); + erro.printStackTrace(); + } + } + + public void editar(ActionEvent evento) { + estado = (Estado) evento.getComponent().getAttributes().get("estadoSelecionado"); + } +} diff --git a/291_PhaseListener_Introducao/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/FabricanteBean.java b/291_PhaseListener_Introducao/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/FabricanteBean.java new file mode 100644 index 0000000..7fddf7d --- /dev/null +++ b/291_PhaseListener_Introducao/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/FabricanteBean.java @@ -0,0 +1,116 @@ +package br.pro.delfino.drogaria.bean; + +import java.io.Serializable; +import java.util.Arrays; +import java.util.List; + +import javax.annotation.PostConstruct; +import javax.faces.bean.ManagedBean; +import javax.faces.bean.ViewScoped; +import javax.faces.event.ActionEvent; +import javax.ws.rs.client.Client; +import javax.ws.rs.client.ClientBuilder; +import javax.ws.rs.client.Entity; +import javax.ws.rs.client.WebTarget; + +import org.omnifaces.util.Messages; + +import com.google.gson.Gson; + +import br.pro.delfino.drogaria.domain.Fabricante; + +@SuppressWarnings("serial") +@ManagedBean +@ViewScoped +public class FabricanteBean implements Serializable { + private Fabricante fabricante; + private List fabricantes; + + public Fabricante getFabricante() { + return fabricante; + } + + public void setFabricante(Fabricante fabricante) { + this.fabricante = fabricante; + } + + public List getFabricantes() { + return fabricantes; + } + + public void setFabricantes(List fabricantes) { + this.fabricantes = fabricantes; + } + + @PostConstruct + public void listar() { + try { + Client cliente = ClientBuilder.newClient(); + WebTarget caminho = cliente.target("http://127.0.0.1:8080/Drogaria/rest/fabricante"); + String json = caminho.request().get(String.class); + + Gson gson = new Gson(); + Fabricante[] vetor = gson.fromJson(json, Fabricante[].class); + + fabricantes = Arrays.asList(vetor); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar listar os fabricantes"); + erro.printStackTrace(); + } + } + + public void novo() { + fabricante = new Fabricante(); + } + + public void salvar() { + try { + Client cliente = ClientBuilder.newClient(); + WebTarget caminho = cliente.target("http://127.0.0.1:8080/Drogaria/rest/fabricante"); + + Gson gson = new Gson(); + + String json = gson.toJson(fabricante); + caminho.request().post(Entity.json(json)); + + fabricante = new Fabricante(); + + json = caminho.request().get(String.class); + Fabricante[] vetor = gson.fromJson(json, Fabricante[].class); + fabricantes = Arrays.asList(vetor); + + Messages.addGlobalInfo("Fabricante salvo com sucesso"); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar salvar o fabricante"); + erro.printStackTrace(); + } + } + + public void excluir(ActionEvent evento) { + try { + fabricante = (Fabricante) evento.getComponent().getAttributes().get("fabricanteSelecionado"); + + Client cliente = ClientBuilder.newClient(); + + WebTarget caminho = cliente.target("http://127.0.0.1:8080/Drogaria/rest/fabricante"); + WebTarget caminhoExcluir = caminho.path("{codigo}").resolveTemplate("codigo", fabricante.getCodigo()); + + caminhoExcluir.request().delete(); + String json = caminho.request().get(String.class); + + Gson gson = new Gson(); + Fabricante[] vetor = gson.fromJson(json, Fabricante[].class); + + fabricantes = Arrays.asList(vetor); + + Messages.addGlobalInfo("Fabricante removido com sucesso"); + } catch (RuntimeException erro) { + Messages.addFlashGlobalError("Ocorreu um erro ao tentar remover o fabricante"); + erro.printStackTrace(); + } + } + + public void editar(ActionEvent evento) { + fabricante = (Fabricante) evento.getComponent().getAttributes().get("fabricanteSelecionado"); + } +} diff --git a/291_PhaseListener_Introducao/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/HistoricoBean.java b/291_PhaseListener_Introducao/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/HistoricoBean.java new file mode 100644 index 0000000..a042b04 --- /dev/null +++ b/291_PhaseListener_Introducao/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/HistoricoBean.java @@ -0,0 +1,89 @@ +package br.pro.delfino.drogaria.bean; + +import java.io.Serializable; +import java.util.Date; + +import javax.annotation.PostConstruct; +import javax.faces.bean.ManagedBean; +import javax.faces.bean.ViewScoped; + +import org.omnifaces.util.Messages; + +import br.pro.delfino.drogaria.dao.HistoricoDAO; +import br.pro.delfino.drogaria.dao.ProdutoDAO; +import br.pro.delfino.drogaria.domain.Historico; +import br.pro.delfino.drogaria.domain.Produto; + +@SuppressWarnings("serial") +@ManagedBean +@ViewScoped +public class HistoricoBean implements Serializable { + private Produto produto; + private Boolean exibePainelDados; + + private Historico historico; + + public Produto getProduto() { + return produto; + } + + public void setProduto(Produto produto) { + this.produto = produto; + } + + public Boolean getExibePainelDados() { + return exibePainelDados; + } + + public void setExibePainelDados(Boolean exibePainelDados) { + this.exibePainelDados = exibePainelDados; + } + + public Historico getHistorico() { + return historico; + } + + public void setHistorico(Historico historico) { + this.historico = historico; + } + + @PostConstruct + public void novo() { + historico = new Historico(); + produto = new Produto(); + exibePainelDados = false; + } + + public void buscar() { + try { + ProdutoDAO produtoDAO = new ProdutoDAO(); + Produto resultado = produtoDAO.buscar(produto.getCodigo()); + + if (resultado == null) { + exibePainelDados = false; + Messages.addGlobalWarn("Não existe produto cadastrado para o código informado"); + } else { + exibePainelDados = true; + produto = resultado; + } + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar buscar o produto"); + erro.printStackTrace(); + } + } + + public void salvar() { + try { + historico.setHorario(new Date()); + historico.setProduto(produto); + + HistoricoDAO historicoDAO = new HistoricoDAO(); + historicoDAO.salvar(historico); + + Messages.addGlobalInfo("Histórico salvo com sucesso"); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar salvar o histórico"); + erro.printStackTrace(); + } + } +} diff --git a/291_PhaseListener_Introducao/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/ImagemBean.java b/291_PhaseListener_Introducao/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/ImagemBean.java new file mode 100644 index 0000000..eb963a8 --- /dev/null +++ b/291_PhaseListener_Introducao/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/ImagemBean.java @@ -0,0 +1,48 @@ +package br.pro.delfino.drogaria.bean; + +import java.io.IOException; +import java.io.InputStream; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; + +import javax.faces.bean.ManagedBean; +import javax.faces.bean.ManagedProperty; +import javax.faces.bean.RequestScoped; + +import org.primefaces.model.DefaultStreamedContent; +import org.primefaces.model.StreamedContent; + +@ManagedBean +@RequestScoped +public class ImagemBean { + @ManagedProperty("#{param.caminho}") + private String caminho; + + private StreamedContent foto; + + public String getCaminho() { + return caminho; + } + + public void setCaminho(String caminho) { + this.caminho = caminho; + } + + public StreamedContent getFoto() throws IOException { + if(caminho == null || caminho.isEmpty()){ + Path path = Paths.get("C:/Programação Web com Java/Uploads/branco.png"); + InputStream stream = Files.newInputStream(path); + foto = new DefaultStreamedContent(stream); + }else{ + Path path = Paths.get(caminho); + InputStream stream = Files.newInputStream(path); + foto = new DefaultStreamedContent(stream); + } + return foto; + } + + public void setFoto(StreamedContent foto) { + this.foto = foto; + } +} diff --git a/291_PhaseListener_Introducao/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/PessoaBean.java b/291_PhaseListener_Introducao/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/PessoaBean.java new file mode 100644 index 0000000..931edf7 --- /dev/null +++ b/291_PhaseListener_Introducao/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/PessoaBean.java @@ -0,0 +1,156 @@ +package br.pro.delfino.drogaria.bean; + +import java.io.Serializable; +import java.util.ArrayList; +import java.util.List; + +import javax.annotation.PostConstruct; +import javax.faces.bean.ManagedBean; +import javax.faces.bean.ViewScoped; +import javax.faces.event.ActionEvent; + +import org.omnifaces.util.Messages; + +import br.pro.delfino.drogaria.dao.CidadeDAO; +import br.pro.delfino.drogaria.dao.EstadoDAO; +import br.pro.delfino.drogaria.dao.PessoaDAO; +import br.pro.delfino.drogaria.domain.Cidade; +import br.pro.delfino.drogaria.domain.Estado; +import br.pro.delfino.drogaria.domain.Pessoa; + +@SuppressWarnings("serial") +@ManagedBean +@ViewScoped +public class PessoaBean implements Serializable { + private Pessoa pessoa; + private List pessoas; + + private Estado estado; + private List estados; + + private List cidades; + + public Pessoa getPessoa() { + return pessoa; + } + + public void setPessoa(Pessoa pessoa) { + this.pessoa = pessoa; + } + + public List getPessoas() { + return pessoas; + } + + public void setPessoas(List pessoas) { + this.pessoas = pessoas; + } + + public Estado getEstado() { + return estado; + } + + public void setEstado(Estado estado) { + this.estado = estado; + } + + public List getEstados() { + return estados; + } + + public void setEstados(List estados) { + this.estados = estados; + } + + public List getCidades() { + return cidades; + } + + public void setCidades(List cidades) { + this.cidades = cidades; + } + + @PostConstruct + public void listar() { + try { + PessoaDAO pessoaDAO = new PessoaDAO(); + pessoas = pessoaDAO.listar("nome"); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar listar as pessoas"); + erro.printStackTrace(); + } + } + + public void novo() { + try { + pessoa = new Pessoa(); + + estado = new Estado(); + + EstadoDAO estadoDAO = new EstadoDAO(); + estados = estadoDAO.listar("nome"); + + cidades = new ArrayList<>(); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar gerar uma nova pessoa"); + erro.printStackTrace(); + } + } + + public void editar(ActionEvent evento) { + try{ + pessoa = (Pessoa) evento.getComponent().getAttributes().get("pessoaSelecionada"); + + estado = pessoa.getCidade().getEstado(); + + EstadoDAO estadoDAO = new EstadoDAO(); + estados = estadoDAO.listar("nome"); + + CidadeDAO cidadeDAO = new CidadeDAO(); + cidades = cidadeDAO.buscarPorEstado(estado.getCodigo()); + }catch(RuntimeException erro){ + Messages.addGlobalError("Ocorreu um erro ao tentar selecionar uma pessoa"); + } + } + + public void salvar() { + try { + PessoaDAO pessoaDAO = new PessoaDAO(); + pessoaDAO.merge(pessoa); + + pessoas = pessoaDAO.listar("nome"); + + pessoa = new Pessoa(); + + estado = new Estado(); + + EstadoDAO estadoDAO = new EstadoDAO(); + estados = estadoDAO.listar("nome"); + + cidades = new ArrayList<>(); + + Messages.addGlobalInfo("Pessoa salva com sucesso"); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar salvar a pessoa"); + erro.printStackTrace(); + } + } + + public void excluir(ActionEvent evento) { + + } + + public void popular() { + try { + if (estado != null) { + CidadeDAO cidadeDAO = new CidadeDAO(); + cidades = cidadeDAO.buscarPorEstado(estado.getCodigo()); + } else { + cidades = new ArrayList<>(); + } + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar filtrar as cidades"); + erro.printStackTrace(); + } + } +} diff --git a/291_PhaseListener_Introducao/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/ProdutoBean.java b/291_PhaseListener_Introducao/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/ProdutoBean.java new file mode 100644 index 0000000..e48e0d1 --- /dev/null +++ b/291_PhaseListener_Introducao/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/ProdutoBean.java @@ -0,0 +1,196 @@ +package br.pro.delfino.drogaria.bean; + +import java.io.IOException; +import java.io.Serializable; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; +import java.nio.file.StandardCopyOption; +import java.sql.Connection; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import javax.annotation.PostConstruct; +import javax.faces.bean.ManagedBean; +import javax.faces.bean.ViewScoped; +import javax.faces.event.ActionEvent; + +import org.omnifaces.util.Faces; +import org.omnifaces.util.Messages; +import org.primefaces.component.datatable.DataTable; +import org.primefaces.event.FileUploadEvent; +import org.primefaces.model.UploadedFile; + +import br.pro.delfino.drogaria.dao.FabricanteDAO; +import br.pro.delfino.drogaria.dao.ProdutoDAO; +import br.pro.delfino.drogaria.domain.Fabricante; +import br.pro.delfino.drogaria.domain.Produto; +import br.pro.delfino.drogaria.util.HibernateUtil; +import net.sf.jasperreports.engine.JRException; +import net.sf.jasperreports.engine.JasperFillManager; +import net.sf.jasperreports.engine.JasperPrint; +import net.sf.jasperreports.engine.JasperPrintManager; + +@SuppressWarnings("serial") +@ManagedBean +@ViewScoped +public class ProdutoBean implements Serializable { + private Produto produto; + private List produtos; + private List fabricantes; + + public Produto getProduto() { + return produto; + } + + public void setProduto(Produto produto) { + this.produto = produto; + } + + public List getProdutos() { + return produtos; + } + + public void setProdutos(List produtos) { + this.produtos = produtos; + } + + public List getFabricantes() { + return fabricantes; + } + + public void setFabricantes(List fabricantes) { + this.fabricantes = fabricantes; + } + + @PostConstruct + public void listar() { + try { + ProdutoDAO produtoDAO = new ProdutoDAO(); + produtos = produtoDAO.listar("descricao"); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar listar os produtos"); + erro.printStackTrace(); + } + } + + public void novo() { + try { + produto = new Produto(); + + FabricanteDAO fabricanteDAO = new FabricanteDAO(); + fabricantes = fabricanteDAO.listar("descricao"); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar gerar um novo produto"); + erro.printStackTrace(); + } + } + + public void editar(ActionEvent evento) { + try { + produto = (Produto) evento.getComponent().getAttributes().get("produtoSelecionado"); + produto.setCaminho("C:/Programação Web com Java/Uploads/" + produto.getCodigo() + ".png"); + + FabricanteDAO fabricanteDAO = new FabricanteDAO(); + fabricantes = fabricanteDAO.listar(); + } catch (RuntimeException erro) { + Messages.addFlashGlobalError("Ocorreu um erro ao tentar selecionar um produto"); + erro.printStackTrace(); + } + } + + public void salvar() { + try { + if (produto.getCaminho() == null) { + Messages.addGlobalError("O campo foto é obrigatório"); + return; + } + + ProdutoDAO produtoDAO = new ProdutoDAO(); + Produto produtoRetorno = produtoDAO.merge(produto); + + Path origem = Paths.get(produto.getCaminho()); + Path destino = Paths.get("C:/Programação Web com Java/Uploads/" + produtoRetorno.getCodigo() + ".png"); + Files.copy(origem, destino, StandardCopyOption.REPLACE_EXISTING); + + produto = new Produto(); + + FabricanteDAO fabricanteDAO = new FabricanteDAO(); + fabricantes = fabricanteDAO.listar(); + + produtos = produtoDAO.listar(); + + Messages.addGlobalInfo("Produto salvo com sucesso"); + } catch (RuntimeException | IOException erro) { + Messages.addFlashGlobalError("Ocorreu um erro ao tentar salvar o produto"); + erro.printStackTrace(); + } + } + + public void excluir(ActionEvent evento) { + try { + produto = (Produto) evento.getComponent().getAttributes().get("produtoSelecionado"); + + ProdutoDAO produtoDAO = new ProdutoDAO(); + produtoDAO.excluir(produto); + + Path arquivo = Paths.get("C:/Programação Web com Java/Uploads/" + produto.getCodigo() + ".png"); + Files.deleteIfExists(arquivo); + + produtos = produtoDAO.listar(); + + Messages.addGlobalInfo("Produto removido com sucesso"); + } catch (RuntimeException | IOException erro) { + Messages.addFlashGlobalError("Ocorreu um erro ao tentar remover o produto"); + erro.printStackTrace(); + } + } + + public void upload(FileUploadEvent evento) { + try { + UploadedFile arquivoUpload = evento.getFile(); + Path arquivoTemp = Files.createTempFile(null, null); + Files.copy(arquivoUpload.getInputstream(), arquivoTemp, StandardCopyOption.REPLACE_EXISTING); + produto.setCaminho(arquivoTemp.toString()); + + Messages.addGlobalInfo("Upload realizado com sucesso"); + } catch (IOException erro) { + Messages.addGlobalInfo("Ocorreu um erro ao tentar realizar o upload de arquivo"); + erro.printStackTrace(); + } + } + + public void imprimir() { + try { + DataTable tabela = (DataTable) Faces.getViewRoot().findComponent("formListagem:tabela"); + Map filtros = tabela.getFilters(); + + String proDescricao = (String) filtros.get("descricao"); + String fabDescricao = (String) filtros.get("fabricante.descricao"); + + String caminho = Faces.getRealPath("/reports/produtos.jasper"); + + Map parametros = new HashMap<>(); + if (proDescricao == null) { + parametros.put("PRODUTO_DESCRICAO", "%%"); + } else { + parametros.put("PRODUTO_DESCRICAO", "%" + proDescricao + "%"); + } + if (fabDescricao == null) { + parametros.put("FABRICANTE_DESCRICAO", "%%"); + } else { + parametros.put("FABRICANTE_DESCRICAO", "%" + fabDescricao + "%"); + } + + Connection conexao = HibernateUtil.getConexao(); + + JasperPrint relatorio = JasperFillManager.fillReport(caminho, parametros, conexao); + + JasperPrintManager.printReport(relatorio, true); + } catch (JRException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar gerar o relatório"); + erro.printStackTrace(); + } + } +} diff --git a/291_PhaseListener_Introducao/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/ProdutoBean2.java b/291_PhaseListener_Introducao/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/ProdutoBean2.java new file mode 100644 index 0000000..f36cd86 --- /dev/null +++ b/291_PhaseListener_Introducao/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/ProdutoBean2.java @@ -0,0 +1,86 @@ +package br.pro.delfino.drogaria.bean; + +import java.io.Serializable; +import java.util.List; + +import javax.annotation.PostConstruct; +import javax.faces.bean.ManagedBean; +import javax.faces.bean.ViewScoped; + +import org.omnifaces.util.Messages; + +import br.pro.delfino.drogaria.dao.FabricanteDAO; +import br.pro.delfino.drogaria.dao.ProdutoDAO; +import br.pro.delfino.drogaria.domain.Fabricante; +import br.pro.delfino.drogaria.domain.Produto; + +@SuppressWarnings("serial") +@ManagedBean +@ViewScoped +public class ProdutoBean2 implements Serializable { + private Produto produto; + private Long codigoProduto; + + private List fabricantes; + private List produtos; + + private FabricanteDAO fabricanteDAO; + private ProdutoDAO produtoDAO; + + public Produto getProduto() { + return produto; + } + + public void setProduto(Produto produto) { + this.produto = produto; + } + + public Long getCodigoProduto() { + return codigoProduto; + } + + public void setCodigoProduto(Long codigoProduto) { + this.codigoProduto = codigoProduto; + } + + public void setFabricantes(List fabricantes) { + this.fabricantes = fabricantes; + } + + public List getFabricantes() { + return fabricantes; + } + public List getProdutos() { + return produtos; + } + + public void setProdutos(List produtos) { + this.produtos = produtos; + } + + @PostConstruct + public void iniciar(){ + fabricanteDAO = new FabricanteDAO(); + produtoDAO = new ProdutoDAO(); + } + + public void listar() { + try { + produtos = produtoDAO.listar("descricao"); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar listar os produtos"); + erro.printStackTrace(); + } + } + + public void carregarEdicao(){ + try { + produto = produtoDAO.buscar(codigoProduto); + + fabricantes = fabricanteDAO.listar("descricao"); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar carregar os dados para edição"); + erro.printStackTrace(); + } + } +} diff --git a/291_PhaseListener_Introducao/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/UsuarioBean.java b/291_PhaseListener_Introducao/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/UsuarioBean.java new file mode 100644 index 0000000..f526df8 --- /dev/null +++ b/291_PhaseListener_Introducao/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/UsuarioBean.java @@ -0,0 +1,90 @@ +package br.pro.delfino.drogaria.bean; + +import java.io.Serializable; +import java.util.List; + +import javax.annotation.PostConstruct; +import javax.faces.bean.ManagedBean; +import javax.faces.bean.ViewScoped; + +import org.omnifaces.util.Messages; + +import br.pro.delfino.drogaria.dao.PessoaDAO; +import br.pro.delfino.drogaria.dao.UsuarioDAO; +import br.pro.delfino.drogaria.domain.Pessoa; +import br.pro.delfino.drogaria.domain.Usuario; + +@SuppressWarnings("serial") +@ManagedBean +@ViewScoped +public class UsuarioBean implements Serializable { + private Usuario usuario; + + private List pessoas; + private List usuarios; + + public Usuario getUsuario() { + return usuario; + } + + public void setUsuario(Usuario usuario) { + this.usuario = usuario; + } + + public List getPessoas() { + return pessoas; + } + + public void setPessoas(List pessoas) { + this.pessoas = pessoas; + } + + public List getUsuarios() { + return usuarios; + } + + public void setUsuarios(List usuarios) { + this.usuarios = usuarios; + } + + @PostConstruct + public void listar(){ + try{ + UsuarioDAO usuarioDAO = new UsuarioDAO(); + usuarios = usuarioDAO.listar("tipo"); + }catch(RuntimeException erro){ + Messages.addGlobalError("Ocorreu um erro ao tentar listar os usuários"); + erro.printStackTrace(); + } + } + + public void novo() { + try { + usuario = new Usuario(); + + PessoaDAO pessoaDAO = new PessoaDAO(); + pessoas = pessoaDAO.listar("nome"); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar criar um novo usuário"); + erro.printStackTrace(); + } + } + + public void salvar() { + try { + UsuarioDAO usuarioDAO = new UsuarioDAO(); + usuarioDAO.merge(usuario); + + usuario = new Usuario(); + usuarios = usuarioDAO.listar("tipo"); + + PessoaDAO pessoaDAO = new PessoaDAO(); + pessoas = pessoaDAO.listar("nome"); + + Messages.addGlobalInfo("Usuário salvo com sucesso"); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar salvar o usuário"); + erro.printStackTrace(); + } + } +} diff --git a/291_PhaseListener_Introducao/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/VendaBean.java b/291_PhaseListener_Introducao/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/VendaBean.java new file mode 100644 index 0000000..ada8ff2 --- /dev/null +++ b/291_PhaseListener_Introducao/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/VendaBean.java @@ -0,0 +1,186 @@ +package br.pro.delfino.drogaria.bean; + +import java.io.Serializable; +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +import javax.annotation.PostConstruct; +import javax.faces.bean.ManagedBean; +import javax.faces.bean.ViewScoped; +import javax.faces.event.ActionEvent; + +import org.omnifaces.util.Messages; + +import br.pro.delfino.drogaria.dao.ClienteDAO; +import br.pro.delfino.drogaria.dao.FuncionarioDAO; +import br.pro.delfino.drogaria.dao.ProdutoDAO; +import br.pro.delfino.drogaria.dao.VendaDAO; +import br.pro.delfino.drogaria.domain.Cliente; +import br.pro.delfino.drogaria.domain.Funcionario; +import br.pro.delfino.drogaria.domain.ItemVenda; +import br.pro.delfino.drogaria.domain.Produto; +import br.pro.delfino.drogaria.domain.Venda; + +@SuppressWarnings("serial") +@ManagedBean +@ViewScoped +public class VendaBean implements Serializable { + private Venda venda; + + private List produtos; + private List itensVenda; + private List clientes; + private List funcionarios; + + public Venda getVenda() { + return venda; + } + + public void setVenda(Venda venda) { + this.venda = venda; + } + + public List getProdutos() { + return produtos; + } + + public void setProdutos(List produtos) { + this.produtos = produtos; + } + + public List getItensVenda() { + return itensVenda; + } + + public void setItensVenda(List itensVenda) { + this.itensVenda = itensVenda; + } + + public List getClientes() { + return clientes; + } + + public void setClientes(List clientes) { + this.clientes = clientes; + } + + public List getFuncionarios() { + return funcionarios; + } + + public void setFuncionarios(List funcionarios) { + this.funcionarios = funcionarios; + } + + @PostConstruct + public void novo() { + try { + venda = new Venda(); + venda.setPrecoTotal(new BigDecimal("0.00")); + + ProdutoDAO produtoDAO = new ProdutoDAO(); + produtos = produtoDAO.listar("descricao"); + + itensVenda = new ArrayList<>(); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar carregar a tela de vendas"); + erro.printStackTrace(); + } + } + + public void adicionar(ActionEvent evento) { + Produto produto = (Produto) evento.getComponent().getAttributes().get("produtoSelecionado"); + + int achou = -1; + for (int posicao = 0; posicao < itensVenda.size(); posicao++) { + if (itensVenda.get(posicao).getProduto().equals(produto)) { + achou = posicao; + } + } + + if (achou < 0) { + ItemVenda itemVenda = new ItemVenda(); + itemVenda.setPrecoParcial(produto.getPreco()); + itemVenda.setProduto(produto); + itemVenda.setQuantidade(new Short("1")); + + itensVenda.add(itemVenda); + } else { + ItemVenda itemVenda = itensVenda.get(achou); + itemVenda.setQuantidade(new Short(itemVenda.getQuantidade() + 1 + "")); + itemVenda.setPrecoParcial(produto.getPreco().multiply(new BigDecimal(itemVenda.getQuantidade()))); + } + + calcular(); + } + + public void remover(ActionEvent evento) { + ItemVenda itemVenda = (ItemVenda) evento.getComponent().getAttributes().get("itemSelecionado"); + + int achou = -1; + for (int posicao = 0; posicao < itensVenda.size(); posicao++) { + if (itensVenda.get(posicao).getProduto().equals(itemVenda.getProduto())) { + achou = posicao; + } + } + + if (achou > -1) { + itensVenda.remove(achou); + } + + calcular(); + } + + public void calcular() { + venda.setPrecoTotal(new BigDecimal("0.00")); + + for (int posicao = 0; posicao < itensVenda.size(); posicao++) { + ItemVenda itemVenda = itensVenda.get(posicao); + venda.setPrecoTotal(venda.getPrecoTotal().add(itemVenda.getPrecoParcial())); + } + } + + public void finalizar() { + try { + venda.setHorario(new Date()); + venda.setCliente(null); + venda.setFuncionario(null); + + FuncionarioDAO funcionarioDAO = new FuncionarioDAO(); + funcionarios = funcionarioDAO.listarOrdenado(); + + ClienteDAO clienteDAO = new ClienteDAO(); + clientes = clienteDAO.listarOrdenado(); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar finalizar a venda"); + erro.printStackTrace(); + } + } + + public void salvar() { + try { + if(venda.getPrecoTotal().signum() == 0){ + Messages.addGlobalError("Informe pelo menos um item para a venda"); + return; + } + + VendaDAO vendaDAO = new VendaDAO(); + vendaDAO.salvar(venda, itensVenda); + + venda = new Venda(); + venda.setPrecoTotal(new BigDecimal("0.00")); + + ProdutoDAO produtoDAO = new ProdutoDAO(); + produtos = produtoDAO.listar("descricao"); + + itensVenda = new ArrayList<>(); + + Messages.addGlobalInfo("Venda realizada com sucesso"); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar salvar a venda"); + erro.printStackTrace(); + } + } +} diff --git a/291_PhaseListener_Introducao/Drogaria/src/main/java/br/pro/delfino/drogaria/converter/UpperCaseConverter.java b/291_PhaseListener_Introducao/Drogaria/src/main/java/br/pro/delfino/drogaria/converter/UpperCaseConverter.java new file mode 100644 index 0000000..8a5d259 --- /dev/null +++ b/291_PhaseListener_Introducao/Drogaria/src/main/java/br/pro/delfino/drogaria/converter/UpperCaseConverter.java @@ -0,0 +1,28 @@ +package br.pro.delfino.drogaria.converter; + +import javax.faces.component.UIComponent; +import javax.faces.context.FacesContext; +import javax.faces.convert.Converter; +import javax.faces.convert.FacesConverter; + +@FacesConverter("upperCaseConverter") +public class UpperCaseConverter implements Converter { + + @Override + public Object getAsObject(FacesContext context, UIComponent component, String value) { + if (value == null) { + return null; + } else { + return value.toUpperCase(); + } + } + + @Override + public String getAsString(FacesContext context, UIComponent component, Object value) { + if (value == null) { + return ""; + } else { + return value.toString(); + } + } +} diff --git a/291_PhaseListener_Introducao/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/CaixaDAO.java b/291_PhaseListener_Introducao/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/CaixaDAO.java new file mode 100644 index 0000000..fd8acd7 --- /dev/null +++ b/291_PhaseListener_Introducao/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/CaixaDAO.java @@ -0,0 +1,26 @@ +package br.pro.delfino.drogaria.dao; + +import java.util.Date; + +import org.hibernate.Criteria; +import org.hibernate.Session; +import org.hibernate.criterion.Restrictions; + +import br.pro.delfino.drogaria.domain.Caixa; +import br.pro.delfino.drogaria.util.HibernateUtil; + +public class CaixaDAO extends GenericDAO { + public Caixa buscar(Date dataAbertura) { + Session sessao = HibernateUtil.getFabricaDeSessoes().openSession(); + try { + Criteria consulta = sessao.createCriteria(Caixa.class); + consulta.add(Restrictions.eq("dataAbertura", dataAbertura)); + Caixa resultado = (Caixa) consulta.uniqueResult(); + return resultado; + } catch (RuntimeException erro) { + throw erro; + } finally { + sessao.close(); + } + } +} diff --git a/291_PhaseListener_Introducao/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/CidadeDAO.java b/291_PhaseListener_Introducao/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/CidadeDAO.java new file mode 100644 index 0000000..e685e93 --- /dev/null +++ b/291_PhaseListener_Introducao/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/CidadeDAO.java @@ -0,0 +1,29 @@ +package br.pro.delfino.drogaria.dao; + +import java.util.List; + +import org.hibernate.Criteria; +import org.hibernate.Session; +import org.hibernate.criterion.Order; +import org.hibernate.criterion.Restrictions; + +import br.pro.delfino.drogaria.domain.Cidade; +import br.pro.delfino.drogaria.util.HibernateUtil; + +public class CidadeDAO extends GenericDAO { + @SuppressWarnings("unchecked") + public List buscarPorEstado(Long estadoCodigo) { + Session sessao = HibernateUtil.getFabricaDeSessoes().openSession(); + try { + Criteria consulta = sessao.createCriteria(Cidade.class); + consulta.add(Restrictions.eq("estado.codigo", estadoCodigo)); + consulta.addOrder(Order.asc("nome")); + List resultado = consulta.list(); + return resultado; + } catch (RuntimeException erro) { + throw erro; + } finally { + sessao.close(); + } + } +} \ No newline at end of file diff --git a/291_PhaseListener_Introducao/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/ClienteDAO.java b/291_PhaseListener_Introducao/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/ClienteDAO.java new file mode 100644 index 0000000..e9796b5 --- /dev/null +++ b/291_PhaseListener_Introducao/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/ClienteDAO.java @@ -0,0 +1,28 @@ +package br.pro.delfino.drogaria.dao; + +import java.util.List; + +import org.hibernate.Criteria; +import org.hibernate.Session; +import org.hibernate.criterion.Order; + +import br.pro.delfino.drogaria.domain.Cliente; +import br.pro.delfino.drogaria.util.HibernateUtil; + +public class ClienteDAO extends GenericDAO { + @SuppressWarnings("unchecked") + public List listarOrdenado() { + Session sessao = HibernateUtil.getFabricaDeSessoes().openSession(); + try { + Criteria consulta = sessao.createCriteria(Cliente.class); + consulta.createAlias("pessoa", "p"); + consulta.addOrder(Order.asc("p.nome")); + List resultado = consulta.list(); + return resultado; + } catch (RuntimeException erro) { + throw erro; + } finally { + sessao.close(); + } + } +} diff --git a/291_PhaseListener_Introducao/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/EstadoDAO.java b/291_PhaseListener_Introducao/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/EstadoDAO.java new file mode 100644 index 0000000..32b4a79 --- /dev/null +++ b/291_PhaseListener_Introducao/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/EstadoDAO.java @@ -0,0 +1,7 @@ +package br.pro.delfino.drogaria.dao; + +import br.pro.delfino.drogaria.domain.Estado; + +public class EstadoDAO extends GenericDAO { + +} diff --git a/291_PhaseListener_Introducao/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/FabricanteDAO.java b/291_PhaseListener_Introducao/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/FabricanteDAO.java new file mode 100644 index 0000000..8b7f946 --- /dev/null +++ b/291_PhaseListener_Introducao/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/FabricanteDAO.java @@ -0,0 +1,7 @@ +package br.pro.delfino.drogaria.dao; + +import br.pro.delfino.drogaria.domain.Fabricante; + +public class FabricanteDAO extends GenericDAO { + +} diff --git a/291_PhaseListener_Introducao/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/FuncionarioDAO.java b/291_PhaseListener_Introducao/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/FuncionarioDAO.java new file mode 100644 index 0000000..2b3114d --- /dev/null +++ b/291_PhaseListener_Introducao/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/FuncionarioDAO.java @@ -0,0 +1,28 @@ +package br.pro.delfino.drogaria.dao; + +import java.util.List; + +import org.hibernate.Criteria; +import org.hibernate.Session; +import org.hibernate.criterion.Order; + +import br.pro.delfino.drogaria.domain.Funcionario; +import br.pro.delfino.drogaria.util.HibernateUtil; + +public class FuncionarioDAO extends GenericDAO{ + @SuppressWarnings("unchecked") + public List listarOrdenado() { + Session sessao = HibernateUtil.getFabricaDeSessoes().openSession(); + try { + Criteria consulta = sessao.createCriteria(Funcionario.class); + consulta.createAlias("pessoa", "p"); + consulta.addOrder(Order.asc("p.nome")); + List resultado = consulta.list(); + return resultado; + } catch (RuntimeException erro) { + throw erro; + } finally { + sessao.close(); + } + } +} diff --git a/291_PhaseListener_Introducao/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/GenericDAO.java b/291_PhaseListener_Introducao/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/GenericDAO.java new file mode 100644 index 0000000..b505cd3 --- /dev/null +++ b/291_PhaseListener_Introducao/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/GenericDAO.java @@ -0,0 +1,140 @@ +package br.pro.delfino.drogaria.dao; + +import java.lang.reflect.ParameterizedType; +import java.util.List; + +import org.hibernate.Criteria; +import org.hibernate.Session; +import org.hibernate.Transaction; +import org.hibernate.criterion.Order; +import org.hibernate.criterion.Restrictions; + +import br.pro.delfino.drogaria.util.HibernateUtil; + +public class GenericDAO { + private Class classe; + + @SuppressWarnings("unchecked") + public GenericDAO() { + this.classe = (Class) ((ParameterizedType) getClass().getGenericSuperclass()) + .getActualTypeArguments()[0]; + } + + public void salvar(Entidade entidade) { + Session sessao = HibernateUtil.getFabricaDeSessoes().openSession(); + Transaction transacao = null; + + try { + transacao = sessao.beginTransaction(); + sessao.save(entidade); + transacao.commit(); + } catch (RuntimeException erro) { + if (transacao != null) { + transacao.rollback(); + } + throw erro; + } finally { + sessao.close(); + } + } + + @SuppressWarnings("unchecked") + public List listar() { + Session sessao = HibernateUtil.getFabricaDeSessoes().openSession(); + try { + Criteria consulta = sessao.createCriteria(classe); + List resultado = consulta.list(); + return resultado; + } catch (RuntimeException erro) { + throw erro; + } finally { + sessao.close(); + } + } + + @SuppressWarnings("unchecked") + public List listar(String campoOrdenacao) { + Session sessao = HibernateUtil.getFabricaDeSessoes().openSession(); + try { + Criteria consulta = sessao.createCriteria(classe); + consulta.addOrder(Order.asc(campoOrdenacao)); + List resultado = consulta.list(); + return resultado; + } catch (RuntimeException erro) { + throw erro; + } finally { + sessao.close(); + } + } + + @SuppressWarnings("unchecked") + public Entidade buscar(Long codigo) { + Session sessao = HibernateUtil.getFabricaDeSessoes().openSession(); + try { + Criteria consulta = sessao.createCriteria(classe); + consulta.add(Restrictions.idEq(codigo)); + Entidade resultado = (Entidade) consulta.uniqueResult(); + return resultado; + } catch (RuntimeException erro) { + throw erro; + } finally { + sessao.close(); + } + } + + public void excluir(Entidade entidade) { + Session sessao = HibernateUtil.getFabricaDeSessoes().openSession(); + Transaction transacao = null; + + try { + transacao = sessao.beginTransaction(); + sessao.delete(entidade); + transacao.commit(); + } catch (RuntimeException erro) { + if (transacao != null) { + transacao.rollback(); + } + throw erro; + } finally { + sessao.close(); + } + } + + public void editar(Entidade entidade) { + Session sessao = HibernateUtil.getFabricaDeSessoes().openSession(); + Transaction transacao = null; + + try { + transacao = sessao.beginTransaction(); + sessao.update(entidade); + transacao.commit(); + } catch (RuntimeException erro) { + if (transacao != null) { + transacao.rollback(); + } + throw erro; + } finally { + sessao.close(); + } + } + + @SuppressWarnings("unchecked") + public Entidade merge(Entidade entidade) { + Session sessao = HibernateUtil.getFabricaDeSessoes().openSession(); + Transaction transacao = null; + + try { + transacao = sessao.beginTransaction(); + Entidade retorno = (Entidade) sessao.merge(entidade); + transacao.commit(); + return retorno; + } catch (RuntimeException erro) { + if (transacao != null) { + transacao.rollback(); + } + throw erro; + } finally { + sessao.close(); + } + } +} diff --git a/291_PhaseListener_Introducao/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/HistoricoDAO.java b/291_PhaseListener_Introducao/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/HistoricoDAO.java new file mode 100644 index 0000000..7b30017 --- /dev/null +++ b/291_PhaseListener_Introducao/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/HistoricoDAO.java @@ -0,0 +1,7 @@ +package br.pro.delfino.drogaria.dao; + +import br.pro.delfino.drogaria.domain.Historico; + +public class HistoricoDAO extends GenericDAO { + +} diff --git a/291_PhaseListener_Introducao/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/MovimentacaoDAO.java b/291_PhaseListener_Introducao/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/MovimentacaoDAO.java new file mode 100644 index 0000000..b6560e2 --- /dev/null +++ b/291_PhaseListener_Introducao/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/MovimentacaoDAO.java @@ -0,0 +1,7 @@ +package br.pro.delfino.drogaria.dao; + +import br.pro.delfino.drogaria.domain.Movimentacao; + +public class MovimentacaoDAO extends GenericDAO { + +} diff --git a/291_PhaseListener_Introducao/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/PessoaDAO.java b/291_PhaseListener_Introducao/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/PessoaDAO.java new file mode 100644 index 0000000..bbd116b --- /dev/null +++ b/291_PhaseListener_Introducao/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/PessoaDAO.java @@ -0,0 +1,7 @@ +package br.pro.delfino.drogaria.dao; + +import br.pro.delfino.drogaria.domain.Pessoa; + +public class PessoaDAO extends GenericDAO { + +} diff --git a/291_PhaseListener_Introducao/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/ProdutoDAO.java b/291_PhaseListener_Introducao/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/ProdutoDAO.java new file mode 100644 index 0000000..4c1e751 --- /dev/null +++ b/291_PhaseListener_Introducao/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/ProdutoDAO.java @@ -0,0 +1,7 @@ +package br.pro.delfino.drogaria.dao; + +import br.pro.delfino.drogaria.domain.Produto; + +public class ProdutoDAO extends GenericDAO { + +} diff --git a/291_PhaseListener_Introducao/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/UsuarioDAO.java b/291_PhaseListener_Introducao/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/UsuarioDAO.java new file mode 100644 index 0000000..b4bf524 --- /dev/null +++ b/291_PhaseListener_Introducao/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/UsuarioDAO.java @@ -0,0 +1,33 @@ +package br.pro.delfino.drogaria.dao; + +import org.apache.shiro.crypto.hash.SimpleHash; +import org.hibernate.Criteria; +import org.hibernate.Session; +import org.hibernate.criterion.Restrictions; + +import br.pro.delfino.drogaria.domain.Usuario; +import br.pro.delfino.drogaria.util.HibernateUtil; + +public class UsuarioDAO extends GenericDAO { + public Usuario autenticar(String cpf, String senha) { + Session sessao = HibernateUtil.getFabricaDeSessoes().openSession(); + + try{ + Criteria consulta = sessao.createCriteria(Usuario.class); + consulta.createAlias("pessoa", "p"); + + consulta.add(Restrictions.eq("p.cpf", cpf)); + + SimpleHash hash = new SimpleHash("md5", senha); + consulta.add(Restrictions.eq("senha", hash.toHex())); + + Usuario resultado = (Usuario) consulta.uniqueResult(); + + return resultado; + } catch (RuntimeException erro) { + throw erro; + } finally { + sessao.close(); + } + } +} diff --git a/291_PhaseListener_Introducao/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/VendaDAO.java b/291_PhaseListener_Introducao/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/VendaDAO.java new file mode 100644 index 0000000..3428939 --- /dev/null +++ b/291_PhaseListener_Introducao/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/VendaDAO.java @@ -0,0 +1,49 @@ +package br.pro.delfino.drogaria.dao; + +import java.util.List; + +import org.hibernate.Session; +import org.hibernate.Transaction; + +import br.pro.delfino.drogaria.domain.ItemVenda; +import br.pro.delfino.drogaria.domain.Produto; +import br.pro.delfino.drogaria.domain.Venda; +import br.pro.delfino.drogaria.util.HibernateUtil; + +public class VendaDAO extends GenericDAO { + public void salvar(Venda venda, List itensVenda) { + Session sessao = HibernateUtil.getFabricaDeSessoes().openSession(); + Transaction transacao = null; + + try { + transacao = sessao.beginTransaction(); + + sessao.save(venda); + + for (int posicao = 0; posicao < itensVenda.size(); posicao++) { + ItemVenda itemVenda = itensVenda.get(posicao); + itemVenda.setVenda(venda); + + sessao.save(itemVenda); + + Produto produto = itemVenda.getProduto(); + int quantidade = produto.getQuantidade() - itemVenda.getQuantidade(); + if (quantidade >= 0) { + produto.setQuantidade(new Short(quantidade + "")); + sessao.update(produto); + } else { + throw new RuntimeException("Quantidade insuficiente em estoque"); + } + } + + transacao.commit(); + } catch (RuntimeException erro) { + if (transacao != null) { + transacao.rollback(); + } + throw erro; + } finally { + sessao.close(); + } + } +} diff --git a/291_PhaseListener_Introducao/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Caixa.java b/291_PhaseListener_Introducao/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Caixa.java new file mode 100644 index 0000000..61fc69b --- /dev/null +++ b/291_PhaseListener_Introducao/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Caixa.java @@ -0,0 +1,62 @@ +package br.pro.delfino.drogaria.domain; + +import java.math.BigDecimal; +import java.util.Date; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.JoinColumn; +import javax.persistence.ManyToOne; +import javax.persistence.Temporal; +import javax.persistence.TemporalType; + +@SuppressWarnings("serial") +@Entity +public class Caixa extends GenericDomain { + @Column(nullable = false, unique = true) + @Temporal(TemporalType.DATE) + private Date dataAbertura; + + @Column(nullable = true) + @Temporal(TemporalType.DATE) + private Date dataFechamento; + + @Column(nullable = false, precision = 7, scale = 2) + private BigDecimal valorAbertura; + + @ManyToOne + @JoinColumn(nullable = false) + private Funcionario funcionario; + + public Date getDataAbertura() { + return dataAbertura; + } + + public void setDataAbertura(Date dataAbertura) { + this.dataAbertura = dataAbertura; + } + + public Date getDataFechamento() { + return dataFechamento; + } + + public void setDataFechamento(Date dataFechamento) { + this.dataFechamento = dataFechamento; + } + + public BigDecimal getValorAbertura() { + return valorAbertura; + } + + public void setValorAbertura(BigDecimal valorAbertura) { + this.valorAbertura = valorAbertura; + } + + public Funcionario getFuncionario() { + return funcionario; + } + + public void setFuncionario(Funcionario funcionario) { + this.funcionario = funcionario; + } +} diff --git a/291_PhaseListener_Introducao/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Cidade.java b/291_PhaseListener_Introducao/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Cidade.java new file mode 100644 index 0000000..cf94ede --- /dev/null +++ b/291_PhaseListener_Introducao/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Cidade.java @@ -0,0 +1,33 @@ +package br.pro.delfino.drogaria.domain; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.JoinColumn; +import javax.persistence.ManyToOne; + +@SuppressWarnings("serial") +@Entity +public class Cidade extends GenericDomain { + @Column(length = 50, nullable = false) + private String nome; + + @ManyToOne + @JoinColumn(nullable = false) + private Estado estado; + + public String getNome() { + return nome; + } + + public void setNome(String nome) { + this.nome = nome; + } + + public Estado getEstado() { + return estado; + } + + public void setEstado(Estado estado) { + this.estado = estado; + } +} diff --git a/291_PhaseListener_Introducao/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Cliente.java b/291_PhaseListener_Introducao/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Cliente.java new file mode 100644 index 0000000..6ace9b9 --- /dev/null +++ b/291_PhaseListener_Introducao/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Cliente.java @@ -0,0 +1,49 @@ +package br.pro.delfino.drogaria.domain; + +import java.util.Date; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.JoinColumn; +import javax.persistence.OneToOne; +import javax.persistence.Temporal; +import javax.persistence.TemporalType; + +@SuppressWarnings("serial") +@Entity +public class Cliente extends GenericDomain { + @Column(nullable = false) + @Temporal(TemporalType.DATE) + private Date dataCadastro; + + @Column(nullable = false) + private Boolean liberado; + + @OneToOne + @JoinColumn(nullable = false) + private Pessoa pessoa; + + public Date getDataCadastro() { + return dataCadastro; + } + + public void setDataCadastro(Date dataCadastro) { + this.dataCadastro = dataCadastro; + } + + public Boolean getLiberado() { + return liberado; + } + + public void setLiberado(Boolean liberado) { + this.liberado = liberado; + } + + public Pessoa getPessoa() { + return pessoa; + } + + public void setPessoa(Pessoa pessoa) { + this.pessoa = pessoa; + } +} diff --git a/291_PhaseListener_Introducao/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Estado.java b/291_PhaseListener_Introducao/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Estado.java new file mode 100644 index 0000000..1c06b98 --- /dev/null +++ b/291_PhaseListener_Introducao/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Estado.java @@ -0,0 +1,30 @@ +package br.pro.delfino.drogaria.domain; + +import javax.persistence.Column; +import javax.persistence.Entity; + +@SuppressWarnings("serial") +@Entity +public class Estado extends GenericDomain { + @Column(length = 2, nullable = false) + private String sigla; + + @Column(length = 50, nullable = false) + private String nome; + + public String getSigla() { + return sigla; + } + + public void setSigla(String sigla) { + this.sigla = sigla; + } + + public String getNome() { + return nome; + } + + public void setNome(String nome) { + this.nome = nome; + } +} diff --git a/291_PhaseListener_Introducao/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Fabricante.java b/291_PhaseListener_Introducao/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Fabricante.java new file mode 100644 index 0000000..02eab8c --- /dev/null +++ b/291_PhaseListener_Introducao/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Fabricante.java @@ -0,0 +1,19 @@ +package br.pro.delfino.drogaria.domain; + +import javax.persistence.Column; +import javax.persistence.Entity; + +@SuppressWarnings("serial") +@Entity +public class Fabricante extends GenericDomain { + @Column(length = 50, nullable = false) + private String descricao; + + public String getDescricao() { + return descricao; + } + + public void setDescricao(String descricao) { + this.descricao = descricao; + } +} diff --git a/291_PhaseListener_Introducao/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Funcionario.java b/291_PhaseListener_Introducao/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Funcionario.java new file mode 100644 index 0000000..dec9378 --- /dev/null +++ b/291_PhaseListener_Introducao/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Funcionario.java @@ -0,0 +1,49 @@ +package br.pro.delfino.drogaria.domain; + +import java.util.Date; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.JoinColumn; +import javax.persistence.OneToOne; +import javax.persistence.Temporal; +import javax.persistence.TemporalType; + +@SuppressWarnings("serial") +@Entity +public class Funcionario extends GenericDomain { + @Column(length = 15, nullable = false) + private String carteiraTrabalho; + + @Column(nullable = false) + @Temporal(TemporalType.DATE) + private Date dataAdmissao; + + @OneToOne + @JoinColumn(nullable = false) + private Pessoa pessoa; + + public String getCarteiraTrabalho() { + return carteiraTrabalho; + } + + public void setCarteiraTrabalho(String carteiraTrabalho) { + this.carteiraTrabalho = carteiraTrabalho; + } + + public Date getDataAdmissao() { + return dataAdmissao; + } + + public void setDataAdmissao(Date dataAdmissao) { + this.dataAdmissao = dataAdmissao; + } + + public Pessoa getPessoa() { + return pessoa; + } + + public void setPessoa(Pessoa pessoa) { + this.pessoa = pessoa; + } +} diff --git a/291_PhaseListener_Introducao/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/GenericDomain.java b/291_PhaseListener_Introducao/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/GenericDomain.java new file mode 100644 index 0000000..f37efea --- /dev/null +++ b/291_PhaseListener_Introducao/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/GenericDomain.java @@ -0,0 +1,54 @@ +package br.pro.delfino.drogaria.domain; + +import java.io.Serializable; + +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Id; +import javax.persistence.MappedSuperclass; + +@SuppressWarnings("serial") +@MappedSuperclass +public class GenericDomain implements Serializable { + @Id + @GeneratedValue(strategy = GenerationType.AUTO) + private Long codigo; + + public Long getCodigo() { + return codigo; + } + + public void setCodigo(Long codigo) { + this.codigo = codigo; + } + + @Override + public String toString() { + return String.format("%s[codigo=%d]", getClass().getSimpleName(), getCodigo()); + } + + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + ((codigo == null) ? 0 : codigo.hashCode()); + return result; + } + + @Override + public boolean equals(Object obj) { + if (this == obj) + return true; + if (obj == null) + return false; + if (getClass() != obj.getClass()) + return false; + GenericDomain other = (GenericDomain) obj; + if (codigo == null) { + if (other.codigo != null) + return false; + } else if (!codigo.equals(other.codigo)) + return false; + return true; + } +} diff --git a/291_PhaseListener_Introducao/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Historico.java b/291_PhaseListener_Introducao/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Historico.java new file mode 100644 index 0000000..dafdaeb --- /dev/null +++ b/291_PhaseListener_Introducao/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Historico.java @@ -0,0 +1,49 @@ +package br.pro.delfino.drogaria.domain; + +import java.util.Date; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.JoinColumn; +import javax.persistence.ManyToOne; +import javax.persistence.Temporal; +import javax.persistence.TemporalType; + +@SuppressWarnings("serial") +@Entity +public class Historico extends GenericDomain { + @Column(nullable = false) + @Temporal(TemporalType.TIMESTAMP) + private Date horario; + + @Column(nullable = false, length = 500) + private String observacoes; + + @ManyToOne + @JoinColumn(nullable = false) + private Produto produto; + + public Date getHorario() { + return horario; + } + + public void setHorario(Date horario) { + this.horario = horario; + } + + public String getObservacoes() { + return observacoes; + } + + public void setObservacoes(String observacoes) { + this.observacoes = observacoes; + } + + public Produto getProduto() { + return produto; + } + + public void setProduto(Produto produto) { + this.produto = produto; + } +} diff --git a/291_PhaseListener_Introducao/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/ItemVenda.java b/291_PhaseListener_Introducao/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/ItemVenda.java new file mode 100644 index 0000000..590ab26 --- /dev/null +++ b/291_PhaseListener_Introducao/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/ItemVenda.java @@ -0,0 +1,58 @@ +package br.pro.delfino.drogaria.domain; + +import java.math.BigDecimal; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.JoinColumn; +import javax.persistence.ManyToOne; + +@SuppressWarnings("serial") +@Entity +public class ItemVenda extends GenericDomain { + @Column(nullable = false) + private Short quantidade; + + @Column(nullable = false, precision = 7, scale = 2) + private BigDecimal precoParcial; + + @ManyToOne + @JoinColumn(nullable = false) + private Produto produto; + + @ManyToOne + @JoinColumn(nullable = false) + private Venda venda; + + public Short getQuantidade() { + return quantidade; + } + + public void setQuantidade(Short quantidade) { + this.quantidade = quantidade; + } + + public BigDecimal getPrecoParcial() { + return precoParcial; + } + + public void setPrecoParcial(BigDecimal precoParcial) { + this.precoParcial = precoParcial; + } + + public Produto getProduto() { + return produto; + } + + public void setProduto(Produto produto) { + this.produto = produto; + } + + public Venda getVenda() { + return venda; + } + + public void setVenda(Venda venda) { + this.venda = venda; + } +} diff --git a/291_PhaseListener_Introducao/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Movimentacao.java b/291_PhaseListener_Introducao/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Movimentacao.java new file mode 100644 index 0000000..c3d6319 --- /dev/null +++ b/291_PhaseListener_Introducao/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Movimentacao.java @@ -0,0 +1,50 @@ +package br.pro.delfino.drogaria.domain; + +import java.math.BigDecimal; +import java.util.Date; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.JoinColumn; +import javax.persistence.ManyToOne; +import javax.persistence.Temporal; +import javax.persistence.TemporalType; + +@SuppressWarnings("serial") +@Entity +public class Movimentacao extends GenericDomain { + @Column(nullable = false) + @Temporal(TemporalType.TIMESTAMP) + private Date horario; + + @Column(nullable = false, precision = 7, scale = 2) + private BigDecimal valor; + + @ManyToOne + @JoinColumn(nullable = false) + private Caixa caixa; + + public Date getHorario() { + return horario; + } + + public void setHorario(Date horario) { + this.horario = horario; + } + + public BigDecimal getValor() { + return valor; + } + + public void setValor(BigDecimal valor) { + this.valor = valor; + } + + public Caixa getCaixa() { + return caixa; + } + + public void setCaixa(Caixa caixa) { + this.caixa = caixa; + } +} diff --git a/291_PhaseListener_Introducao/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Pessoa.java b/291_PhaseListener_Introducao/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Pessoa.java new file mode 100644 index 0000000..f354001 --- /dev/null +++ b/291_PhaseListener_Introducao/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Pessoa.java @@ -0,0 +1,143 @@ +package br.pro.delfino.drogaria.domain; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.JoinColumn; +import javax.persistence.ManyToOne; + +@SuppressWarnings("serial") +@Entity +public class Pessoa extends GenericDomain { + @Column(length = 50, nullable = false) + private String nome; + + @Column(length = 14, nullable = false) + private String cpf; + + @Column(length = 12, nullable = false) + private String rg; + + @Column(length = 100, nullable = false) + private String rua; + + @Column(nullable = false) + private Short numero; + + @Column(length = 30, nullable = false) + private String bairro; + + @Column(length = 10, nullable = false) + private String cep; + + @Column(length = 10) + private String complemento; + + @Column(length = 13, nullable = false) + private String telefone; + + @Column(length = 14, nullable = false) + private String celular; + + @Column(length = 100, nullable = false) + private String email; + + @ManyToOne + @JoinColumn(nullable = false) + private Cidade cidade; + + public String getNome() { + return nome; + } + + public void setNome(String nome) { + this.nome = nome; + } + + public String getCpf() { + return cpf; + } + + public void setCpf(String cpf) { + this.cpf = cpf; + } + + public String getRg() { + return rg; + } + + public void setRg(String rg) { + this.rg = rg; + } + + public String getRua() { + return rua; + } + + public void setRua(String rua) { + this.rua = rua; + } + + public Short getNumero() { + return numero; + } + + public void setNumero(Short numero) { + this.numero = numero; + } + + public String getBairro() { + return bairro; + } + + public void setBairro(String bairro) { + this.bairro = bairro; + } + + public String getCep() { + return cep; + } + + public void setCep(String cep) { + this.cep = cep; + } + + public String getComplemento() { + return complemento; + } + + public void setComplemento(String complemento) { + this.complemento = complemento; + } + + public String getTelefone() { + return telefone; + } + + public void setTelefone(String telefone) { + this.telefone = telefone; + } + + public String getCelular() { + return celular; + } + + public void setCelular(String celular) { + this.celular = celular; + } + + public String getEmail() { + return email; + } + + public void setEmail(String email) { + this.email = email; + } + + public Cidade getCidade() { + return cidade; + } + + public void setCidade(Cidade cidade) { + this.cidade = cidade; + } +} diff --git a/291_PhaseListener_Introducao/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Produto.java b/291_PhaseListener_Introducao/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Produto.java new file mode 100644 index 0000000..82049b0 --- /dev/null +++ b/291_PhaseListener_Introducao/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Produto.java @@ -0,0 +1,69 @@ +package br.pro.delfino.drogaria.domain; + +import java.math.BigDecimal; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.JoinColumn; +import javax.persistence.ManyToOne; +import javax.persistence.Transient; + +@SuppressWarnings("serial") +@Entity +public class Produto extends GenericDomain { + @Column(length = 80, nullable = false) + private String descricao; + + @Column(nullable = false) + private Short quantidade; + + @Column(nullable = false, precision = 6, scale = 2) + private BigDecimal preco; + + @ManyToOne + @JoinColumn(nullable = false) + private Fabricante fabricante; + + @Transient + private String caminho; + + public String getDescricao() { + return descricao; + } + + public void setDescricao(String descricao) { + this.descricao = descricao; + } + + public Short getQuantidade() { + return quantidade; + } + + public void setQuantidade(Short quantidade) { + this.quantidade = quantidade; + } + + public BigDecimal getPreco() { + return preco; + } + + public void setPreco(BigDecimal preco) { + this.preco = preco; + } + + public Fabricante getFabricante() { + return fabricante; + } + + public void setFabricante(Fabricante fabricante) { + this.fabricante = fabricante; + } + + public String getCaminho() { + return caminho; + } + + public void setCaminho(String caminho) { + this.caminho = caminho; + } +} diff --git a/291_PhaseListener_Introducao/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Usuario.java b/291_PhaseListener_Introducao/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Usuario.java new file mode 100644 index 0000000..ae51941 --- /dev/null +++ b/291_PhaseListener_Introducao/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Usuario.java @@ -0,0 +1,93 @@ +package br.pro.delfino.drogaria.domain; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.JoinColumn; +import javax.persistence.OneToOne; +import javax.persistence.Transient; + +@SuppressWarnings("serial") +@Entity +public class Usuario extends GenericDomain { + @Column(length = 32, nullable = false) + private String senha; + + @Transient + private String senhaSemCriptografia; + + @Column(nullable = false) + private Character tipo; + + @Column(nullable = false) + private Boolean ativo; + + @OneToOne + @JoinColumn(nullable = false) + private Pessoa pessoa; + + public String getSenha() { + return senha; + } + + public void setSenha(String senha) { + this.senha = senha; + } + + public String getSenhaSemCriptografia() { + return senhaSemCriptografia; + } + + public void setSenhaSemCriptografia(String senhaSemCriptografia) { + this.senhaSemCriptografia = senhaSemCriptografia; + } + + public Character getTipo() { + return tipo; + } + + @Transient + public String getTipoFormatado() { + String tipoFormatado = null; + + if (tipo == 'A') { + tipoFormatado = "Administrador"; + } else if (tipo == 'B') { + tipoFormatado = "Balconista"; + } else if (tipo == 'G') { + tipoFormatado = "Gerente"; + } + + return tipoFormatado; + } + + public void setTipo(Character tipo) { + this.tipo = tipo; + } + + public Boolean getAtivo() { + return ativo; + } + + @Transient + public String getAtivoFormatado(){ + String ativoFormatado = "Não"; + + if(ativo){ + ativoFormatado = "Sim"; + } + + return ativoFormatado; + } + + public void setAtivo(Boolean ativo) { + this.ativo = ativo; + } + + public Pessoa getPessoa() { + return pessoa; + } + + public void setPessoa(Pessoa pessoa) { + this.pessoa = pessoa; + } +} diff --git a/291_PhaseListener_Introducao/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Venda.java b/291_PhaseListener_Introducao/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Venda.java new file mode 100644 index 0000000..3f4c226 --- /dev/null +++ b/291_PhaseListener_Introducao/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Venda.java @@ -0,0 +1,61 @@ +package br.pro.delfino.drogaria.domain; + +import java.math.BigDecimal; +import java.util.Date; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.JoinColumn; +import javax.persistence.ManyToOne; +import javax.persistence.Temporal; +import javax.persistence.TemporalType; + +@SuppressWarnings("serial") +@Entity +public class Venda extends GenericDomain { + @Column(nullable = false) + @Temporal(TemporalType.TIMESTAMP) + private Date horario; + + @Column(nullable = false, precision = 7, scale = 2) + private BigDecimal precoTotal; + + @ManyToOne + private Cliente cliente; + + @ManyToOne + @JoinColumn(nullable = false) + private Funcionario funcionario; + + public Date getHorario() { + return horario; + } + + public void setHorario(Date horario) { + this.horario = horario; + } + + public BigDecimal getPrecoTotal() { + return precoTotal; + } + + public void setPrecoTotal(BigDecimal precoTotal) { + this.precoTotal = precoTotal; + } + + public Cliente getCliente() { + return cliente; + } + + public void setCliente(Cliente cliente) { + this.cliente = cliente; + } + + public Funcionario getFuncionario() { + return funcionario; + } + + public void setFuncionario(Funcionario funcionario) { + this.funcionario = funcionario; + } +} diff --git a/291_PhaseListener_Introducao/Drogaria/src/main/java/br/pro/delfino/drogaria/service/DrogariaService.java b/291_PhaseListener_Introducao/Drogaria/src/main/java/br/pro/delfino/drogaria/service/DrogariaService.java new file mode 100644 index 0000000..fbb1f2b --- /dev/null +++ b/291_PhaseListener_Introducao/Drogaria/src/main/java/br/pro/delfino/drogaria/service/DrogariaService.java @@ -0,0 +1,13 @@ +package br.pro.delfino.drogaria.service; + +import javax.ws.rs.GET; +import javax.ws.rs.Path; + +// http://localhost:8080/Drogaria/rest/drogaria +@Path("drogaria") +public class DrogariaService { + @GET + public String exibir(){ + return "Curso de Java"; + } +} diff --git a/291_PhaseListener_Introducao/Drogaria/src/main/java/br/pro/delfino/drogaria/service/FabricanteService.java b/291_PhaseListener_Introducao/Drogaria/src/main/java/br/pro/delfino/drogaria/service/FabricanteService.java new file mode 100644 index 0000000..1dbc0d1 --- /dev/null +++ b/291_PhaseListener_Introducao/Drogaria/src/main/java/br/pro/delfino/drogaria/service/FabricanteService.java @@ -0,0 +1,85 @@ +package br.pro.delfino.drogaria.service; + +import java.util.List; + +import javax.ws.rs.DELETE; +import javax.ws.rs.GET; +import javax.ws.rs.POST; +import javax.ws.rs.PUT; +import javax.ws.rs.Path; +import javax.ws.rs.PathParam; + +import com.google.gson.Gson; + +import br.pro.delfino.drogaria.dao.FabricanteDAO; +import br.pro.delfino.drogaria.domain.Fabricante; + +@Path("fabricante") +public class FabricanteService { + // http://127.0.0.1:8080/Drogaria/rest/fabricante + @GET + public String listar() { + FabricanteDAO fabricanteDAO = new FabricanteDAO(); + List fabricantes = fabricanteDAO.listar("descricao"); + + Gson gson = new Gson(); + String json = gson.toJson(fabricantes); + + return json; + } + + // http://127.0.0.1:8080/Drogaria/rest/fabricante/{codigo} + // http://127.0.0.1:8080/Drogaria/rest/fabricante/10 + @GET + @Path("{codigo}") + public String buscar(@PathParam("codigo") Long codigo) { + FabricanteDAO fabricanteDAO = new FabricanteDAO(); + Fabricante fabricante = fabricanteDAO.buscar(codigo); + + Gson gson = new Gson(); + String json = gson.toJson(fabricante); + + return json; + } + + // http://127.0.0.1:8080/Drogaria/rest/fabricante + @POST + public String salvar(String json) { + Gson gson = new Gson(); + Fabricante fabricante = gson.fromJson(json, Fabricante.class); + + FabricanteDAO fabricanteDAO = new FabricanteDAO(); + fabricanteDAO.merge(fabricante); + + String jsonSaida = gson.toJson(fabricante); + return jsonSaida; + } + + // http://127.0.0.1:8080/Drogaria/rest/fabricante + @PUT + public String editar(String json) { + Gson gson = new Gson(); + Fabricante fabricante = gson.fromJson(json, Fabricante.class); + + FabricanteDAO fabricanteDAO = new FabricanteDAO(); + fabricanteDAO.editar(fabricante); + + String jsonSaida = gson.toJson(fabricante); + return jsonSaida; + } + + // http://127.0.0.1:8080/Drogaria/rest/fabricante/{codigo} + // http://127.0.0.1:8080/Drogaria/rest/fabricante/10 + @DELETE + @Path("{codigo}") + public String excluir(@PathParam("codigo") Long codigo){ + FabricanteDAO fabricanteDAO = new FabricanteDAO(); + + Fabricante fabricante = fabricanteDAO.buscar(codigo); + fabricanteDAO.excluir(fabricante); + + Gson gson = new Gson(); + String saida = gson.toJson(fabricante); + return saida; + } +} diff --git a/291_PhaseListener_Introducao/Drogaria/src/main/java/br/pro/delfino/drogaria/service/ProdutoService.java b/291_PhaseListener_Introducao/Drogaria/src/main/java/br/pro/delfino/drogaria/service/ProdutoService.java new file mode 100644 index 0000000..4dfdf40 --- /dev/null +++ b/291_PhaseListener_Introducao/Drogaria/src/main/java/br/pro/delfino/drogaria/service/ProdutoService.java @@ -0,0 +1,39 @@ +package br.pro.delfino.drogaria.service; + +import java.util.List; + +import javax.ws.rs.GET; +import javax.ws.rs.POST; +import javax.ws.rs.Path; + +import com.google.gson.Gson; + +import br.pro.delfino.drogaria.dao.ProdutoDAO; +import br.pro.delfino.drogaria.domain.Produto; + +// http://127.0.0.1:8080/Drogaria/rest/produto +@Path("produto") +public class ProdutoService { + @GET + public String listar(){ + ProdutoDAO produtoDAO = new ProdutoDAO(); + List produtos = produtoDAO.listar("descricao"); + + Gson gson = new Gson(); + String json = gson.toJson(produtos); + + return json; + } + + @POST + public String salvar (String json){ + Gson gson = new Gson(); + Produto produto = gson.fromJson(json, Produto.class); + + ProdutoDAO produtoDAO = new ProdutoDAO(); + produto = produtoDAO.merge(produto); + + String jsonSaida = gson.toJson(produto); + return jsonSaida; + } +} diff --git a/291_PhaseListener_Introducao/Drogaria/src/main/java/br/pro/delfino/drogaria/util/AutenticacaoListener.java b/291_PhaseListener_Introducao/Drogaria/src/main/java/br/pro/delfino/drogaria/util/AutenticacaoListener.java new file mode 100644 index 0000000..b8f9a8e --- /dev/null +++ b/291_PhaseListener_Introducao/Drogaria/src/main/java/br/pro/delfino/drogaria/util/AutenticacaoListener.java @@ -0,0 +1,25 @@ +package br.pro.delfino.drogaria.util; + +import javax.faces.event.PhaseEvent; +import javax.faces.event.PhaseId; +import javax.faces.event.PhaseListener; + +@SuppressWarnings("serial") +public class AutenticacaoListener implements PhaseListener { + + @Override + public void afterPhase(PhaseEvent event) { + System.out.println("DEPOIS DA FASE: " + event.getPhaseId()); + } + + @Override + public void beforePhase(PhaseEvent event) { + System.out.println("ANTES DA FASE: " + event.getPhaseId()); + } + + @Override + public PhaseId getPhaseId() { + return PhaseId.ANY_PHASE; + } + +} diff --git a/291_PhaseListener_Introducao/Drogaria/src/main/java/br/pro/delfino/drogaria/util/DrogariaResourceConfig.java b/291_PhaseListener_Introducao/Drogaria/src/main/java/br/pro/delfino/drogaria/util/DrogariaResourceConfig.java new file mode 100644 index 0000000..2c997a9 --- /dev/null +++ b/291_PhaseListener_Introducao/Drogaria/src/main/java/br/pro/delfino/drogaria/util/DrogariaResourceConfig.java @@ -0,0 +1,13 @@ +package br.pro.delfino.drogaria.util; + +import javax.ws.rs.ApplicationPath; + +import org.glassfish.jersey.server.ResourceConfig; + +//http://localhost:8080/Drogaria/rest +@ApplicationPath("rest") +public class DrogariaResourceConfig extends ResourceConfig { + public DrogariaResourceConfig(){ + packages("br.pro.delfino.drogaria.service"); + } +} diff --git a/291_PhaseListener_Introducao/Drogaria/src/main/java/br/pro/delfino/drogaria/util/HibernateContexto.java b/291_PhaseListener_Introducao/Drogaria/src/main/java/br/pro/delfino/drogaria/util/HibernateContexto.java new file mode 100644 index 0000000..71869d7 --- /dev/null +++ b/291_PhaseListener_Introducao/Drogaria/src/main/java/br/pro/delfino/drogaria/util/HibernateContexto.java @@ -0,0 +1,18 @@ +package br.pro.delfino.drogaria.util; + +import javax.servlet.ServletContextEvent; +import javax.servlet.ServletContextListener; + +public class HibernateContexto implements ServletContextListener { + + @Override + public void contextDestroyed(ServletContextEvent event) { + HibernateUtil.getFabricaDeSessoes().close(); + } + + @Override + public void contextInitialized(ServletContextEvent event) { + HibernateUtil.getFabricaDeSessoes(); + } + +} diff --git a/291_PhaseListener_Introducao/Drogaria/src/main/java/br/pro/delfino/drogaria/util/HibernateUtil.java b/291_PhaseListener_Introducao/Drogaria/src/main/java/br/pro/delfino/drogaria/util/HibernateUtil.java new file mode 100644 index 0000000..693551b --- /dev/null +++ b/291_PhaseListener_Introducao/Drogaria/src/main/java/br/pro/delfino/drogaria/util/HibernateUtil.java @@ -0,0 +1,47 @@ +package br.pro.delfino.drogaria.util; + +import java.sql.Connection; +import java.sql.SQLException; + +import org.hibernate.Session; +import org.hibernate.SessionFactory; +import org.hibernate.boot.registry.StandardServiceRegistryBuilder; +import org.hibernate.cfg.Configuration; +import org.hibernate.jdbc.ReturningWork; +import org.hibernate.service.ServiceRegistry; + +public class HibernateUtil { + private static SessionFactory fabricaDeSessoes = criarFabricaDeSessoes(); + + public static SessionFactory getFabricaDeSessoes() { + return fabricaDeSessoes; + } + + public static Connection getConexao(){ + Session sessao = fabricaDeSessoes.openSession(); + + Connection conexao = sessao.doReturningWork(new ReturningWork() { + @Override + public Connection execute(Connection conn) throws SQLException { + return conn; + } + }); + + return conexao; + } + + private static SessionFactory criarFabricaDeSessoes() { + try { + Configuration configuracao = new Configuration().configure(); + + ServiceRegistry registro = new StandardServiceRegistryBuilder().applySettings(configuracao.getProperties()).build(); + + SessionFactory fabrica = configuracao.buildSessionFactory(registro); + + return fabrica; + } catch (Throwable ex) { + System.err.println("A fábrica de sessões não pode ser criada." + ex); + throw new ExceptionInInitializerError(ex); + } + } +} diff --git a/291_PhaseListener_Introducao/Drogaria/src/main/resources/hibernate.cfg.xml b/291_PhaseListener_Introducao/Drogaria/src/main/resources/hibernate.cfg.xml new file mode 100644 index 0000000..65f392e --- /dev/null +++ b/291_PhaseListener_Introducao/Drogaria/src/main/resources/hibernate.cfg.xml @@ -0,0 +1,51 @@ + + + + + + + + + + com.mysql.jdbc.Driver + jdbc:mysql://127.0.0.1:3306/drogaria + root + q1w2e3r4 + + + 1 + + + org.hibernate.dialect.MySQL5InnoDBDialect + + + thread + + + org.hibernate.cache.internal.NoCacheProvider + + + true + + + update + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/291_PhaseListener_Introducao/Drogaria/src/main/webapp/WEB-INF/.faces-config.xml.jsfdia b/291_PhaseListener_Introducao/Drogaria/src/main/webapp/WEB-INF/.faces-config.xml.jsfdia new file mode 100644 index 0000000..2155d94 --- /dev/null +++ b/291_PhaseListener_Introducao/Drogaria/src/main/webapp/WEB-INF/.faces-config.xml.jsfdia @@ -0,0 +1,2 @@ + + diff --git a/291_PhaseListener_Introducao/Drogaria/src/main/webapp/WEB-INF/faces-config.xml b/291_PhaseListener_Introducao/Drogaria/src/main/webapp/WEB-INF/faces-config.xml new file mode 100644 index 0000000..ad8945b --- /dev/null +++ b/291_PhaseListener_Introducao/Drogaria/src/main/webapp/WEB-INF/faces-config.xml @@ -0,0 +1,12 @@ + + + + + + + br.pro.delfino.drogaria.util.AutenticacaoListener + + + diff --git a/291_PhaseListener_Introducao/Drogaria/src/main/webapp/WEB-INF/web.xml b/291_PhaseListener_Introducao/Drogaria/src/main/webapp/WEB-INF/web.xml new file mode 100644 index 0000000..7e03633 --- /dev/null +++ b/291_PhaseListener_Introducao/Drogaria/src/main/webapp/WEB-INF/web.xml @@ -0,0 +1,52 @@ + + + + Drogaria + + + + javax.faces.CONFIG_FILES + /WEB-INF/faces-config.xml + + + + + javax.faces.PROJECT_STAGE + Development + + + + + primefaces.THEME + blitzer + + + + + primefaces.UPLOADER + native + + + + + br.pro.delfino.drogaria.util.HibernateContexto + + + + + Faces Servlet + javax.faces.webapp.FacesServlet + 1 + + + Faces Servlet + *.xhtml + + + + + pages/principal.xhtml + + diff --git a/291_PhaseListener_Introducao/Drogaria/src/main/webapp/pages/autenticacao.xhtml b/291_PhaseListener_Introducao/Drogaria/src/main/webapp/pages/autenticacao.xhtml new file mode 100644 index 0000000..e41a833 --- /dev/null +++ b/291_PhaseListener_Introducao/Drogaria/src/main/webapp/pages/autenticacao.xhtml @@ -0,0 +1,36 @@ + + + + + + Autenticação + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/291_PhaseListener_Introducao/Drogaria/src/main/webapp/pages/caixa.xhtml b/291_PhaseListener_Introducao/Drogaria/src/main/webapp/pages/caixa.xhtml new file mode 100644 index 0000000..526e766 --- /dev/null +++ b/291_PhaseListener_Introducao/Drogaria/src/main/webapp/pages/caixa.xhtml @@ -0,0 +1,50 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/291_PhaseListener_Introducao/Drogaria/src/main/webapp/pages/cidades.xhtml b/291_PhaseListener_Introducao/Drogaria/src/main/webapp/pages/cidades.xhtml new file mode 100644 index 0000000..504f3a3 --- /dev/null +++ b/291_PhaseListener_Introducao/Drogaria/src/main/webapp/pages/cidades.xhtml @@ -0,0 +1,100 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/291_PhaseListener_Introducao/Drogaria/src/main/webapp/pages/clientes.xhtml b/291_PhaseListener_Introducao/Drogaria/src/main/webapp/pages/clientes.xhtml new file mode 100644 index 0000000..4e3cfb5 --- /dev/null +++ b/291_PhaseListener_Introducao/Drogaria/src/main/webapp/pages/clientes.xhtml @@ -0,0 +1,94 @@ + + + + + + Clientes + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/291_PhaseListener_Introducao/Drogaria/src/main/webapp/pages/estados.xhtml b/291_PhaseListener_Introducao/Drogaria/src/main/webapp/pages/estados.xhtml new file mode 100644 index 0000000..0cddf5e --- /dev/null +++ b/291_PhaseListener_Introducao/Drogaria/src/main/webapp/pages/estados.xhtml @@ -0,0 +1,90 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/291_PhaseListener_Introducao/Drogaria/src/main/webapp/pages/fabricantes.xhtml b/291_PhaseListener_Introducao/Drogaria/src/main/webapp/pages/fabricantes.xhtml new file mode 100644 index 0000000..3904db0 --- /dev/null +++ b/291_PhaseListener_Introducao/Drogaria/src/main/webapp/pages/fabricantes.xhtml @@ -0,0 +1,78 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/291_PhaseListener_Introducao/Drogaria/src/main/webapp/pages/historico.xhtml b/291_PhaseListener_Introducao/Drogaria/src/main/webapp/pages/historico.xhtml new file mode 100644 index 0000000..184a864 --- /dev/null +++ b/291_PhaseListener_Introducao/Drogaria/src/main/webapp/pages/historico.xhtml @@ -0,0 +1,64 @@ + + + + + + Histórico + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/291_PhaseListener_Introducao/Drogaria/src/main/webapp/pages/pessoas.xhtml b/291_PhaseListener_Introducao/Drogaria/src/main/webapp/pages/pessoas.xhtml new file mode 100644 index 0000000..7d68e8c --- /dev/null +++ b/291_PhaseListener_Introducao/Drogaria/src/main/webapp/pages/pessoas.xhtml @@ -0,0 +1,162 @@ + + + + + + Pessoas + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/291_PhaseListener_Introducao/Drogaria/src/main/webapp/pages/principal.xhtml b/291_PhaseListener_Introducao/Drogaria/src/main/webapp/pages/principal.xhtml new file mode 100644 index 0000000..726842c --- /dev/null +++ b/291_PhaseListener_Introducao/Drogaria/src/main/webapp/pages/principal.xhtml @@ -0,0 +1,14 @@ + + + + + + + + + \ No newline at end of file diff --git a/291_PhaseListener_Introducao/Drogaria/src/main/webapp/pages/produtos.xhtml b/291_PhaseListener_Introducao/Drogaria/src/main/webapp/pages/produtos.xhtml new file mode 100644 index 0000000..56c5db4 --- /dev/null +++ b/291_PhaseListener_Introducao/Drogaria/src/main/webapp/pages/produtos.xhtml @@ -0,0 +1,141 @@ + + + + + + Produtos + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/291_PhaseListener_Introducao/Drogaria/src/main/webapp/pages/produtosEdicao.xhtml b/291_PhaseListener_Introducao/Drogaria/src/main/webapp/pages/produtosEdicao.xhtml new file mode 100644 index 0000000..9eae78a --- /dev/null +++ b/291_PhaseListener_Introducao/Drogaria/src/main/webapp/pages/produtosEdicao.xhtml @@ -0,0 +1,67 @@ + + + + + + + + + + + + Produtos + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/291_PhaseListener_Introducao/Drogaria/src/main/webapp/pages/produtosListagem.xhtml b/291_PhaseListener_Introducao/Drogaria/src/main/webapp/pages/produtosListagem.xhtml new file mode 100644 index 0000000..2b30417 --- /dev/null +++ b/291_PhaseListener_Introducao/Drogaria/src/main/webapp/pages/produtosListagem.xhtml @@ -0,0 +1,59 @@ + + + + + + + + + + + Produtos + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/291_PhaseListener_Introducao/Drogaria/src/main/webapp/pages/testeJSF.xhtml b/291_PhaseListener_Introducao/Drogaria/src/main/webapp/pages/testeJSF.xhtml new file mode 100644 index 0000000..c20659b --- /dev/null +++ b/291_PhaseListener_Introducao/Drogaria/src/main/webapp/pages/testeJSF.xhtml @@ -0,0 +1,12 @@ + + + + + + Teste JSF + + + + + \ No newline at end of file diff --git a/291_PhaseListener_Introducao/Drogaria/src/main/webapp/pages/testePrimeFaces.xhtml b/291_PhaseListener_Introducao/Drogaria/src/main/webapp/pages/testePrimeFaces.xhtml new file mode 100644 index 0000000..6c4d434 --- /dev/null +++ b/291_PhaseListener_Introducao/Drogaria/src/main/webapp/pages/testePrimeFaces.xhtml @@ -0,0 +1,14 @@ + + + + + + Teste PrimeFaces + + + + + \ No newline at end of file diff --git a/291_PhaseListener_Introducao/Drogaria/src/main/webapp/pages/usuarios.xhtml b/291_PhaseListener_Introducao/Drogaria/src/main/webapp/pages/usuarios.xhtml new file mode 100644 index 0000000..45dd761 --- /dev/null +++ b/291_PhaseListener_Introducao/Drogaria/src/main/webapp/pages/usuarios.xhtml @@ -0,0 +1,97 @@ + + + + + + Usuários + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/291_PhaseListener_Introducao/Drogaria/src/main/webapp/pages/vendas.xhtml b/291_PhaseListener_Introducao/Drogaria/src/main/webapp/pages/vendas.xhtml new file mode 100644 index 0000000..4485892 --- /dev/null +++ b/291_PhaseListener_Introducao/Drogaria/src/main/webapp/pages/vendas.xhtml @@ -0,0 +1,156 @@ + + + + + + Vendas + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/291_PhaseListener_Introducao/Drogaria/src/main/webapp/reports/estados.jasper b/291_PhaseListener_Introducao/Drogaria/src/main/webapp/reports/estados.jasper new file mode 100644 index 0000000..96a1278 Binary files /dev/null and b/291_PhaseListener_Introducao/Drogaria/src/main/webapp/reports/estados.jasper differ diff --git a/291_PhaseListener_Introducao/Drogaria/src/main/webapp/reports/estados.jrxml b/291_PhaseListener_Introducao/Drogaria/src/main/webapp/reports/estados.jrxml new file mode 100644 index 0000000..76da981 --- /dev/null +++ b/291_PhaseListener_Introducao/Drogaria/src/main/webapp/reports/estados.jrxml @@ -0,0 +1,102 @@ + + + + + + + + + + + + + + + + + + + + <band height="80" splitType="Stretch"> + <image hAlign="Center" vAlign="Middle"> + <reportElement x="0" y="0" width="555" height="80" uuid="6f3208e9-d291-48b3-b13d-3ec9ef72cd3e"> + <property name="com.jaspersoft.studio.unit.width" value="pixel"/> + </reportElement> + <imageExpression><![CDATA["C:/Programação Web com Java/Workspace/Drogaria/src/main/webapp/resources/images/banner.jpg"]]></imageExpression> + </image> + </band> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/291_PhaseListener_Introducao/Drogaria/src/main/webapp/reports/produtos.jasper b/291_PhaseListener_Introducao/Drogaria/src/main/webapp/reports/produtos.jasper new file mode 100644 index 0000000..ad55e5f Binary files /dev/null and b/291_PhaseListener_Introducao/Drogaria/src/main/webapp/reports/produtos.jasper differ diff --git a/291_PhaseListener_Introducao/Drogaria/src/main/webapp/reports/produtos.jrxml b/291_PhaseListener_Introducao/Drogaria/src/main/webapp/reports/produtos.jrxml new file mode 100644 index 0000000..800aed0 --- /dev/null +++ b/291_PhaseListener_Introducao/Drogaria/src/main/webapp/reports/produtos.jrxml @@ -0,0 +1,130 @@ + + + + + + + + + + + + + + + + + + + + + <band height="79" splitType="Stretch"> + <image hAlign="Center"> + <reportElement x="0" y="0" width="555" height="79" uuid="727feda0-73ba-4c27-aa2c-a431492bd3d6"> + <property name="com.jaspersoft.studio.unit.width" value="pixel"/> + </reportElement> + <imageExpression><![CDATA["C:/Programação Web com Java/Workspace/Drogaria/src/main/webapp/resources/images/banner.jpg"]]></imageExpression> + </image> + </band> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/291_PhaseListener_Introducao/Drogaria/src/main/webapp/resources/css/estilos.css b/291_PhaseListener_Introducao/Drogaria/src/main/webapp/resources/css/estilos.css new file mode 100644 index 0000000..4acdd7f --- /dev/null +++ b/291_PhaseListener_Introducao/Drogaria/src/main/webapp/resources/css/estilos.css @@ -0,0 +1,19 @@ +@CHARSET "UTF-8"; + +.imagemCentralizada { + display: block; + margin-left: auto; + margin-right: auto; +} + +.divTopo { + padding-bottom: 5px; +} + +.divCabecalho { + padding-bottom: 5px; +} + +.ui-widget, .ui-widget .ui-widget { + font-size: 100% !important; +} \ No newline at end of file diff --git a/291_PhaseListener_Introducao/Drogaria/src/main/webapp/resources/images/banner.jpg b/291_PhaseListener_Introducao/Drogaria/src/main/webapp/resources/images/banner.jpg new file mode 100644 index 0000000..f58cc21 Binary files /dev/null and b/291_PhaseListener_Introducao/Drogaria/src/main/webapp/resources/images/banner.jpg differ diff --git a/291_PhaseListener_Introducao/Drogaria/src/main/webapp/resources/js/scripts.js b/291_PhaseListener_Introducao/Drogaria/src/main/webapp/resources/js/scripts.js new file mode 100644 index 0000000..e39ad9b --- /dev/null +++ b/291_PhaseListener_Introducao/Drogaria/src/main/webapp/resources/js/scripts.js @@ -0,0 +1,26 @@ +PrimeFaces.locales['pt_BR'] = { + closeText: 'Fechar', + prevText: 'Anterior', + nextText: 'Próximo', + currentText: 'Começo', + monthNames: ['Janeiro','Fevereiro','Março','Abril','Maio','Junho','Julho','Agosto','Setembro','Outubro','Novembro','Dezembro'], + monthNamesShort: ['Jan','Fev','Mar','Abr','Mai','Jun', 'Jul','Ago','Set','Out','Nov','Dez'], + dayNames: ['Domingo','Segunda','Terça','Quarta','Quinta','Sexta','Sábado'], + dayNamesShort: ['Dom','Seg','Ter','Qua','Qui','Sex','Sáb'], + dayNamesMin: ['D','S','T','Q','Q','S','S'], + weekHeader: 'Semana', + firstDay: 0, + isRTL: false, + showMonthAfterYear: false, + yearSuffix: '', + timeOnlyTitle: 'Só Horas', + timeText: 'Tempo', + hourText: 'Hora', + minuteText: 'Minuto', + secondText: 'Segundo', + ampm: false, + month: 'Mês', + week: 'Semana', + day: 'Dia', + allDayText : 'Todo o Dia' +}; \ No newline at end of file diff --git a/291_PhaseListener_Introducao/Drogaria/src/main/webapp/templates/modelo.xhtml b/291_PhaseListener_Introducao/Drogaria/src/main/webapp/templates/modelo.xhtml new file mode 100644 index 0000000..62d3d1c --- /dev/null +++ b/291_PhaseListener_Introducao/Drogaria/src/main/webapp/templates/modelo.xhtml @@ -0,0 +1,55 @@ + + + + + + SiGDro + + + + + +
+
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+
+ \ No newline at end of file diff --git a/291_PhaseListener_Introducao/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/CaixaDAOTest.java b/291_PhaseListener_Introducao/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/CaixaDAOTest.java new file mode 100644 index 0000000..b5e6156 --- /dev/null +++ b/291_PhaseListener_Introducao/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/CaixaDAOTest.java @@ -0,0 +1,33 @@ +package br.pro.delfino.drogaria.dao; + +import java.math.BigDecimal; +import java.text.ParseException; +import java.text.SimpleDateFormat; + +import org.junit.Assert; +import org.junit.Ignore; +import org.junit.Test; + +import br.pro.delfino.drogaria.domain.Caixa; + +public class CaixaDAOTest { + @Test + @Ignore + public void salvar() throws ParseException { + Caixa caixa = new Caixa(); + caixa.setDataAbertura(new SimpleDateFormat("dd/MM/yyyy").parse("14/12/2015")); + caixa.setValorAbertura(new BigDecimal("100.00")); + + CaixaDAO caixaDAO = new CaixaDAO(); + caixaDAO.salvar(caixa); + } + + @Test + @Ignore + public void buscar() throws ParseException { + CaixaDAO caixaDAO = new CaixaDAO(); + Caixa caixa = caixaDAO.buscar(new SimpleDateFormat("dd/MM/yyyy").parse("13/12/2015")); + System.out.println(caixa); + Assert.assertNull(caixa); + } +} diff --git a/291_PhaseListener_Introducao/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/CidadeDAOTest.java b/291_PhaseListener_Introducao/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/CidadeDAOTest.java new file mode 100644 index 0000000..ec59599 --- /dev/null +++ b/291_PhaseListener_Introducao/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/CidadeDAOTest.java @@ -0,0 +1,130 @@ +package br.pro.delfino.drogaria.dao; + +import java.util.List; + +import org.junit.Ignore; +import org.junit.Test; + +import br.pro.delfino.drogaria.domain.Cidade; +import br.pro.delfino.drogaria.domain.Estado; + +public class CidadeDAOTest { + @Test + @Ignore + public void salvar() { + Long codigoEstado = 1L; + + EstadoDAO estadoDAO = new EstadoDAO(); + + Estado estado = estadoDAO.buscar(codigoEstado); + + Cidade cidade = new Cidade(); + cidade.setNome("Marília"); + cidade.setEstado(estado); + + CidadeDAO cidadeDAO = new CidadeDAO(); + cidadeDAO.salvar(cidade); + } + + @Test + @Ignore + public void listar() { + CidadeDAO cidadeDAO = new CidadeDAO(); + List resultado = cidadeDAO.listar(); + + for (Cidade cidade : resultado) { + System.out.println("Código da Cidade: " + cidade.getCodigo()); + System.out.println("Nome da Cidade: " + cidade.getNome()); + System.out.println("Código do Estado: " + cidade.getEstado().getCodigo()); + System.out.println("Sigla do Estado: " + cidade.getEstado().getSigla()); + System.out.println("Nome do Estado: " + cidade.getEstado().getNome()); + System.out.println(); + } + } + + @Test + @Ignore + public void buscar(){ + Long codigo = 7L; + + CidadeDAO cidadeDAO = new CidadeDAO(); + Cidade cidade = cidadeDAO.buscar(codigo); + + System.out.println("Código da Cidade: " + cidade.getCodigo()); + System.out.println("Nome da Cidade: " + cidade.getNome()); + System.out.println("Código do Estado: " + cidade.getEstado().getCodigo()); + System.out.println("Sigla do Estado: " + cidade.getEstado().getSigla()); + System.out.println("Nome do Estado: " + cidade.getEstado().getNome()); + } + + @Test + @Ignore + public void excluir(){ + Long codigo = 7L; + + CidadeDAO cidadeDAO = new CidadeDAO(); + Cidade cidade = cidadeDAO.buscar(codigo); + + cidadeDAO.excluir(cidade); + + System.out.println("Cidade Removida"); + System.out.println("Código da Cidade: " + cidade.getCodigo()); + System.out.println("Nome da Cidade: " + cidade.getNome()); + System.out.println("Código do Estado: " + cidade.getEstado().getCodigo()); + System.out.println("Sigla do Estado: " + cidade.getEstado().getSigla()); + System.out.println("Nome do Estado: " + cidade.getEstado().getNome()); + } + + @Test + @Ignore + public void editar(){ + Long codigoCidade = 6L; + Long codigoEstado = 11L; + + EstadoDAO estadoDAO = new EstadoDAO(); + Estado estado = estadoDAO.buscar(codigoEstado); + + System.out.println("Código do Estado: " + estado.getCodigo()); + System.out.println("Sigla do Estado: " + estado.getSigla()); + System.out.println("Nome do Estado: " + estado.getNome()); + + CidadeDAO cidadeDAO = new CidadeDAO(); + Cidade cidade = cidadeDAO.buscar(codigoCidade); + + System.out.println("Cidade A Ser Editada"); + System.out.println("Código da Cidade: " + cidade.getCodigo()); + System.out.println("Nome da Cidade: " + cidade.getNome()); + System.out.println("Código do Estado: " + cidade.getEstado().getCodigo()); + System.out.println("Sigla do Estado: " + cidade.getEstado().getSigla()); + System.out.println("Nome do Estado: " + cidade.getEstado().getNome()); + + cidade.setNome("Guarapuava"); + cidade.setEstado(estado); + + cidadeDAO.editar(cidade); + + System.out.println("Cidade Editada"); + System.out.println("Código da Cidade: " + cidade.getCodigo()); + System.out.println("Nome da Cidade: " + cidade.getNome()); + System.out.println("Código do Estado: " + cidade.getEstado().getCodigo()); + System.out.println("Sigla do Estado: " + cidade.getEstado().getSigla()); + System.out.println("Nome do Estado: " + cidade.getEstado().getNome()); + } + + @Test + public void buscarPorEstado() { + Long estadoCodigo = 3L; + + CidadeDAO cidadeDAO = new CidadeDAO(); + List resultado = cidadeDAO.buscarPorEstado(estadoCodigo); + + for (Cidade cidade : resultado) { + System.out.println("Código da Cidade: " + cidade.getCodigo()); + System.out.println("Nome da Cidade: " + cidade.getNome()); + System.out.println("Código do Estado: " + cidade.getEstado().getCodigo()); + System.out.println("Sigla do Estado: " + cidade.getEstado().getSigla()); + System.out.println("Nome do Estado: " + cidade.getEstado().getNome()); + System.out.println(); + } + } +} diff --git a/291_PhaseListener_Introducao/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/ClienteDAOTest.java b/291_PhaseListener_Introducao/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/ClienteDAOTest.java new file mode 100644 index 0000000..4d557d9 --- /dev/null +++ b/291_PhaseListener_Introducao/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/ClienteDAOTest.java @@ -0,0 +1,29 @@ +package br.pro.delfino.drogaria.dao; + +import java.text.ParseException; +import java.text.SimpleDateFormat; + +import org.junit.Ignore; +import org.junit.Test; + +import br.pro.delfino.drogaria.domain.Cliente; +import br.pro.delfino.drogaria.domain.Pessoa; + +public class ClienteDAOTest { + @Test + @Ignore + public void salvar() throws ParseException { + PessoaDAO pessoaDAO = new PessoaDAO(); + Pessoa pessoa = pessoaDAO.buscar(2L); + + Cliente cliente = new Cliente(); + cliente.setDataCadastro(new SimpleDateFormat("dd/MM/yyyy").parse("09/06/2015")); + cliente.setLiberado(false); + cliente.setPessoa(pessoa); + + ClienteDAO clienteDAO = new ClienteDAO(); + clienteDAO.salvar(cliente); + + System.out.println("Cliente salvo com sucesso."); + } +} diff --git a/291_PhaseListener_Introducao/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/EstadoDAOTest.java b/291_PhaseListener_Introducao/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/EstadoDAOTest.java new file mode 100644 index 0000000..f84a086 --- /dev/null +++ b/291_PhaseListener_Introducao/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/EstadoDAOTest.java @@ -0,0 +1,88 @@ +package br.pro.delfino.drogaria.dao; + +import java.util.List; + +import org.junit.Ignore; +import org.junit.Test; + +import br.pro.delfino.drogaria.domain.Estado; + +public class EstadoDAOTest { + @Test + @Ignore + public void salvar() { + Estado estado = new Estado(); + estado.setNome("Rio Grande do Sul"); + estado.setSigla("RS"); + + EstadoDAO estadoDAO = new EstadoDAO(); + estadoDAO.salvar(estado); + } + + @Test + @Ignore + public void listar() { + EstadoDAO estadoDAO = new EstadoDAO(); + List resultado = estadoDAO.listar(); + + System.out.println("Total de Registros Encontrados: " + resultado.size()); + + for (Estado estado : resultado) { + System.out.println(estado.getCodigo() + " - " + estado.getSigla() + " - " + estado.getNome()); + } + } + + @Test + @Ignore + public void buscar(){ + Long codigo = 3L; + + EstadoDAO estadoDAO = new EstadoDAO(); + Estado estado = estadoDAO.buscar(codigo); + + if(estado == null){ + System.out.println("Nenhum registro encontrado"); + }else{ + System.out.println("Registro encontrado:"); + System.out.println(estado.getCodigo() + " - " + estado.getSigla() + " - " + estado.getNome()); + } + } + + @Test + @Ignore + public void excluir(){ + Long codigo = 1L; + EstadoDAO estadoDAO = new EstadoDAO(); + Estado estado = estadoDAO.buscar(codigo); + + if(estado == null){ + System.out.println("Nenhum registro encontrado"); + }else{ + estadoDAO.excluir(estado); + System.out.println("Registro removido:"); + System.out.println(estado.getCodigo() + " - " + estado.getSigla() + " - " + estado.getNome()); + } + } + + @Test + @Ignore + public void editar(){ + Long codigo = 10L; + EstadoDAO estadoDAO = new EstadoDAO(); + Estado estado = estadoDAO.buscar(codigo); + + if(estado == null){ + System.out.println("Nenhum registro encontrado"); + }else{ + System.out.println("Registro editado - Antes:"); + System.out.println(estado.getCodigo() + " - " + estado.getSigla() + " - " + estado.getNome()); + + estado.setNome("Santa Catarina"); + estado.setSigla("SC"); + estadoDAO.editar(estado); + + System.out.println("Registro editado - Depois:"); + System.out.println(estado.getCodigo() + " - " + estado.getSigla() + " - " + estado.getNome()); + } + } +} diff --git a/291_PhaseListener_Introducao/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/FabricanteDAOTest.java b/291_PhaseListener_Introducao/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/FabricanteDAOTest.java new file mode 100644 index 0000000..56fb124 --- /dev/null +++ b/291_PhaseListener_Introducao/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/FabricanteDAOTest.java @@ -0,0 +1,63 @@ +package br.pro.delfino.drogaria.dao; + +import java.util.List; + +import org.junit.Ignore; +import org.junit.Test; + +import br.pro.delfino.drogaria.domain.Fabricante; + +public class FabricanteDAOTest { + @Test + @Ignore + public void salvar() { + Fabricante fabricante = new Fabricante(); + fabricante.setDescricao("Aché"); + + FabricanteDAO fabricanteDAO = new FabricanteDAO(); + fabricanteDAO.salvar(fabricante); + } + + @Test + @Ignore + public void listar() { + FabricanteDAO FabricanteDAO = new FabricanteDAO(); + List resultado = FabricanteDAO.listar(); + + System.out.println("Total de Registros Encontrados: " + resultado.size()); + + for (Fabricante fabricante : resultado) { + System.out.println(fabricante.getCodigo() + " - " + fabricante.getDescricao()); + } + } + + @Test + @Ignore + public void buscar(){ + Long codigo = 3L; + + FabricanteDAO fabricanteDAO = new FabricanteDAO(); + Fabricante fabricante = fabricanteDAO.buscar(codigo); + + if(fabricante == null){ + System.out.println("Nenhum registro encontrado"); + }else{ + System.out.println("Registro encontrado:"); + System.out.println(fabricante.getCodigo() + " - " + fabricante.getDescricao()); + } + } + + @Test + @Ignore + public void merge() { + //Fabricante fabricante = new Fabricante(); + //fabricante.setDescricao("Fabricante A"); + //FabricanteDAO fabricanteDAO = new FabricanteDAO(); + //fabricanteDAO.merge(fabricante); + + FabricanteDAO fabricanteDAO = new FabricanteDAO(); + Fabricante fabricante = fabricanteDAO.buscar(5L); + fabricante.setDescricao("Fabricante B"); + fabricanteDAO.merge(fabricante); + } +} diff --git a/291_PhaseListener_Introducao/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/FuncionarioDAOTest.java b/291_PhaseListener_Introducao/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/FuncionarioDAOTest.java new file mode 100644 index 0000000..06cfff7 --- /dev/null +++ b/291_PhaseListener_Introducao/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/FuncionarioDAOTest.java @@ -0,0 +1,5 @@ +package br.pro.delfino.drogaria.dao; + +public class FuncionarioDAOTest { + +} diff --git a/291_PhaseListener_Introducao/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/ProdutoDAOTest.java b/291_PhaseListener_Introducao/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/ProdutoDAOTest.java new file mode 100644 index 0000000..36f8563 --- /dev/null +++ b/291_PhaseListener_Introducao/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/ProdutoDAOTest.java @@ -0,0 +1,29 @@ +package br.pro.delfino.drogaria.dao; + +import java.math.BigDecimal; + +import org.junit.Ignore; +import org.junit.Test; + +import br.pro.delfino.drogaria.domain.Fabricante; +import br.pro.delfino.drogaria.domain.Produto; + +public class ProdutoDAOTest { + @Test + @Ignore + public void salvar(){ + FabricanteDAO fabricanteDAO = new FabricanteDAO(); + Fabricante fabricante = fabricanteDAO.buscar(new Long("3")); + + Produto produto = new Produto(); + produto.setDescricao("Cataflan 50mg com 20 Comprimidos"); + produto.setFabricante(fabricante); + produto.setPreco(new BigDecimal("13.70")); + produto.setQuantidade(new Short("7")); + + ProdutoDAO produtoDAO = new ProdutoDAO(); + produtoDAO.salvar(produto); + + System.out.println("Produto salvo com sucesso"); + } +} diff --git a/291_PhaseListener_Introducao/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/UsuarioDAOTest.java b/291_PhaseListener_Introducao/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/UsuarioDAOTest.java new file mode 100644 index 0000000..c567ec8 --- /dev/null +++ b/291_PhaseListener_Introducao/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/UsuarioDAOTest.java @@ -0,0 +1,47 @@ +package br.pro.delfino.drogaria.dao; + +import org.apache.shiro.crypto.hash.SimpleHash; +import org.junit.Ignore; +import org.junit.Test; + +import br.pro.delfino.drogaria.domain.Pessoa; +import br.pro.delfino.drogaria.domain.Usuario; + +public class UsuarioDAOTest { + @Test + @Ignore + public void salvar(){ + PessoaDAO pessoaDAO = new PessoaDAO(); + Pessoa pessoa = pessoaDAO.buscar(3L); + + System.out.println("Pessoa Encontrada"); + System.out.println("Nome: " + pessoa.getNome()); + System.out.println("CPF: " + pessoa.getCpf()); + + Usuario usuario = new Usuario(); + usuario.setAtivo(true); + usuario.setPessoa(pessoa); + usuario.setSenhaSemCriptografia("q1w2e3r4"); + + SimpleHash hash = new SimpleHash("md5", usuario.getSenhaSemCriptografia()); + usuario.setSenha(hash.toHex()); + + usuario.setTipo('B'); + + UsuarioDAO usuarioDAO = new UsuarioDAO(); + usuarioDAO.salvar(usuario); + + System.out.println("Usuário salvo com sucesso."); + } + + @Test + public void autenticar(){ + String cpf = "999.999.999-99"; + String senha = "12345678"; + + UsuarioDAO usuarioDAO = new UsuarioDAO(); + Usuario usuario = usuarioDAO.autenticar(cpf, senha); + + System.out.println("Usuário autentica: " + usuario); + } +} diff --git a/291_PhaseListener_Introducao/Drogaria/src/test/java/br/pro/delfino/drogaria/util/HibernateUtilTest.java b/291_PhaseListener_Introducao/Drogaria/src/test/java/br/pro/delfino/drogaria/util/HibernateUtilTest.java new file mode 100644 index 0000000..75776e0 --- /dev/null +++ b/291_PhaseListener_Introducao/Drogaria/src/test/java/br/pro/delfino/drogaria/util/HibernateUtilTest.java @@ -0,0 +1,13 @@ +package br.pro.delfino.drogaria.util; + +import org.hibernate.Session; +import org.junit.Test; + +public class HibernateUtilTest { + @Test + public void conectar(){ + Session sessao = HibernateUtil.getFabricaDeSessoes().openSession(); + sessao.close(); + HibernateUtil.getFabricaDeSessoes().close(); + } +} diff --git a/292_PhaseListener_Controle_Acesso/Drogaria/.tern-project b/292_PhaseListener_Controle_Acesso/Drogaria/.tern-project new file mode 100644 index 0000000..b6f48dd --- /dev/null +++ b/292_PhaseListener_Controle_Acesso/Drogaria/.tern-project @@ -0,0 +1 @@ +{"ide":{},"libs":["ecma5","browser"],"plugins":{"guess-types":{},"angular":{}}} \ No newline at end of file diff --git a/292_PhaseListener_Controle_Acesso/Drogaria/pom.xml b/292_PhaseListener_Controle_Acesso/Drogaria/pom.xml new file mode 100644 index 0000000..39b1e60 --- /dev/null +++ b/292_PhaseListener_Controle_Acesso/Drogaria/pom.xml @@ -0,0 +1,132 @@ + + 4.0.0 + br.pro.delfino.drogaria + Drogaria + 1.0 + war + + + + UTF-8 + + + + + + Drogaria + + + + + + org.apache.maven.plugins + maven-compiler-plugin + 3.3 + + 1.8 + 1.8 + + + + + + + + + + prime-repo + PrimeFaces Maven Repository + http://repository.primefaces.org + default + + + + + + + + org.hibernate + hibernate-core + 4.3.11.Final + + + + + mysql + mysql-connector-java + 5.1.36 + + + + + junit + junit + 4.12 + + + + + org.glassfish + javax.faces + 2.2.12 + + + + + org.primefaces + primefaces + 5.2 + + + + + org.primefaces.themes + all-themes + 1.0.10 + + + + + org.omnifaces + omnifaces + 1.11 + + + + + javax.servlet + javax.servlet-api + 3.1.0 + + + + + org.glassfish.jersey.containers + jersey-container-servlet + 2.22.1 + + + + + com.google.code.gson + gson + 2.4 + + + + + net.sf.jasperreports + jasperreports + 6.1.1 + + + + + org.apache.shiro + shiro-core + 1.2.4 + + + + \ No newline at end of file diff --git a/292_PhaseListener_Controle_Acesso/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/AutenticacaoBean.java b/292_PhaseListener_Controle_Acesso/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/AutenticacaoBean.java new file mode 100644 index 0000000..7e86b0d --- /dev/null +++ b/292_PhaseListener_Controle_Acesso/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/AutenticacaoBean.java @@ -0,0 +1,60 @@ +package br.pro.delfino.drogaria.bean; + +import java.io.IOException; + +import javax.annotation.PostConstruct; +import javax.faces.bean.ManagedBean; +import javax.faces.bean.SessionScoped; + +import org.omnifaces.util.Faces; +import org.omnifaces.util.Messages; + +import br.pro.delfino.drogaria.dao.UsuarioDAO; +import br.pro.delfino.drogaria.domain.Pessoa; +import br.pro.delfino.drogaria.domain.Usuario; + +@ManagedBean +@SessionScoped +public class AutenticacaoBean { + private Usuario usuario; + private Usuario usuarioLogado; + + public Usuario getUsuario() { + return usuario; + } + + public void setUsuario(Usuario usuario) { + this.usuario = usuario; + } + + public Usuario getUsuarioLogado() { + return usuarioLogado; + } + + public void setUsuarioLogado(Usuario usuarioLogado) { + this.usuarioLogado = usuarioLogado; + } + + @PostConstruct + public void iniciar() { + usuario = new Usuario(); + usuario.setPessoa(new Pessoa()); + } + + public void autenticar() { + try { + UsuarioDAO usuarioDAO = new UsuarioDAO(); + usuarioLogado = usuarioDAO.autenticar(usuario.getPessoa().getCpf(), usuario.getSenha()); + + if(usuarioLogado == null){ + Messages.addGlobalError("CPF e/ou senha incorretos"); + return; + } + + Faces.redirect("./pages/principal.xhtml"); + } catch (IOException erro) { + erro.printStackTrace(); + Messages.addGlobalError(erro.getMessage()); + } + } +} diff --git a/292_PhaseListener_Controle_Acesso/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/CaixaBean.java b/292_PhaseListener_Controle_Acesso/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/CaixaBean.java new file mode 100644 index 0000000..1c32fc6 --- /dev/null +++ b/292_PhaseListener_Controle_Acesso/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/CaixaBean.java @@ -0,0 +1,78 @@ +package br.pro.delfino.drogaria.bean; + +import java.util.Calendar; +import java.util.Date; +import java.util.List; + +import javax.annotation.PostConstruct; +import javax.faces.bean.ManagedBean; +import javax.faces.bean.ViewScoped; + +import org.omnifaces.util.Messages; +import org.primefaces.event.SelectEvent; +import org.primefaces.model.DefaultScheduleEvent; +import org.primefaces.model.DefaultScheduleModel; +import org.primefaces.model.ScheduleEvent; +import org.primefaces.model.ScheduleModel; + +import br.pro.delfino.drogaria.dao.CaixaDAO; +import br.pro.delfino.drogaria.dao.FuncionarioDAO; +import br.pro.delfino.drogaria.domain.Caixa; +import br.pro.delfino.drogaria.domain.Funcionario; + +@ManagedBean +@ViewScoped +public class CaixaBean { + private Caixa caixa; + + private ScheduleModel caixas; + private List funcionarios; + + public Caixa getCaixa() { + return caixa; + } + + public void setCaixa(Caixa caixa) { + this.caixa = caixa; + } + + public ScheduleModel getCaixas() { + return caixas; + } + + public void setCaixas(ScheduleModel caixas) { + this.caixas = caixas; + } + + public List getFuncionarios() { + return funcionarios; + } + + public void setFuncionarios(List funcionarios) { + this.funcionarios = funcionarios; + } + + @PostConstruct + public void listar() { + caixas = new DefaultScheduleModel(); + } + + public void novo(SelectEvent evento) { + caixa = new Caixa(); + caixa.setDataAbertura((Date) evento.getObject()); + + FuncionarioDAO funcionarioDAO = new FuncionarioDAO(); + funcionarios = funcionarioDAO.listar(); + } + + public void salvar(){ + Calendar calendar = Calendar.getInstance(); + calendar.setTime(caixa.getDataAbertura()); + calendar.add(Calendar.DATE, 1); + caixa.setDataAbertura(calendar.getTime()); + + CaixaDAO caixaDAO = new CaixaDAO(); + caixaDAO.salvar(caixa); + Messages.addGlobalInfo("Caixa aberto com sucesso"); + } +} diff --git a/292_PhaseListener_Controle_Acesso/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/CidadeBean.java b/292_PhaseListener_Controle_Acesso/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/CidadeBean.java new file mode 100644 index 0000000..4b03075 --- /dev/null +++ b/292_PhaseListener_Controle_Acesso/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/CidadeBean.java @@ -0,0 +1,119 @@ +package br.pro.delfino.drogaria.bean; + +import java.io.Serializable; +import java.util.List; + +import javax.annotation.PostConstruct; +import javax.faces.bean.ManagedBean; +import javax.faces.bean.ViewScoped; +import javax.faces.event.ActionEvent; + +import org.omnifaces.util.Messages; + +import br.pro.delfino.drogaria.dao.CidadeDAO; +import br.pro.delfino.drogaria.dao.EstadoDAO; +import br.pro.delfino.drogaria.domain.Cidade; +import br.pro.delfino.drogaria.domain.Estado; + +@SuppressWarnings("serial") +@ManagedBean +@ViewScoped +public class CidadeBean implements Serializable { + private Cidade cidade; + private List cidades; + private List estados; + + public Cidade getCidade() { + return cidade; + } + + public void setCidade(Cidade cidade) { + this.cidade = cidade; + } + + public List getCidades() { + return cidades; + } + + public void setCidades(List cidades) { + this.cidades = cidades; + } + + public List getEstados() { + return estados; + } + + public void setEstados(List estados) { + this.estados = estados; + } + + @PostConstruct + public void listar() { + try { + CidadeDAO cidadeDAO = new CidadeDAO(); + cidades = cidadeDAO.listar("nome"); + } catch (RuntimeException erro) { + Messages.addFlashGlobalError("Ocorreu um erro ao tentar listar as cidades"); + erro.printStackTrace(); + } + } + + public void novo() { + try { + cidade = new Cidade(); + + EstadoDAO estadoDAO = new EstadoDAO(); + estados = estadoDAO.listar("nome"); + } catch (RuntimeException erro) { + Messages.addFlashGlobalError("Ocorreu um erro ao gerar uma nova cidade"); + erro.printStackTrace(); + } + } + + public void salvar() { + try { + CidadeDAO cidadeDAO = new CidadeDAO(); + cidadeDAO.merge(cidade); + + cidade = new Cidade(); + + EstadoDAO estadoDAO = new EstadoDAO(); + estados = estadoDAO.listar(); + + cidades = cidadeDAO.listar(); + + Messages.addGlobalInfo("Cidade salva com sucesso"); + } catch (RuntimeException erro) { + Messages.addFlashGlobalError("Ocorreu um erro ao tentar salvar uma nova cidade"); + erro.printStackTrace(); + } + } + + public void excluir(ActionEvent evento) { + try { + cidade = (Cidade) evento.getComponent().getAttributes().get("cidadeSelecionada"); + + CidadeDAO cidadeDAO = new CidadeDAO(); + cidadeDAO.excluir(cidade); + + cidades = cidadeDAO.listar(); + + Messages.addGlobalInfo("Cidade removida com sucesso"); + } catch (RuntimeException erro) { + Messages.addFlashGlobalError("Ocorreu um erro ao tentar remover a cidade"); + erro.printStackTrace(); + } + } + + public void editar(ActionEvent evento){ + try { + cidade = (Cidade) evento.getComponent().getAttributes().get("cidadeSelecionada"); + + EstadoDAO estadoDAO = new EstadoDAO(); + estados = estadoDAO.listar(); + } catch (RuntimeException erro) { + Messages.addFlashGlobalError("Ocorreu um erro ao tentar selecionar uma cidade"); + erro.printStackTrace(); + } + } +} diff --git a/292_PhaseListener_Controle_Acesso/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/ClienteBean.java b/292_PhaseListener_Controle_Acesso/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/ClienteBean.java new file mode 100644 index 0000000..c96b115 --- /dev/null +++ b/292_PhaseListener_Controle_Acesso/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/ClienteBean.java @@ -0,0 +1,91 @@ +package br.pro.delfino.drogaria.bean; + +import java.io.Serializable; +import java.util.List; + +import javax.annotation.PostConstruct; +import javax.faces.bean.ManagedBean; +import javax.faces.bean.ViewScoped; + +import org.omnifaces.util.Messages; + +import br.pro.delfino.drogaria.dao.ClienteDAO; +import br.pro.delfino.drogaria.dao.PessoaDAO; +import br.pro.delfino.drogaria.domain.Cliente; +import br.pro.delfino.drogaria.domain.Pessoa; + +@SuppressWarnings("serial") +@ManagedBean +@ViewScoped +public class ClienteBean implements Serializable { + private Cliente cliente; + + private List clientes; + private List pessoas; + + public Cliente getCliente() { + return cliente; + } + + public void setCliente(Cliente cliente) { + this.cliente = cliente; + } + + public List getClientes() { + return clientes; + } + + public void setClientes(List clientes) { + this.clientes = clientes; + } + + public List getPessoas() { + return pessoas; + } + + public void setPessoas(List pessoas) { + this.pessoas = pessoas; + } + + @PostConstruct + public void listar() { + try { + ClienteDAO clienteDAO = new ClienteDAO(); + clientes = clienteDAO.listar("dataCadastro"); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar listar os clientes"); + erro.printStackTrace(); + } + } + + public void novo() { + try { + cliente = new Cliente(); + + PessoaDAO pessoaDAO = new PessoaDAO(); + pessoas = pessoaDAO.listar("nome"); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar criar um novo cliente"); + erro.printStackTrace(); + } + } + + public void salvar() { + try { + ClienteDAO clienteDAO = new ClienteDAO(); + clienteDAO.merge(cliente); + + cliente = new Cliente(); + + clientes = clienteDAO.listar("dataCadastro"); + + PessoaDAO pessoaDAO = new PessoaDAO(); + pessoas = pessoaDAO.listar("nome"); + + Messages.addGlobalInfo("Cliente salvo com sucesso"); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar salvar o cliente"); + erro.printStackTrace(); + } + } +} diff --git a/292_PhaseListener_Controle_Acesso/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/EstadoBean.java b/292_PhaseListener_Controle_Acesso/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/EstadoBean.java new file mode 100644 index 0000000..b4921fe --- /dev/null +++ b/292_PhaseListener_Controle_Acesso/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/EstadoBean.java @@ -0,0 +1,88 @@ +package br.pro.delfino.drogaria.bean; + +import java.io.Serializable; +import java.util.List; + +import javax.annotation.PostConstruct; +import javax.faces.bean.ManagedBean; +import javax.faces.bean.ViewScoped; +import javax.faces.event.ActionEvent; + +import org.omnifaces.util.Messages; + +import br.pro.delfino.drogaria.dao.EstadoDAO; +import br.pro.delfino.drogaria.domain.Estado; + +@SuppressWarnings("serial") +@ManagedBean +@ViewScoped +public class EstadoBean implements Serializable { + private Estado estado; + private List estados; + + public Estado getEstado() { + return estado; + } + + public void setEstado(Estado estado) { + this.estado = estado; + } + + public List getEstados() { + return estados; + } + + public void setEstados(List estados) { + this.estados = estados; + } + + @PostConstruct + public void listar() { + try { + EstadoDAO estadoDAO = new EstadoDAO(); + estados = estadoDAO.listar(); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar listar os estados"); + erro.printStackTrace(); + } + } + + public void novo() { + estado = new Estado(); + } + + public void salvar() { + try { + EstadoDAO estadoDAO = new EstadoDAO(); + estadoDAO.merge(estado); + + estado = new Estado(); + estados = estadoDAO.listar(); + + Messages.addGlobalInfo("Estado salvo com sucesso"); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar salvar o estado"); + erro.printStackTrace(); + } + } + + public void excluir(ActionEvent evento) { + try { + estado = (Estado) evento.getComponent().getAttributes().get("estadoSelecionado"); + + EstadoDAO estadoDAO = new EstadoDAO(); + estadoDAO.excluir(estado); + + estados = estadoDAO.listar(); + + Messages.addGlobalInfo("Estado removido com sucesso"); + } catch (RuntimeException erro) { + Messages.addFlashGlobalError("Ocorreu um erro ao tentar remover o estado"); + erro.printStackTrace(); + } + } + + public void editar(ActionEvent evento) { + estado = (Estado) evento.getComponent().getAttributes().get("estadoSelecionado"); + } +} diff --git a/292_PhaseListener_Controle_Acesso/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/FabricanteBean.java b/292_PhaseListener_Controle_Acesso/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/FabricanteBean.java new file mode 100644 index 0000000..7fddf7d --- /dev/null +++ b/292_PhaseListener_Controle_Acesso/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/FabricanteBean.java @@ -0,0 +1,116 @@ +package br.pro.delfino.drogaria.bean; + +import java.io.Serializable; +import java.util.Arrays; +import java.util.List; + +import javax.annotation.PostConstruct; +import javax.faces.bean.ManagedBean; +import javax.faces.bean.ViewScoped; +import javax.faces.event.ActionEvent; +import javax.ws.rs.client.Client; +import javax.ws.rs.client.ClientBuilder; +import javax.ws.rs.client.Entity; +import javax.ws.rs.client.WebTarget; + +import org.omnifaces.util.Messages; + +import com.google.gson.Gson; + +import br.pro.delfino.drogaria.domain.Fabricante; + +@SuppressWarnings("serial") +@ManagedBean +@ViewScoped +public class FabricanteBean implements Serializable { + private Fabricante fabricante; + private List fabricantes; + + public Fabricante getFabricante() { + return fabricante; + } + + public void setFabricante(Fabricante fabricante) { + this.fabricante = fabricante; + } + + public List getFabricantes() { + return fabricantes; + } + + public void setFabricantes(List fabricantes) { + this.fabricantes = fabricantes; + } + + @PostConstruct + public void listar() { + try { + Client cliente = ClientBuilder.newClient(); + WebTarget caminho = cliente.target("http://127.0.0.1:8080/Drogaria/rest/fabricante"); + String json = caminho.request().get(String.class); + + Gson gson = new Gson(); + Fabricante[] vetor = gson.fromJson(json, Fabricante[].class); + + fabricantes = Arrays.asList(vetor); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar listar os fabricantes"); + erro.printStackTrace(); + } + } + + public void novo() { + fabricante = new Fabricante(); + } + + public void salvar() { + try { + Client cliente = ClientBuilder.newClient(); + WebTarget caminho = cliente.target("http://127.0.0.1:8080/Drogaria/rest/fabricante"); + + Gson gson = new Gson(); + + String json = gson.toJson(fabricante); + caminho.request().post(Entity.json(json)); + + fabricante = new Fabricante(); + + json = caminho.request().get(String.class); + Fabricante[] vetor = gson.fromJson(json, Fabricante[].class); + fabricantes = Arrays.asList(vetor); + + Messages.addGlobalInfo("Fabricante salvo com sucesso"); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar salvar o fabricante"); + erro.printStackTrace(); + } + } + + public void excluir(ActionEvent evento) { + try { + fabricante = (Fabricante) evento.getComponent().getAttributes().get("fabricanteSelecionado"); + + Client cliente = ClientBuilder.newClient(); + + WebTarget caminho = cliente.target("http://127.0.0.1:8080/Drogaria/rest/fabricante"); + WebTarget caminhoExcluir = caminho.path("{codigo}").resolveTemplate("codigo", fabricante.getCodigo()); + + caminhoExcluir.request().delete(); + String json = caminho.request().get(String.class); + + Gson gson = new Gson(); + Fabricante[] vetor = gson.fromJson(json, Fabricante[].class); + + fabricantes = Arrays.asList(vetor); + + Messages.addGlobalInfo("Fabricante removido com sucesso"); + } catch (RuntimeException erro) { + Messages.addFlashGlobalError("Ocorreu um erro ao tentar remover o fabricante"); + erro.printStackTrace(); + } + } + + public void editar(ActionEvent evento) { + fabricante = (Fabricante) evento.getComponent().getAttributes().get("fabricanteSelecionado"); + } +} diff --git a/292_PhaseListener_Controle_Acesso/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/HistoricoBean.java b/292_PhaseListener_Controle_Acesso/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/HistoricoBean.java new file mode 100644 index 0000000..a042b04 --- /dev/null +++ b/292_PhaseListener_Controle_Acesso/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/HistoricoBean.java @@ -0,0 +1,89 @@ +package br.pro.delfino.drogaria.bean; + +import java.io.Serializable; +import java.util.Date; + +import javax.annotation.PostConstruct; +import javax.faces.bean.ManagedBean; +import javax.faces.bean.ViewScoped; + +import org.omnifaces.util.Messages; + +import br.pro.delfino.drogaria.dao.HistoricoDAO; +import br.pro.delfino.drogaria.dao.ProdutoDAO; +import br.pro.delfino.drogaria.domain.Historico; +import br.pro.delfino.drogaria.domain.Produto; + +@SuppressWarnings("serial") +@ManagedBean +@ViewScoped +public class HistoricoBean implements Serializable { + private Produto produto; + private Boolean exibePainelDados; + + private Historico historico; + + public Produto getProduto() { + return produto; + } + + public void setProduto(Produto produto) { + this.produto = produto; + } + + public Boolean getExibePainelDados() { + return exibePainelDados; + } + + public void setExibePainelDados(Boolean exibePainelDados) { + this.exibePainelDados = exibePainelDados; + } + + public Historico getHistorico() { + return historico; + } + + public void setHistorico(Historico historico) { + this.historico = historico; + } + + @PostConstruct + public void novo() { + historico = new Historico(); + produto = new Produto(); + exibePainelDados = false; + } + + public void buscar() { + try { + ProdutoDAO produtoDAO = new ProdutoDAO(); + Produto resultado = produtoDAO.buscar(produto.getCodigo()); + + if (resultado == null) { + exibePainelDados = false; + Messages.addGlobalWarn("Não existe produto cadastrado para o código informado"); + } else { + exibePainelDados = true; + produto = resultado; + } + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar buscar o produto"); + erro.printStackTrace(); + } + } + + public void salvar() { + try { + historico.setHorario(new Date()); + historico.setProduto(produto); + + HistoricoDAO historicoDAO = new HistoricoDAO(); + historicoDAO.salvar(historico); + + Messages.addGlobalInfo("Histórico salvo com sucesso"); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar salvar o histórico"); + erro.printStackTrace(); + } + } +} diff --git a/292_PhaseListener_Controle_Acesso/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/ImagemBean.java b/292_PhaseListener_Controle_Acesso/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/ImagemBean.java new file mode 100644 index 0000000..eb963a8 --- /dev/null +++ b/292_PhaseListener_Controle_Acesso/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/ImagemBean.java @@ -0,0 +1,48 @@ +package br.pro.delfino.drogaria.bean; + +import java.io.IOException; +import java.io.InputStream; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; + +import javax.faces.bean.ManagedBean; +import javax.faces.bean.ManagedProperty; +import javax.faces.bean.RequestScoped; + +import org.primefaces.model.DefaultStreamedContent; +import org.primefaces.model.StreamedContent; + +@ManagedBean +@RequestScoped +public class ImagemBean { + @ManagedProperty("#{param.caminho}") + private String caminho; + + private StreamedContent foto; + + public String getCaminho() { + return caminho; + } + + public void setCaminho(String caminho) { + this.caminho = caminho; + } + + public StreamedContent getFoto() throws IOException { + if(caminho == null || caminho.isEmpty()){ + Path path = Paths.get("C:/Programação Web com Java/Uploads/branco.png"); + InputStream stream = Files.newInputStream(path); + foto = new DefaultStreamedContent(stream); + }else{ + Path path = Paths.get(caminho); + InputStream stream = Files.newInputStream(path); + foto = new DefaultStreamedContent(stream); + } + return foto; + } + + public void setFoto(StreamedContent foto) { + this.foto = foto; + } +} diff --git a/292_PhaseListener_Controle_Acesso/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/PessoaBean.java b/292_PhaseListener_Controle_Acesso/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/PessoaBean.java new file mode 100644 index 0000000..931edf7 --- /dev/null +++ b/292_PhaseListener_Controle_Acesso/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/PessoaBean.java @@ -0,0 +1,156 @@ +package br.pro.delfino.drogaria.bean; + +import java.io.Serializable; +import java.util.ArrayList; +import java.util.List; + +import javax.annotation.PostConstruct; +import javax.faces.bean.ManagedBean; +import javax.faces.bean.ViewScoped; +import javax.faces.event.ActionEvent; + +import org.omnifaces.util.Messages; + +import br.pro.delfino.drogaria.dao.CidadeDAO; +import br.pro.delfino.drogaria.dao.EstadoDAO; +import br.pro.delfino.drogaria.dao.PessoaDAO; +import br.pro.delfino.drogaria.domain.Cidade; +import br.pro.delfino.drogaria.domain.Estado; +import br.pro.delfino.drogaria.domain.Pessoa; + +@SuppressWarnings("serial") +@ManagedBean +@ViewScoped +public class PessoaBean implements Serializable { + private Pessoa pessoa; + private List pessoas; + + private Estado estado; + private List estados; + + private List cidades; + + public Pessoa getPessoa() { + return pessoa; + } + + public void setPessoa(Pessoa pessoa) { + this.pessoa = pessoa; + } + + public List getPessoas() { + return pessoas; + } + + public void setPessoas(List pessoas) { + this.pessoas = pessoas; + } + + public Estado getEstado() { + return estado; + } + + public void setEstado(Estado estado) { + this.estado = estado; + } + + public List getEstados() { + return estados; + } + + public void setEstados(List estados) { + this.estados = estados; + } + + public List getCidades() { + return cidades; + } + + public void setCidades(List cidades) { + this.cidades = cidades; + } + + @PostConstruct + public void listar() { + try { + PessoaDAO pessoaDAO = new PessoaDAO(); + pessoas = pessoaDAO.listar("nome"); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar listar as pessoas"); + erro.printStackTrace(); + } + } + + public void novo() { + try { + pessoa = new Pessoa(); + + estado = new Estado(); + + EstadoDAO estadoDAO = new EstadoDAO(); + estados = estadoDAO.listar("nome"); + + cidades = new ArrayList<>(); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar gerar uma nova pessoa"); + erro.printStackTrace(); + } + } + + public void editar(ActionEvent evento) { + try{ + pessoa = (Pessoa) evento.getComponent().getAttributes().get("pessoaSelecionada"); + + estado = pessoa.getCidade().getEstado(); + + EstadoDAO estadoDAO = new EstadoDAO(); + estados = estadoDAO.listar("nome"); + + CidadeDAO cidadeDAO = new CidadeDAO(); + cidades = cidadeDAO.buscarPorEstado(estado.getCodigo()); + }catch(RuntimeException erro){ + Messages.addGlobalError("Ocorreu um erro ao tentar selecionar uma pessoa"); + } + } + + public void salvar() { + try { + PessoaDAO pessoaDAO = new PessoaDAO(); + pessoaDAO.merge(pessoa); + + pessoas = pessoaDAO.listar("nome"); + + pessoa = new Pessoa(); + + estado = new Estado(); + + EstadoDAO estadoDAO = new EstadoDAO(); + estados = estadoDAO.listar("nome"); + + cidades = new ArrayList<>(); + + Messages.addGlobalInfo("Pessoa salva com sucesso"); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar salvar a pessoa"); + erro.printStackTrace(); + } + } + + public void excluir(ActionEvent evento) { + + } + + public void popular() { + try { + if (estado != null) { + CidadeDAO cidadeDAO = new CidadeDAO(); + cidades = cidadeDAO.buscarPorEstado(estado.getCodigo()); + } else { + cidades = new ArrayList<>(); + } + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar filtrar as cidades"); + erro.printStackTrace(); + } + } +} diff --git a/292_PhaseListener_Controle_Acesso/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/ProdutoBean.java b/292_PhaseListener_Controle_Acesso/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/ProdutoBean.java new file mode 100644 index 0000000..e48e0d1 --- /dev/null +++ b/292_PhaseListener_Controle_Acesso/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/ProdutoBean.java @@ -0,0 +1,196 @@ +package br.pro.delfino.drogaria.bean; + +import java.io.IOException; +import java.io.Serializable; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; +import java.nio.file.StandardCopyOption; +import java.sql.Connection; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import javax.annotation.PostConstruct; +import javax.faces.bean.ManagedBean; +import javax.faces.bean.ViewScoped; +import javax.faces.event.ActionEvent; + +import org.omnifaces.util.Faces; +import org.omnifaces.util.Messages; +import org.primefaces.component.datatable.DataTable; +import org.primefaces.event.FileUploadEvent; +import org.primefaces.model.UploadedFile; + +import br.pro.delfino.drogaria.dao.FabricanteDAO; +import br.pro.delfino.drogaria.dao.ProdutoDAO; +import br.pro.delfino.drogaria.domain.Fabricante; +import br.pro.delfino.drogaria.domain.Produto; +import br.pro.delfino.drogaria.util.HibernateUtil; +import net.sf.jasperreports.engine.JRException; +import net.sf.jasperreports.engine.JasperFillManager; +import net.sf.jasperreports.engine.JasperPrint; +import net.sf.jasperreports.engine.JasperPrintManager; + +@SuppressWarnings("serial") +@ManagedBean +@ViewScoped +public class ProdutoBean implements Serializable { + private Produto produto; + private List produtos; + private List fabricantes; + + public Produto getProduto() { + return produto; + } + + public void setProduto(Produto produto) { + this.produto = produto; + } + + public List getProdutos() { + return produtos; + } + + public void setProdutos(List produtos) { + this.produtos = produtos; + } + + public List getFabricantes() { + return fabricantes; + } + + public void setFabricantes(List fabricantes) { + this.fabricantes = fabricantes; + } + + @PostConstruct + public void listar() { + try { + ProdutoDAO produtoDAO = new ProdutoDAO(); + produtos = produtoDAO.listar("descricao"); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar listar os produtos"); + erro.printStackTrace(); + } + } + + public void novo() { + try { + produto = new Produto(); + + FabricanteDAO fabricanteDAO = new FabricanteDAO(); + fabricantes = fabricanteDAO.listar("descricao"); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar gerar um novo produto"); + erro.printStackTrace(); + } + } + + public void editar(ActionEvent evento) { + try { + produto = (Produto) evento.getComponent().getAttributes().get("produtoSelecionado"); + produto.setCaminho("C:/Programação Web com Java/Uploads/" + produto.getCodigo() + ".png"); + + FabricanteDAO fabricanteDAO = new FabricanteDAO(); + fabricantes = fabricanteDAO.listar(); + } catch (RuntimeException erro) { + Messages.addFlashGlobalError("Ocorreu um erro ao tentar selecionar um produto"); + erro.printStackTrace(); + } + } + + public void salvar() { + try { + if (produto.getCaminho() == null) { + Messages.addGlobalError("O campo foto é obrigatório"); + return; + } + + ProdutoDAO produtoDAO = new ProdutoDAO(); + Produto produtoRetorno = produtoDAO.merge(produto); + + Path origem = Paths.get(produto.getCaminho()); + Path destino = Paths.get("C:/Programação Web com Java/Uploads/" + produtoRetorno.getCodigo() + ".png"); + Files.copy(origem, destino, StandardCopyOption.REPLACE_EXISTING); + + produto = new Produto(); + + FabricanteDAO fabricanteDAO = new FabricanteDAO(); + fabricantes = fabricanteDAO.listar(); + + produtos = produtoDAO.listar(); + + Messages.addGlobalInfo("Produto salvo com sucesso"); + } catch (RuntimeException | IOException erro) { + Messages.addFlashGlobalError("Ocorreu um erro ao tentar salvar o produto"); + erro.printStackTrace(); + } + } + + public void excluir(ActionEvent evento) { + try { + produto = (Produto) evento.getComponent().getAttributes().get("produtoSelecionado"); + + ProdutoDAO produtoDAO = new ProdutoDAO(); + produtoDAO.excluir(produto); + + Path arquivo = Paths.get("C:/Programação Web com Java/Uploads/" + produto.getCodigo() + ".png"); + Files.deleteIfExists(arquivo); + + produtos = produtoDAO.listar(); + + Messages.addGlobalInfo("Produto removido com sucesso"); + } catch (RuntimeException | IOException erro) { + Messages.addFlashGlobalError("Ocorreu um erro ao tentar remover o produto"); + erro.printStackTrace(); + } + } + + public void upload(FileUploadEvent evento) { + try { + UploadedFile arquivoUpload = evento.getFile(); + Path arquivoTemp = Files.createTempFile(null, null); + Files.copy(arquivoUpload.getInputstream(), arquivoTemp, StandardCopyOption.REPLACE_EXISTING); + produto.setCaminho(arquivoTemp.toString()); + + Messages.addGlobalInfo("Upload realizado com sucesso"); + } catch (IOException erro) { + Messages.addGlobalInfo("Ocorreu um erro ao tentar realizar o upload de arquivo"); + erro.printStackTrace(); + } + } + + public void imprimir() { + try { + DataTable tabela = (DataTable) Faces.getViewRoot().findComponent("formListagem:tabela"); + Map filtros = tabela.getFilters(); + + String proDescricao = (String) filtros.get("descricao"); + String fabDescricao = (String) filtros.get("fabricante.descricao"); + + String caminho = Faces.getRealPath("/reports/produtos.jasper"); + + Map parametros = new HashMap<>(); + if (proDescricao == null) { + parametros.put("PRODUTO_DESCRICAO", "%%"); + } else { + parametros.put("PRODUTO_DESCRICAO", "%" + proDescricao + "%"); + } + if (fabDescricao == null) { + parametros.put("FABRICANTE_DESCRICAO", "%%"); + } else { + parametros.put("FABRICANTE_DESCRICAO", "%" + fabDescricao + "%"); + } + + Connection conexao = HibernateUtil.getConexao(); + + JasperPrint relatorio = JasperFillManager.fillReport(caminho, parametros, conexao); + + JasperPrintManager.printReport(relatorio, true); + } catch (JRException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar gerar o relatório"); + erro.printStackTrace(); + } + } +} diff --git a/292_PhaseListener_Controle_Acesso/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/ProdutoBean2.java b/292_PhaseListener_Controle_Acesso/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/ProdutoBean2.java new file mode 100644 index 0000000..f36cd86 --- /dev/null +++ b/292_PhaseListener_Controle_Acesso/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/ProdutoBean2.java @@ -0,0 +1,86 @@ +package br.pro.delfino.drogaria.bean; + +import java.io.Serializable; +import java.util.List; + +import javax.annotation.PostConstruct; +import javax.faces.bean.ManagedBean; +import javax.faces.bean.ViewScoped; + +import org.omnifaces.util.Messages; + +import br.pro.delfino.drogaria.dao.FabricanteDAO; +import br.pro.delfino.drogaria.dao.ProdutoDAO; +import br.pro.delfino.drogaria.domain.Fabricante; +import br.pro.delfino.drogaria.domain.Produto; + +@SuppressWarnings("serial") +@ManagedBean +@ViewScoped +public class ProdutoBean2 implements Serializable { + private Produto produto; + private Long codigoProduto; + + private List fabricantes; + private List produtos; + + private FabricanteDAO fabricanteDAO; + private ProdutoDAO produtoDAO; + + public Produto getProduto() { + return produto; + } + + public void setProduto(Produto produto) { + this.produto = produto; + } + + public Long getCodigoProduto() { + return codigoProduto; + } + + public void setCodigoProduto(Long codigoProduto) { + this.codigoProduto = codigoProduto; + } + + public void setFabricantes(List fabricantes) { + this.fabricantes = fabricantes; + } + + public List getFabricantes() { + return fabricantes; + } + public List getProdutos() { + return produtos; + } + + public void setProdutos(List produtos) { + this.produtos = produtos; + } + + @PostConstruct + public void iniciar(){ + fabricanteDAO = new FabricanteDAO(); + produtoDAO = new ProdutoDAO(); + } + + public void listar() { + try { + produtos = produtoDAO.listar("descricao"); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar listar os produtos"); + erro.printStackTrace(); + } + } + + public void carregarEdicao(){ + try { + produto = produtoDAO.buscar(codigoProduto); + + fabricantes = fabricanteDAO.listar("descricao"); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar carregar os dados para edição"); + erro.printStackTrace(); + } + } +} diff --git a/292_PhaseListener_Controle_Acesso/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/UsuarioBean.java b/292_PhaseListener_Controle_Acesso/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/UsuarioBean.java new file mode 100644 index 0000000..f526df8 --- /dev/null +++ b/292_PhaseListener_Controle_Acesso/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/UsuarioBean.java @@ -0,0 +1,90 @@ +package br.pro.delfino.drogaria.bean; + +import java.io.Serializable; +import java.util.List; + +import javax.annotation.PostConstruct; +import javax.faces.bean.ManagedBean; +import javax.faces.bean.ViewScoped; + +import org.omnifaces.util.Messages; + +import br.pro.delfino.drogaria.dao.PessoaDAO; +import br.pro.delfino.drogaria.dao.UsuarioDAO; +import br.pro.delfino.drogaria.domain.Pessoa; +import br.pro.delfino.drogaria.domain.Usuario; + +@SuppressWarnings("serial") +@ManagedBean +@ViewScoped +public class UsuarioBean implements Serializable { + private Usuario usuario; + + private List pessoas; + private List usuarios; + + public Usuario getUsuario() { + return usuario; + } + + public void setUsuario(Usuario usuario) { + this.usuario = usuario; + } + + public List getPessoas() { + return pessoas; + } + + public void setPessoas(List pessoas) { + this.pessoas = pessoas; + } + + public List getUsuarios() { + return usuarios; + } + + public void setUsuarios(List usuarios) { + this.usuarios = usuarios; + } + + @PostConstruct + public void listar(){ + try{ + UsuarioDAO usuarioDAO = new UsuarioDAO(); + usuarios = usuarioDAO.listar("tipo"); + }catch(RuntimeException erro){ + Messages.addGlobalError("Ocorreu um erro ao tentar listar os usuários"); + erro.printStackTrace(); + } + } + + public void novo() { + try { + usuario = new Usuario(); + + PessoaDAO pessoaDAO = new PessoaDAO(); + pessoas = pessoaDAO.listar("nome"); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar criar um novo usuário"); + erro.printStackTrace(); + } + } + + public void salvar() { + try { + UsuarioDAO usuarioDAO = new UsuarioDAO(); + usuarioDAO.merge(usuario); + + usuario = new Usuario(); + usuarios = usuarioDAO.listar("tipo"); + + PessoaDAO pessoaDAO = new PessoaDAO(); + pessoas = pessoaDAO.listar("nome"); + + Messages.addGlobalInfo("Usuário salvo com sucesso"); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar salvar o usuário"); + erro.printStackTrace(); + } + } +} diff --git a/292_PhaseListener_Controle_Acesso/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/VendaBean.java b/292_PhaseListener_Controle_Acesso/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/VendaBean.java new file mode 100644 index 0000000..ada8ff2 --- /dev/null +++ b/292_PhaseListener_Controle_Acesso/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/VendaBean.java @@ -0,0 +1,186 @@ +package br.pro.delfino.drogaria.bean; + +import java.io.Serializable; +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +import javax.annotation.PostConstruct; +import javax.faces.bean.ManagedBean; +import javax.faces.bean.ViewScoped; +import javax.faces.event.ActionEvent; + +import org.omnifaces.util.Messages; + +import br.pro.delfino.drogaria.dao.ClienteDAO; +import br.pro.delfino.drogaria.dao.FuncionarioDAO; +import br.pro.delfino.drogaria.dao.ProdutoDAO; +import br.pro.delfino.drogaria.dao.VendaDAO; +import br.pro.delfino.drogaria.domain.Cliente; +import br.pro.delfino.drogaria.domain.Funcionario; +import br.pro.delfino.drogaria.domain.ItemVenda; +import br.pro.delfino.drogaria.domain.Produto; +import br.pro.delfino.drogaria.domain.Venda; + +@SuppressWarnings("serial") +@ManagedBean +@ViewScoped +public class VendaBean implements Serializable { + private Venda venda; + + private List produtos; + private List itensVenda; + private List clientes; + private List funcionarios; + + public Venda getVenda() { + return venda; + } + + public void setVenda(Venda venda) { + this.venda = venda; + } + + public List getProdutos() { + return produtos; + } + + public void setProdutos(List produtos) { + this.produtos = produtos; + } + + public List getItensVenda() { + return itensVenda; + } + + public void setItensVenda(List itensVenda) { + this.itensVenda = itensVenda; + } + + public List getClientes() { + return clientes; + } + + public void setClientes(List clientes) { + this.clientes = clientes; + } + + public List getFuncionarios() { + return funcionarios; + } + + public void setFuncionarios(List funcionarios) { + this.funcionarios = funcionarios; + } + + @PostConstruct + public void novo() { + try { + venda = new Venda(); + venda.setPrecoTotal(new BigDecimal("0.00")); + + ProdutoDAO produtoDAO = new ProdutoDAO(); + produtos = produtoDAO.listar("descricao"); + + itensVenda = new ArrayList<>(); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar carregar a tela de vendas"); + erro.printStackTrace(); + } + } + + public void adicionar(ActionEvent evento) { + Produto produto = (Produto) evento.getComponent().getAttributes().get("produtoSelecionado"); + + int achou = -1; + for (int posicao = 0; posicao < itensVenda.size(); posicao++) { + if (itensVenda.get(posicao).getProduto().equals(produto)) { + achou = posicao; + } + } + + if (achou < 0) { + ItemVenda itemVenda = new ItemVenda(); + itemVenda.setPrecoParcial(produto.getPreco()); + itemVenda.setProduto(produto); + itemVenda.setQuantidade(new Short("1")); + + itensVenda.add(itemVenda); + } else { + ItemVenda itemVenda = itensVenda.get(achou); + itemVenda.setQuantidade(new Short(itemVenda.getQuantidade() + 1 + "")); + itemVenda.setPrecoParcial(produto.getPreco().multiply(new BigDecimal(itemVenda.getQuantidade()))); + } + + calcular(); + } + + public void remover(ActionEvent evento) { + ItemVenda itemVenda = (ItemVenda) evento.getComponent().getAttributes().get("itemSelecionado"); + + int achou = -1; + for (int posicao = 0; posicao < itensVenda.size(); posicao++) { + if (itensVenda.get(posicao).getProduto().equals(itemVenda.getProduto())) { + achou = posicao; + } + } + + if (achou > -1) { + itensVenda.remove(achou); + } + + calcular(); + } + + public void calcular() { + venda.setPrecoTotal(new BigDecimal("0.00")); + + for (int posicao = 0; posicao < itensVenda.size(); posicao++) { + ItemVenda itemVenda = itensVenda.get(posicao); + venda.setPrecoTotal(venda.getPrecoTotal().add(itemVenda.getPrecoParcial())); + } + } + + public void finalizar() { + try { + venda.setHorario(new Date()); + venda.setCliente(null); + venda.setFuncionario(null); + + FuncionarioDAO funcionarioDAO = new FuncionarioDAO(); + funcionarios = funcionarioDAO.listarOrdenado(); + + ClienteDAO clienteDAO = new ClienteDAO(); + clientes = clienteDAO.listarOrdenado(); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar finalizar a venda"); + erro.printStackTrace(); + } + } + + public void salvar() { + try { + if(venda.getPrecoTotal().signum() == 0){ + Messages.addGlobalError("Informe pelo menos um item para a venda"); + return; + } + + VendaDAO vendaDAO = new VendaDAO(); + vendaDAO.salvar(venda, itensVenda); + + venda = new Venda(); + venda.setPrecoTotal(new BigDecimal("0.00")); + + ProdutoDAO produtoDAO = new ProdutoDAO(); + produtos = produtoDAO.listar("descricao"); + + itensVenda = new ArrayList<>(); + + Messages.addGlobalInfo("Venda realizada com sucesso"); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar salvar a venda"); + erro.printStackTrace(); + } + } +} diff --git a/292_PhaseListener_Controle_Acesso/Drogaria/src/main/java/br/pro/delfino/drogaria/converter/UpperCaseConverter.java b/292_PhaseListener_Controle_Acesso/Drogaria/src/main/java/br/pro/delfino/drogaria/converter/UpperCaseConverter.java new file mode 100644 index 0000000..8a5d259 --- /dev/null +++ b/292_PhaseListener_Controle_Acesso/Drogaria/src/main/java/br/pro/delfino/drogaria/converter/UpperCaseConverter.java @@ -0,0 +1,28 @@ +package br.pro.delfino.drogaria.converter; + +import javax.faces.component.UIComponent; +import javax.faces.context.FacesContext; +import javax.faces.convert.Converter; +import javax.faces.convert.FacesConverter; + +@FacesConverter("upperCaseConverter") +public class UpperCaseConverter implements Converter { + + @Override + public Object getAsObject(FacesContext context, UIComponent component, String value) { + if (value == null) { + return null; + } else { + return value.toUpperCase(); + } + } + + @Override + public String getAsString(FacesContext context, UIComponent component, Object value) { + if (value == null) { + return ""; + } else { + return value.toString(); + } + } +} diff --git a/292_PhaseListener_Controle_Acesso/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/CaixaDAO.java b/292_PhaseListener_Controle_Acesso/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/CaixaDAO.java new file mode 100644 index 0000000..fd8acd7 --- /dev/null +++ b/292_PhaseListener_Controle_Acesso/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/CaixaDAO.java @@ -0,0 +1,26 @@ +package br.pro.delfino.drogaria.dao; + +import java.util.Date; + +import org.hibernate.Criteria; +import org.hibernate.Session; +import org.hibernate.criterion.Restrictions; + +import br.pro.delfino.drogaria.domain.Caixa; +import br.pro.delfino.drogaria.util.HibernateUtil; + +public class CaixaDAO extends GenericDAO { + public Caixa buscar(Date dataAbertura) { + Session sessao = HibernateUtil.getFabricaDeSessoes().openSession(); + try { + Criteria consulta = sessao.createCriteria(Caixa.class); + consulta.add(Restrictions.eq("dataAbertura", dataAbertura)); + Caixa resultado = (Caixa) consulta.uniqueResult(); + return resultado; + } catch (RuntimeException erro) { + throw erro; + } finally { + sessao.close(); + } + } +} diff --git a/292_PhaseListener_Controle_Acesso/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/CidadeDAO.java b/292_PhaseListener_Controle_Acesso/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/CidadeDAO.java new file mode 100644 index 0000000..e685e93 --- /dev/null +++ b/292_PhaseListener_Controle_Acesso/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/CidadeDAO.java @@ -0,0 +1,29 @@ +package br.pro.delfino.drogaria.dao; + +import java.util.List; + +import org.hibernate.Criteria; +import org.hibernate.Session; +import org.hibernate.criterion.Order; +import org.hibernate.criterion.Restrictions; + +import br.pro.delfino.drogaria.domain.Cidade; +import br.pro.delfino.drogaria.util.HibernateUtil; + +public class CidadeDAO extends GenericDAO { + @SuppressWarnings("unchecked") + public List buscarPorEstado(Long estadoCodigo) { + Session sessao = HibernateUtil.getFabricaDeSessoes().openSession(); + try { + Criteria consulta = sessao.createCriteria(Cidade.class); + consulta.add(Restrictions.eq("estado.codigo", estadoCodigo)); + consulta.addOrder(Order.asc("nome")); + List resultado = consulta.list(); + return resultado; + } catch (RuntimeException erro) { + throw erro; + } finally { + sessao.close(); + } + } +} \ No newline at end of file diff --git a/292_PhaseListener_Controle_Acesso/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/ClienteDAO.java b/292_PhaseListener_Controle_Acesso/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/ClienteDAO.java new file mode 100644 index 0000000..e9796b5 --- /dev/null +++ b/292_PhaseListener_Controle_Acesso/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/ClienteDAO.java @@ -0,0 +1,28 @@ +package br.pro.delfino.drogaria.dao; + +import java.util.List; + +import org.hibernate.Criteria; +import org.hibernate.Session; +import org.hibernate.criterion.Order; + +import br.pro.delfino.drogaria.domain.Cliente; +import br.pro.delfino.drogaria.util.HibernateUtil; + +public class ClienteDAO extends GenericDAO { + @SuppressWarnings("unchecked") + public List listarOrdenado() { + Session sessao = HibernateUtil.getFabricaDeSessoes().openSession(); + try { + Criteria consulta = sessao.createCriteria(Cliente.class); + consulta.createAlias("pessoa", "p"); + consulta.addOrder(Order.asc("p.nome")); + List resultado = consulta.list(); + return resultado; + } catch (RuntimeException erro) { + throw erro; + } finally { + sessao.close(); + } + } +} diff --git a/292_PhaseListener_Controle_Acesso/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/EstadoDAO.java b/292_PhaseListener_Controle_Acesso/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/EstadoDAO.java new file mode 100644 index 0000000..32b4a79 --- /dev/null +++ b/292_PhaseListener_Controle_Acesso/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/EstadoDAO.java @@ -0,0 +1,7 @@ +package br.pro.delfino.drogaria.dao; + +import br.pro.delfino.drogaria.domain.Estado; + +public class EstadoDAO extends GenericDAO { + +} diff --git a/292_PhaseListener_Controle_Acesso/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/FabricanteDAO.java b/292_PhaseListener_Controle_Acesso/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/FabricanteDAO.java new file mode 100644 index 0000000..8b7f946 --- /dev/null +++ b/292_PhaseListener_Controle_Acesso/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/FabricanteDAO.java @@ -0,0 +1,7 @@ +package br.pro.delfino.drogaria.dao; + +import br.pro.delfino.drogaria.domain.Fabricante; + +public class FabricanteDAO extends GenericDAO { + +} diff --git a/292_PhaseListener_Controle_Acesso/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/FuncionarioDAO.java b/292_PhaseListener_Controle_Acesso/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/FuncionarioDAO.java new file mode 100644 index 0000000..2b3114d --- /dev/null +++ b/292_PhaseListener_Controle_Acesso/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/FuncionarioDAO.java @@ -0,0 +1,28 @@ +package br.pro.delfino.drogaria.dao; + +import java.util.List; + +import org.hibernate.Criteria; +import org.hibernate.Session; +import org.hibernate.criterion.Order; + +import br.pro.delfino.drogaria.domain.Funcionario; +import br.pro.delfino.drogaria.util.HibernateUtil; + +public class FuncionarioDAO extends GenericDAO{ + @SuppressWarnings("unchecked") + public List listarOrdenado() { + Session sessao = HibernateUtil.getFabricaDeSessoes().openSession(); + try { + Criteria consulta = sessao.createCriteria(Funcionario.class); + consulta.createAlias("pessoa", "p"); + consulta.addOrder(Order.asc("p.nome")); + List resultado = consulta.list(); + return resultado; + } catch (RuntimeException erro) { + throw erro; + } finally { + sessao.close(); + } + } +} diff --git a/292_PhaseListener_Controle_Acesso/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/GenericDAO.java b/292_PhaseListener_Controle_Acesso/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/GenericDAO.java new file mode 100644 index 0000000..b505cd3 --- /dev/null +++ b/292_PhaseListener_Controle_Acesso/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/GenericDAO.java @@ -0,0 +1,140 @@ +package br.pro.delfino.drogaria.dao; + +import java.lang.reflect.ParameterizedType; +import java.util.List; + +import org.hibernate.Criteria; +import org.hibernate.Session; +import org.hibernate.Transaction; +import org.hibernate.criterion.Order; +import org.hibernate.criterion.Restrictions; + +import br.pro.delfino.drogaria.util.HibernateUtil; + +public class GenericDAO { + private Class classe; + + @SuppressWarnings("unchecked") + public GenericDAO() { + this.classe = (Class) ((ParameterizedType) getClass().getGenericSuperclass()) + .getActualTypeArguments()[0]; + } + + public void salvar(Entidade entidade) { + Session sessao = HibernateUtil.getFabricaDeSessoes().openSession(); + Transaction transacao = null; + + try { + transacao = sessao.beginTransaction(); + sessao.save(entidade); + transacao.commit(); + } catch (RuntimeException erro) { + if (transacao != null) { + transacao.rollback(); + } + throw erro; + } finally { + sessao.close(); + } + } + + @SuppressWarnings("unchecked") + public List listar() { + Session sessao = HibernateUtil.getFabricaDeSessoes().openSession(); + try { + Criteria consulta = sessao.createCriteria(classe); + List resultado = consulta.list(); + return resultado; + } catch (RuntimeException erro) { + throw erro; + } finally { + sessao.close(); + } + } + + @SuppressWarnings("unchecked") + public List listar(String campoOrdenacao) { + Session sessao = HibernateUtil.getFabricaDeSessoes().openSession(); + try { + Criteria consulta = sessao.createCriteria(classe); + consulta.addOrder(Order.asc(campoOrdenacao)); + List resultado = consulta.list(); + return resultado; + } catch (RuntimeException erro) { + throw erro; + } finally { + sessao.close(); + } + } + + @SuppressWarnings("unchecked") + public Entidade buscar(Long codigo) { + Session sessao = HibernateUtil.getFabricaDeSessoes().openSession(); + try { + Criteria consulta = sessao.createCriteria(classe); + consulta.add(Restrictions.idEq(codigo)); + Entidade resultado = (Entidade) consulta.uniqueResult(); + return resultado; + } catch (RuntimeException erro) { + throw erro; + } finally { + sessao.close(); + } + } + + public void excluir(Entidade entidade) { + Session sessao = HibernateUtil.getFabricaDeSessoes().openSession(); + Transaction transacao = null; + + try { + transacao = sessao.beginTransaction(); + sessao.delete(entidade); + transacao.commit(); + } catch (RuntimeException erro) { + if (transacao != null) { + transacao.rollback(); + } + throw erro; + } finally { + sessao.close(); + } + } + + public void editar(Entidade entidade) { + Session sessao = HibernateUtil.getFabricaDeSessoes().openSession(); + Transaction transacao = null; + + try { + transacao = sessao.beginTransaction(); + sessao.update(entidade); + transacao.commit(); + } catch (RuntimeException erro) { + if (transacao != null) { + transacao.rollback(); + } + throw erro; + } finally { + sessao.close(); + } + } + + @SuppressWarnings("unchecked") + public Entidade merge(Entidade entidade) { + Session sessao = HibernateUtil.getFabricaDeSessoes().openSession(); + Transaction transacao = null; + + try { + transacao = sessao.beginTransaction(); + Entidade retorno = (Entidade) sessao.merge(entidade); + transacao.commit(); + return retorno; + } catch (RuntimeException erro) { + if (transacao != null) { + transacao.rollback(); + } + throw erro; + } finally { + sessao.close(); + } + } +} diff --git a/292_PhaseListener_Controle_Acesso/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/HistoricoDAO.java b/292_PhaseListener_Controle_Acesso/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/HistoricoDAO.java new file mode 100644 index 0000000..7b30017 --- /dev/null +++ b/292_PhaseListener_Controle_Acesso/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/HistoricoDAO.java @@ -0,0 +1,7 @@ +package br.pro.delfino.drogaria.dao; + +import br.pro.delfino.drogaria.domain.Historico; + +public class HistoricoDAO extends GenericDAO { + +} diff --git a/292_PhaseListener_Controle_Acesso/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/MovimentacaoDAO.java b/292_PhaseListener_Controle_Acesso/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/MovimentacaoDAO.java new file mode 100644 index 0000000..b6560e2 --- /dev/null +++ b/292_PhaseListener_Controle_Acesso/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/MovimentacaoDAO.java @@ -0,0 +1,7 @@ +package br.pro.delfino.drogaria.dao; + +import br.pro.delfino.drogaria.domain.Movimentacao; + +public class MovimentacaoDAO extends GenericDAO { + +} diff --git a/292_PhaseListener_Controle_Acesso/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/PessoaDAO.java b/292_PhaseListener_Controle_Acesso/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/PessoaDAO.java new file mode 100644 index 0000000..bbd116b --- /dev/null +++ b/292_PhaseListener_Controle_Acesso/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/PessoaDAO.java @@ -0,0 +1,7 @@ +package br.pro.delfino.drogaria.dao; + +import br.pro.delfino.drogaria.domain.Pessoa; + +public class PessoaDAO extends GenericDAO { + +} diff --git a/292_PhaseListener_Controle_Acesso/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/ProdutoDAO.java b/292_PhaseListener_Controle_Acesso/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/ProdutoDAO.java new file mode 100644 index 0000000..4c1e751 --- /dev/null +++ b/292_PhaseListener_Controle_Acesso/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/ProdutoDAO.java @@ -0,0 +1,7 @@ +package br.pro.delfino.drogaria.dao; + +import br.pro.delfino.drogaria.domain.Produto; + +public class ProdutoDAO extends GenericDAO { + +} diff --git a/292_PhaseListener_Controle_Acesso/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/UsuarioDAO.java b/292_PhaseListener_Controle_Acesso/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/UsuarioDAO.java new file mode 100644 index 0000000..b4bf524 --- /dev/null +++ b/292_PhaseListener_Controle_Acesso/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/UsuarioDAO.java @@ -0,0 +1,33 @@ +package br.pro.delfino.drogaria.dao; + +import org.apache.shiro.crypto.hash.SimpleHash; +import org.hibernate.Criteria; +import org.hibernate.Session; +import org.hibernate.criterion.Restrictions; + +import br.pro.delfino.drogaria.domain.Usuario; +import br.pro.delfino.drogaria.util.HibernateUtil; + +public class UsuarioDAO extends GenericDAO { + public Usuario autenticar(String cpf, String senha) { + Session sessao = HibernateUtil.getFabricaDeSessoes().openSession(); + + try{ + Criteria consulta = sessao.createCriteria(Usuario.class); + consulta.createAlias("pessoa", "p"); + + consulta.add(Restrictions.eq("p.cpf", cpf)); + + SimpleHash hash = new SimpleHash("md5", senha); + consulta.add(Restrictions.eq("senha", hash.toHex())); + + Usuario resultado = (Usuario) consulta.uniqueResult(); + + return resultado; + } catch (RuntimeException erro) { + throw erro; + } finally { + sessao.close(); + } + } +} diff --git a/292_PhaseListener_Controle_Acesso/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/VendaDAO.java b/292_PhaseListener_Controle_Acesso/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/VendaDAO.java new file mode 100644 index 0000000..3428939 --- /dev/null +++ b/292_PhaseListener_Controle_Acesso/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/VendaDAO.java @@ -0,0 +1,49 @@ +package br.pro.delfino.drogaria.dao; + +import java.util.List; + +import org.hibernate.Session; +import org.hibernate.Transaction; + +import br.pro.delfino.drogaria.domain.ItemVenda; +import br.pro.delfino.drogaria.domain.Produto; +import br.pro.delfino.drogaria.domain.Venda; +import br.pro.delfino.drogaria.util.HibernateUtil; + +public class VendaDAO extends GenericDAO { + public void salvar(Venda venda, List itensVenda) { + Session sessao = HibernateUtil.getFabricaDeSessoes().openSession(); + Transaction transacao = null; + + try { + transacao = sessao.beginTransaction(); + + sessao.save(venda); + + for (int posicao = 0; posicao < itensVenda.size(); posicao++) { + ItemVenda itemVenda = itensVenda.get(posicao); + itemVenda.setVenda(venda); + + sessao.save(itemVenda); + + Produto produto = itemVenda.getProduto(); + int quantidade = produto.getQuantidade() - itemVenda.getQuantidade(); + if (quantidade >= 0) { + produto.setQuantidade(new Short(quantidade + "")); + sessao.update(produto); + } else { + throw new RuntimeException("Quantidade insuficiente em estoque"); + } + } + + transacao.commit(); + } catch (RuntimeException erro) { + if (transacao != null) { + transacao.rollback(); + } + throw erro; + } finally { + sessao.close(); + } + } +} diff --git a/292_PhaseListener_Controle_Acesso/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Caixa.java b/292_PhaseListener_Controle_Acesso/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Caixa.java new file mode 100644 index 0000000..61fc69b --- /dev/null +++ b/292_PhaseListener_Controle_Acesso/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Caixa.java @@ -0,0 +1,62 @@ +package br.pro.delfino.drogaria.domain; + +import java.math.BigDecimal; +import java.util.Date; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.JoinColumn; +import javax.persistence.ManyToOne; +import javax.persistence.Temporal; +import javax.persistence.TemporalType; + +@SuppressWarnings("serial") +@Entity +public class Caixa extends GenericDomain { + @Column(nullable = false, unique = true) + @Temporal(TemporalType.DATE) + private Date dataAbertura; + + @Column(nullable = true) + @Temporal(TemporalType.DATE) + private Date dataFechamento; + + @Column(nullable = false, precision = 7, scale = 2) + private BigDecimal valorAbertura; + + @ManyToOne + @JoinColumn(nullable = false) + private Funcionario funcionario; + + public Date getDataAbertura() { + return dataAbertura; + } + + public void setDataAbertura(Date dataAbertura) { + this.dataAbertura = dataAbertura; + } + + public Date getDataFechamento() { + return dataFechamento; + } + + public void setDataFechamento(Date dataFechamento) { + this.dataFechamento = dataFechamento; + } + + public BigDecimal getValorAbertura() { + return valorAbertura; + } + + public void setValorAbertura(BigDecimal valorAbertura) { + this.valorAbertura = valorAbertura; + } + + public Funcionario getFuncionario() { + return funcionario; + } + + public void setFuncionario(Funcionario funcionario) { + this.funcionario = funcionario; + } +} diff --git a/292_PhaseListener_Controle_Acesso/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Cidade.java b/292_PhaseListener_Controle_Acesso/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Cidade.java new file mode 100644 index 0000000..cf94ede --- /dev/null +++ b/292_PhaseListener_Controle_Acesso/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Cidade.java @@ -0,0 +1,33 @@ +package br.pro.delfino.drogaria.domain; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.JoinColumn; +import javax.persistence.ManyToOne; + +@SuppressWarnings("serial") +@Entity +public class Cidade extends GenericDomain { + @Column(length = 50, nullable = false) + private String nome; + + @ManyToOne + @JoinColumn(nullable = false) + private Estado estado; + + public String getNome() { + return nome; + } + + public void setNome(String nome) { + this.nome = nome; + } + + public Estado getEstado() { + return estado; + } + + public void setEstado(Estado estado) { + this.estado = estado; + } +} diff --git a/292_PhaseListener_Controle_Acesso/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Cliente.java b/292_PhaseListener_Controle_Acesso/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Cliente.java new file mode 100644 index 0000000..6ace9b9 --- /dev/null +++ b/292_PhaseListener_Controle_Acesso/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Cliente.java @@ -0,0 +1,49 @@ +package br.pro.delfino.drogaria.domain; + +import java.util.Date; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.JoinColumn; +import javax.persistence.OneToOne; +import javax.persistence.Temporal; +import javax.persistence.TemporalType; + +@SuppressWarnings("serial") +@Entity +public class Cliente extends GenericDomain { + @Column(nullable = false) + @Temporal(TemporalType.DATE) + private Date dataCadastro; + + @Column(nullable = false) + private Boolean liberado; + + @OneToOne + @JoinColumn(nullable = false) + private Pessoa pessoa; + + public Date getDataCadastro() { + return dataCadastro; + } + + public void setDataCadastro(Date dataCadastro) { + this.dataCadastro = dataCadastro; + } + + public Boolean getLiberado() { + return liberado; + } + + public void setLiberado(Boolean liberado) { + this.liberado = liberado; + } + + public Pessoa getPessoa() { + return pessoa; + } + + public void setPessoa(Pessoa pessoa) { + this.pessoa = pessoa; + } +} diff --git a/292_PhaseListener_Controle_Acesso/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Estado.java b/292_PhaseListener_Controle_Acesso/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Estado.java new file mode 100644 index 0000000..1c06b98 --- /dev/null +++ b/292_PhaseListener_Controle_Acesso/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Estado.java @@ -0,0 +1,30 @@ +package br.pro.delfino.drogaria.domain; + +import javax.persistence.Column; +import javax.persistence.Entity; + +@SuppressWarnings("serial") +@Entity +public class Estado extends GenericDomain { + @Column(length = 2, nullable = false) + private String sigla; + + @Column(length = 50, nullable = false) + private String nome; + + public String getSigla() { + return sigla; + } + + public void setSigla(String sigla) { + this.sigla = sigla; + } + + public String getNome() { + return nome; + } + + public void setNome(String nome) { + this.nome = nome; + } +} diff --git a/292_PhaseListener_Controle_Acesso/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Fabricante.java b/292_PhaseListener_Controle_Acesso/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Fabricante.java new file mode 100644 index 0000000..02eab8c --- /dev/null +++ b/292_PhaseListener_Controle_Acesso/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Fabricante.java @@ -0,0 +1,19 @@ +package br.pro.delfino.drogaria.domain; + +import javax.persistence.Column; +import javax.persistence.Entity; + +@SuppressWarnings("serial") +@Entity +public class Fabricante extends GenericDomain { + @Column(length = 50, nullable = false) + private String descricao; + + public String getDescricao() { + return descricao; + } + + public void setDescricao(String descricao) { + this.descricao = descricao; + } +} diff --git a/292_PhaseListener_Controle_Acesso/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Funcionario.java b/292_PhaseListener_Controle_Acesso/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Funcionario.java new file mode 100644 index 0000000..dec9378 --- /dev/null +++ b/292_PhaseListener_Controle_Acesso/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Funcionario.java @@ -0,0 +1,49 @@ +package br.pro.delfino.drogaria.domain; + +import java.util.Date; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.JoinColumn; +import javax.persistence.OneToOne; +import javax.persistence.Temporal; +import javax.persistence.TemporalType; + +@SuppressWarnings("serial") +@Entity +public class Funcionario extends GenericDomain { + @Column(length = 15, nullable = false) + private String carteiraTrabalho; + + @Column(nullable = false) + @Temporal(TemporalType.DATE) + private Date dataAdmissao; + + @OneToOne + @JoinColumn(nullable = false) + private Pessoa pessoa; + + public String getCarteiraTrabalho() { + return carteiraTrabalho; + } + + public void setCarteiraTrabalho(String carteiraTrabalho) { + this.carteiraTrabalho = carteiraTrabalho; + } + + public Date getDataAdmissao() { + return dataAdmissao; + } + + public void setDataAdmissao(Date dataAdmissao) { + this.dataAdmissao = dataAdmissao; + } + + public Pessoa getPessoa() { + return pessoa; + } + + public void setPessoa(Pessoa pessoa) { + this.pessoa = pessoa; + } +} diff --git a/292_PhaseListener_Controle_Acesso/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/GenericDomain.java b/292_PhaseListener_Controle_Acesso/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/GenericDomain.java new file mode 100644 index 0000000..f37efea --- /dev/null +++ b/292_PhaseListener_Controle_Acesso/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/GenericDomain.java @@ -0,0 +1,54 @@ +package br.pro.delfino.drogaria.domain; + +import java.io.Serializable; + +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Id; +import javax.persistence.MappedSuperclass; + +@SuppressWarnings("serial") +@MappedSuperclass +public class GenericDomain implements Serializable { + @Id + @GeneratedValue(strategy = GenerationType.AUTO) + private Long codigo; + + public Long getCodigo() { + return codigo; + } + + public void setCodigo(Long codigo) { + this.codigo = codigo; + } + + @Override + public String toString() { + return String.format("%s[codigo=%d]", getClass().getSimpleName(), getCodigo()); + } + + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + ((codigo == null) ? 0 : codigo.hashCode()); + return result; + } + + @Override + public boolean equals(Object obj) { + if (this == obj) + return true; + if (obj == null) + return false; + if (getClass() != obj.getClass()) + return false; + GenericDomain other = (GenericDomain) obj; + if (codigo == null) { + if (other.codigo != null) + return false; + } else if (!codigo.equals(other.codigo)) + return false; + return true; + } +} diff --git a/292_PhaseListener_Controle_Acesso/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Historico.java b/292_PhaseListener_Controle_Acesso/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Historico.java new file mode 100644 index 0000000..dafdaeb --- /dev/null +++ b/292_PhaseListener_Controle_Acesso/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Historico.java @@ -0,0 +1,49 @@ +package br.pro.delfino.drogaria.domain; + +import java.util.Date; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.JoinColumn; +import javax.persistence.ManyToOne; +import javax.persistence.Temporal; +import javax.persistence.TemporalType; + +@SuppressWarnings("serial") +@Entity +public class Historico extends GenericDomain { + @Column(nullable = false) + @Temporal(TemporalType.TIMESTAMP) + private Date horario; + + @Column(nullable = false, length = 500) + private String observacoes; + + @ManyToOne + @JoinColumn(nullable = false) + private Produto produto; + + public Date getHorario() { + return horario; + } + + public void setHorario(Date horario) { + this.horario = horario; + } + + public String getObservacoes() { + return observacoes; + } + + public void setObservacoes(String observacoes) { + this.observacoes = observacoes; + } + + public Produto getProduto() { + return produto; + } + + public void setProduto(Produto produto) { + this.produto = produto; + } +} diff --git a/292_PhaseListener_Controle_Acesso/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/ItemVenda.java b/292_PhaseListener_Controle_Acesso/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/ItemVenda.java new file mode 100644 index 0000000..590ab26 --- /dev/null +++ b/292_PhaseListener_Controle_Acesso/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/ItemVenda.java @@ -0,0 +1,58 @@ +package br.pro.delfino.drogaria.domain; + +import java.math.BigDecimal; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.JoinColumn; +import javax.persistence.ManyToOne; + +@SuppressWarnings("serial") +@Entity +public class ItemVenda extends GenericDomain { + @Column(nullable = false) + private Short quantidade; + + @Column(nullable = false, precision = 7, scale = 2) + private BigDecimal precoParcial; + + @ManyToOne + @JoinColumn(nullable = false) + private Produto produto; + + @ManyToOne + @JoinColumn(nullable = false) + private Venda venda; + + public Short getQuantidade() { + return quantidade; + } + + public void setQuantidade(Short quantidade) { + this.quantidade = quantidade; + } + + public BigDecimal getPrecoParcial() { + return precoParcial; + } + + public void setPrecoParcial(BigDecimal precoParcial) { + this.precoParcial = precoParcial; + } + + public Produto getProduto() { + return produto; + } + + public void setProduto(Produto produto) { + this.produto = produto; + } + + public Venda getVenda() { + return venda; + } + + public void setVenda(Venda venda) { + this.venda = venda; + } +} diff --git a/292_PhaseListener_Controle_Acesso/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Movimentacao.java b/292_PhaseListener_Controle_Acesso/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Movimentacao.java new file mode 100644 index 0000000..c3d6319 --- /dev/null +++ b/292_PhaseListener_Controle_Acesso/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Movimentacao.java @@ -0,0 +1,50 @@ +package br.pro.delfino.drogaria.domain; + +import java.math.BigDecimal; +import java.util.Date; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.JoinColumn; +import javax.persistence.ManyToOne; +import javax.persistence.Temporal; +import javax.persistence.TemporalType; + +@SuppressWarnings("serial") +@Entity +public class Movimentacao extends GenericDomain { + @Column(nullable = false) + @Temporal(TemporalType.TIMESTAMP) + private Date horario; + + @Column(nullable = false, precision = 7, scale = 2) + private BigDecimal valor; + + @ManyToOne + @JoinColumn(nullable = false) + private Caixa caixa; + + public Date getHorario() { + return horario; + } + + public void setHorario(Date horario) { + this.horario = horario; + } + + public BigDecimal getValor() { + return valor; + } + + public void setValor(BigDecimal valor) { + this.valor = valor; + } + + public Caixa getCaixa() { + return caixa; + } + + public void setCaixa(Caixa caixa) { + this.caixa = caixa; + } +} diff --git a/292_PhaseListener_Controle_Acesso/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Pessoa.java b/292_PhaseListener_Controle_Acesso/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Pessoa.java new file mode 100644 index 0000000..f354001 --- /dev/null +++ b/292_PhaseListener_Controle_Acesso/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Pessoa.java @@ -0,0 +1,143 @@ +package br.pro.delfino.drogaria.domain; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.JoinColumn; +import javax.persistence.ManyToOne; + +@SuppressWarnings("serial") +@Entity +public class Pessoa extends GenericDomain { + @Column(length = 50, nullable = false) + private String nome; + + @Column(length = 14, nullable = false) + private String cpf; + + @Column(length = 12, nullable = false) + private String rg; + + @Column(length = 100, nullable = false) + private String rua; + + @Column(nullable = false) + private Short numero; + + @Column(length = 30, nullable = false) + private String bairro; + + @Column(length = 10, nullable = false) + private String cep; + + @Column(length = 10) + private String complemento; + + @Column(length = 13, nullable = false) + private String telefone; + + @Column(length = 14, nullable = false) + private String celular; + + @Column(length = 100, nullable = false) + private String email; + + @ManyToOne + @JoinColumn(nullable = false) + private Cidade cidade; + + public String getNome() { + return nome; + } + + public void setNome(String nome) { + this.nome = nome; + } + + public String getCpf() { + return cpf; + } + + public void setCpf(String cpf) { + this.cpf = cpf; + } + + public String getRg() { + return rg; + } + + public void setRg(String rg) { + this.rg = rg; + } + + public String getRua() { + return rua; + } + + public void setRua(String rua) { + this.rua = rua; + } + + public Short getNumero() { + return numero; + } + + public void setNumero(Short numero) { + this.numero = numero; + } + + public String getBairro() { + return bairro; + } + + public void setBairro(String bairro) { + this.bairro = bairro; + } + + public String getCep() { + return cep; + } + + public void setCep(String cep) { + this.cep = cep; + } + + public String getComplemento() { + return complemento; + } + + public void setComplemento(String complemento) { + this.complemento = complemento; + } + + public String getTelefone() { + return telefone; + } + + public void setTelefone(String telefone) { + this.telefone = telefone; + } + + public String getCelular() { + return celular; + } + + public void setCelular(String celular) { + this.celular = celular; + } + + public String getEmail() { + return email; + } + + public void setEmail(String email) { + this.email = email; + } + + public Cidade getCidade() { + return cidade; + } + + public void setCidade(Cidade cidade) { + this.cidade = cidade; + } +} diff --git a/292_PhaseListener_Controle_Acesso/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Produto.java b/292_PhaseListener_Controle_Acesso/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Produto.java new file mode 100644 index 0000000..82049b0 --- /dev/null +++ b/292_PhaseListener_Controle_Acesso/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Produto.java @@ -0,0 +1,69 @@ +package br.pro.delfino.drogaria.domain; + +import java.math.BigDecimal; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.JoinColumn; +import javax.persistence.ManyToOne; +import javax.persistence.Transient; + +@SuppressWarnings("serial") +@Entity +public class Produto extends GenericDomain { + @Column(length = 80, nullable = false) + private String descricao; + + @Column(nullable = false) + private Short quantidade; + + @Column(nullable = false, precision = 6, scale = 2) + private BigDecimal preco; + + @ManyToOne + @JoinColumn(nullable = false) + private Fabricante fabricante; + + @Transient + private String caminho; + + public String getDescricao() { + return descricao; + } + + public void setDescricao(String descricao) { + this.descricao = descricao; + } + + public Short getQuantidade() { + return quantidade; + } + + public void setQuantidade(Short quantidade) { + this.quantidade = quantidade; + } + + public BigDecimal getPreco() { + return preco; + } + + public void setPreco(BigDecimal preco) { + this.preco = preco; + } + + public Fabricante getFabricante() { + return fabricante; + } + + public void setFabricante(Fabricante fabricante) { + this.fabricante = fabricante; + } + + public String getCaminho() { + return caminho; + } + + public void setCaminho(String caminho) { + this.caminho = caminho; + } +} diff --git a/292_PhaseListener_Controle_Acesso/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Usuario.java b/292_PhaseListener_Controle_Acesso/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Usuario.java new file mode 100644 index 0000000..ae51941 --- /dev/null +++ b/292_PhaseListener_Controle_Acesso/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Usuario.java @@ -0,0 +1,93 @@ +package br.pro.delfino.drogaria.domain; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.JoinColumn; +import javax.persistence.OneToOne; +import javax.persistence.Transient; + +@SuppressWarnings("serial") +@Entity +public class Usuario extends GenericDomain { + @Column(length = 32, nullable = false) + private String senha; + + @Transient + private String senhaSemCriptografia; + + @Column(nullable = false) + private Character tipo; + + @Column(nullable = false) + private Boolean ativo; + + @OneToOne + @JoinColumn(nullable = false) + private Pessoa pessoa; + + public String getSenha() { + return senha; + } + + public void setSenha(String senha) { + this.senha = senha; + } + + public String getSenhaSemCriptografia() { + return senhaSemCriptografia; + } + + public void setSenhaSemCriptografia(String senhaSemCriptografia) { + this.senhaSemCriptografia = senhaSemCriptografia; + } + + public Character getTipo() { + return tipo; + } + + @Transient + public String getTipoFormatado() { + String tipoFormatado = null; + + if (tipo == 'A') { + tipoFormatado = "Administrador"; + } else if (tipo == 'B') { + tipoFormatado = "Balconista"; + } else if (tipo == 'G') { + tipoFormatado = "Gerente"; + } + + return tipoFormatado; + } + + public void setTipo(Character tipo) { + this.tipo = tipo; + } + + public Boolean getAtivo() { + return ativo; + } + + @Transient + public String getAtivoFormatado(){ + String ativoFormatado = "Não"; + + if(ativo){ + ativoFormatado = "Sim"; + } + + return ativoFormatado; + } + + public void setAtivo(Boolean ativo) { + this.ativo = ativo; + } + + public Pessoa getPessoa() { + return pessoa; + } + + public void setPessoa(Pessoa pessoa) { + this.pessoa = pessoa; + } +} diff --git a/292_PhaseListener_Controle_Acesso/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Venda.java b/292_PhaseListener_Controle_Acesso/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Venda.java new file mode 100644 index 0000000..3f4c226 --- /dev/null +++ b/292_PhaseListener_Controle_Acesso/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Venda.java @@ -0,0 +1,61 @@ +package br.pro.delfino.drogaria.domain; + +import java.math.BigDecimal; +import java.util.Date; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.JoinColumn; +import javax.persistence.ManyToOne; +import javax.persistence.Temporal; +import javax.persistence.TemporalType; + +@SuppressWarnings("serial") +@Entity +public class Venda extends GenericDomain { + @Column(nullable = false) + @Temporal(TemporalType.TIMESTAMP) + private Date horario; + + @Column(nullable = false, precision = 7, scale = 2) + private BigDecimal precoTotal; + + @ManyToOne + private Cliente cliente; + + @ManyToOne + @JoinColumn(nullable = false) + private Funcionario funcionario; + + public Date getHorario() { + return horario; + } + + public void setHorario(Date horario) { + this.horario = horario; + } + + public BigDecimal getPrecoTotal() { + return precoTotal; + } + + public void setPrecoTotal(BigDecimal precoTotal) { + this.precoTotal = precoTotal; + } + + public Cliente getCliente() { + return cliente; + } + + public void setCliente(Cliente cliente) { + this.cliente = cliente; + } + + public Funcionario getFuncionario() { + return funcionario; + } + + public void setFuncionario(Funcionario funcionario) { + this.funcionario = funcionario; + } +} diff --git a/292_PhaseListener_Controle_Acesso/Drogaria/src/main/java/br/pro/delfino/drogaria/service/DrogariaService.java b/292_PhaseListener_Controle_Acesso/Drogaria/src/main/java/br/pro/delfino/drogaria/service/DrogariaService.java new file mode 100644 index 0000000..fbb1f2b --- /dev/null +++ b/292_PhaseListener_Controle_Acesso/Drogaria/src/main/java/br/pro/delfino/drogaria/service/DrogariaService.java @@ -0,0 +1,13 @@ +package br.pro.delfino.drogaria.service; + +import javax.ws.rs.GET; +import javax.ws.rs.Path; + +// http://localhost:8080/Drogaria/rest/drogaria +@Path("drogaria") +public class DrogariaService { + @GET + public String exibir(){ + return "Curso de Java"; + } +} diff --git a/292_PhaseListener_Controle_Acesso/Drogaria/src/main/java/br/pro/delfino/drogaria/service/FabricanteService.java b/292_PhaseListener_Controle_Acesso/Drogaria/src/main/java/br/pro/delfino/drogaria/service/FabricanteService.java new file mode 100644 index 0000000..1dbc0d1 --- /dev/null +++ b/292_PhaseListener_Controle_Acesso/Drogaria/src/main/java/br/pro/delfino/drogaria/service/FabricanteService.java @@ -0,0 +1,85 @@ +package br.pro.delfino.drogaria.service; + +import java.util.List; + +import javax.ws.rs.DELETE; +import javax.ws.rs.GET; +import javax.ws.rs.POST; +import javax.ws.rs.PUT; +import javax.ws.rs.Path; +import javax.ws.rs.PathParam; + +import com.google.gson.Gson; + +import br.pro.delfino.drogaria.dao.FabricanteDAO; +import br.pro.delfino.drogaria.domain.Fabricante; + +@Path("fabricante") +public class FabricanteService { + // http://127.0.0.1:8080/Drogaria/rest/fabricante + @GET + public String listar() { + FabricanteDAO fabricanteDAO = new FabricanteDAO(); + List fabricantes = fabricanteDAO.listar("descricao"); + + Gson gson = new Gson(); + String json = gson.toJson(fabricantes); + + return json; + } + + // http://127.0.0.1:8080/Drogaria/rest/fabricante/{codigo} + // http://127.0.0.1:8080/Drogaria/rest/fabricante/10 + @GET + @Path("{codigo}") + public String buscar(@PathParam("codigo") Long codigo) { + FabricanteDAO fabricanteDAO = new FabricanteDAO(); + Fabricante fabricante = fabricanteDAO.buscar(codigo); + + Gson gson = new Gson(); + String json = gson.toJson(fabricante); + + return json; + } + + // http://127.0.0.1:8080/Drogaria/rest/fabricante + @POST + public String salvar(String json) { + Gson gson = new Gson(); + Fabricante fabricante = gson.fromJson(json, Fabricante.class); + + FabricanteDAO fabricanteDAO = new FabricanteDAO(); + fabricanteDAO.merge(fabricante); + + String jsonSaida = gson.toJson(fabricante); + return jsonSaida; + } + + // http://127.0.0.1:8080/Drogaria/rest/fabricante + @PUT + public String editar(String json) { + Gson gson = new Gson(); + Fabricante fabricante = gson.fromJson(json, Fabricante.class); + + FabricanteDAO fabricanteDAO = new FabricanteDAO(); + fabricanteDAO.editar(fabricante); + + String jsonSaida = gson.toJson(fabricante); + return jsonSaida; + } + + // http://127.0.0.1:8080/Drogaria/rest/fabricante/{codigo} + // http://127.0.0.1:8080/Drogaria/rest/fabricante/10 + @DELETE + @Path("{codigo}") + public String excluir(@PathParam("codigo") Long codigo){ + FabricanteDAO fabricanteDAO = new FabricanteDAO(); + + Fabricante fabricante = fabricanteDAO.buscar(codigo); + fabricanteDAO.excluir(fabricante); + + Gson gson = new Gson(); + String saida = gson.toJson(fabricante); + return saida; + } +} diff --git a/292_PhaseListener_Controle_Acesso/Drogaria/src/main/java/br/pro/delfino/drogaria/service/ProdutoService.java b/292_PhaseListener_Controle_Acesso/Drogaria/src/main/java/br/pro/delfino/drogaria/service/ProdutoService.java new file mode 100644 index 0000000..4dfdf40 --- /dev/null +++ b/292_PhaseListener_Controle_Acesso/Drogaria/src/main/java/br/pro/delfino/drogaria/service/ProdutoService.java @@ -0,0 +1,39 @@ +package br.pro.delfino.drogaria.service; + +import java.util.List; + +import javax.ws.rs.GET; +import javax.ws.rs.POST; +import javax.ws.rs.Path; + +import com.google.gson.Gson; + +import br.pro.delfino.drogaria.dao.ProdutoDAO; +import br.pro.delfino.drogaria.domain.Produto; + +// http://127.0.0.1:8080/Drogaria/rest/produto +@Path("produto") +public class ProdutoService { + @GET + public String listar(){ + ProdutoDAO produtoDAO = new ProdutoDAO(); + List produtos = produtoDAO.listar("descricao"); + + Gson gson = new Gson(); + String json = gson.toJson(produtos); + + return json; + } + + @POST + public String salvar (String json){ + Gson gson = new Gson(); + Produto produto = gson.fromJson(json, Produto.class); + + ProdutoDAO produtoDAO = new ProdutoDAO(); + produto = produtoDAO.merge(produto); + + String jsonSaida = gson.toJson(produto); + return jsonSaida; + } +} diff --git a/292_PhaseListener_Controle_Acesso/Drogaria/src/main/java/br/pro/delfino/drogaria/util/AutenticacaoListener.java b/292_PhaseListener_Controle_Acesso/Drogaria/src/main/java/br/pro/delfino/drogaria/util/AutenticacaoListener.java new file mode 100644 index 0000000..530a78d --- /dev/null +++ b/292_PhaseListener_Controle_Acesso/Drogaria/src/main/java/br/pro/delfino/drogaria/util/AutenticacaoListener.java @@ -0,0 +1,46 @@ +package br.pro.delfino.drogaria.util; + +import javax.faces.event.PhaseEvent; +import javax.faces.event.PhaseId; +import javax.faces.event.PhaseListener; + +import org.omnifaces.util.Faces; + +import br.pro.delfino.drogaria.bean.AutenticacaoBean; +import br.pro.delfino.drogaria.domain.Usuario; + +@SuppressWarnings("serial") +public class AutenticacaoListener implements PhaseListener { + + @Override + public void afterPhase(PhaseEvent event) { + String paginaAtual = Faces.getViewId(); + + boolean ehPaginaDeAutenticacao = paginaAtual.contains("autenticacao.xhtml"); + + if(!ehPaginaDeAutenticacao){ + AutenticacaoBean autenticacaoBean = Faces.getSessionAttribute("autenticacaoBean"); + + if(autenticacaoBean == null){ + Faces.navigate("/pages/autenticacao.xhtml"); + return; + } + + Usuario usuario = autenticacaoBean.getUsuarioLogado(); + if(usuario == null){ + Faces.navigate("/pages/autenticacao.xhtml"); + return; + } + } + } + + @Override + public void beforePhase(PhaseEvent event) { + } + + @Override + public PhaseId getPhaseId() { + return PhaseId.RESTORE_VIEW; + } + +} diff --git a/292_PhaseListener_Controle_Acesso/Drogaria/src/main/java/br/pro/delfino/drogaria/util/DrogariaResourceConfig.java b/292_PhaseListener_Controle_Acesso/Drogaria/src/main/java/br/pro/delfino/drogaria/util/DrogariaResourceConfig.java new file mode 100644 index 0000000..2c997a9 --- /dev/null +++ b/292_PhaseListener_Controle_Acesso/Drogaria/src/main/java/br/pro/delfino/drogaria/util/DrogariaResourceConfig.java @@ -0,0 +1,13 @@ +package br.pro.delfino.drogaria.util; + +import javax.ws.rs.ApplicationPath; + +import org.glassfish.jersey.server.ResourceConfig; + +//http://localhost:8080/Drogaria/rest +@ApplicationPath("rest") +public class DrogariaResourceConfig extends ResourceConfig { + public DrogariaResourceConfig(){ + packages("br.pro.delfino.drogaria.service"); + } +} diff --git a/292_PhaseListener_Controle_Acesso/Drogaria/src/main/java/br/pro/delfino/drogaria/util/HibernateContexto.java b/292_PhaseListener_Controle_Acesso/Drogaria/src/main/java/br/pro/delfino/drogaria/util/HibernateContexto.java new file mode 100644 index 0000000..71869d7 --- /dev/null +++ b/292_PhaseListener_Controle_Acesso/Drogaria/src/main/java/br/pro/delfino/drogaria/util/HibernateContexto.java @@ -0,0 +1,18 @@ +package br.pro.delfino.drogaria.util; + +import javax.servlet.ServletContextEvent; +import javax.servlet.ServletContextListener; + +public class HibernateContexto implements ServletContextListener { + + @Override + public void contextDestroyed(ServletContextEvent event) { + HibernateUtil.getFabricaDeSessoes().close(); + } + + @Override + public void contextInitialized(ServletContextEvent event) { + HibernateUtil.getFabricaDeSessoes(); + } + +} diff --git a/292_PhaseListener_Controle_Acesso/Drogaria/src/main/java/br/pro/delfino/drogaria/util/HibernateUtil.java b/292_PhaseListener_Controle_Acesso/Drogaria/src/main/java/br/pro/delfino/drogaria/util/HibernateUtil.java new file mode 100644 index 0000000..693551b --- /dev/null +++ b/292_PhaseListener_Controle_Acesso/Drogaria/src/main/java/br/pro/delfino/drogaria/util/HibernateUtil.java @@ -0,0 +1,47 @@ +package br.pro.delfino.drogaria.util; + +import java.sql.Connection; +import java.sql.SQLException; + +import org.hibernate.Session; +import org.hibernate.SessionFactory; +import org.hibernate.boot.registry.StandardServiceRegistryBuilder; +import org.hibernate.cfg.Configuration; +import org.hibernate.jdbc.ReturningWork; +import org.hibernate.service.ServiceRegistry; + +public class HibernateUtil { + private static SessionFactory fabricaDeSessoes = criarFabricaDeSessoes(); + + public static SessionFactory getFabricaDeSessoes() { + return fabricaDeSessoes; + } + + public static Connection getConexao(){ + Session sessao = fabricaDeSessoes.openSession(); + + Connection conexao = sessao.doReturningWork(new ReturningWork() { + @Override + public Connection execute(Connection conn) throws SQLException { + return conn; + } + }); + + return conexao; + } + + private static SessionFactory criarFabricaDeSessoes() { + try { + Configuration configuracao = new Configuration().configure(); + + ServiceRegistry registro = new StandardServiceRegistryBuilder().applySettings(configuracao.getProperties()).build(); + + SessionFactory fabrica = configuracao.buildSessionFactory(registro); + + return fabrica; + } catch (Throwable ex) { + System.err.println("A fábrica de sessões não pode ser criada." + ex); + throw new ExceptionInInitializerError(ex); + } + } +} diff --git a/292_PhaseListener_Controle_Acesso/Drogaria/src/main/resources/hibernate.cfg.xml b/292_PhaseListener_Controle_Acesso/Drogaria/src/main/resources/hibernate.cfg.xml new file mode 100644 index 0000000..65f392e --- /dev/null +++ b/292_PhaseListener_Controle_Acesso/Drogaria/src/main/resources/hibernate.cfg.xml @@ -0,0 +1,51 @@ + + + + + + + + + + com.mysql.jdbc.Driver + jdbc:mysql://127.0.0.1:3306/drogaria + root + q1w2e3r4 + + + 1 + + + org.hibernate.dialect.MySQL5InnoDBDialect + + + thread + + + org.hibernate.cache.internal.NoCacheProvider + + + true + + + update + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/292_PhaseListener_Controle_Acesso/Drogaria/src/main/webapp/WEB-INF/.faces-config.xml.jsfdia b/292_PhaseListener_Controle_Acesso/Drogaria/src/main/webapp/WEB-INF/.faces-config.xml.jsfdia new file mode 100644 index 0000000..2155d94 --- /dev/null +++ b/292_PhaseListener_Controle_Acesso/Drogaria/src/main/webapp/WEB-INF/.faces-config.xml.jsfdia @@ -0,0 +1,2 @@ + + diff --git a/292_PhaseListener_Controle_Acesso/Drogaria/src/main/webapp/WEB-INF/faces-config.xml b/292_PhaseListener_Controle_Acesso/Drogaria/src/main/webapp/WEB-INF/faces-config.xml new file mode 100644 index 0000000..ad8945b --- /dev/null +++ b/292_PhaseListener_Controle_Acesso/Drogaria/src/main/webapp/WEB-INF/faces-config.xml @@ -0,0 +1,12 @@ + + + + + + + br.pro.delfino.drogaria.util.AutenticacaoListener + + + diff --git a/292_PhaseListener_Controle_Acesso/Drogaria/src/main/webapp/WEB-INF/web.xml b/292_PhaseListener_Controle_Acesso/Drogaria/src/main/webapp/WEB-INF/web.xml new file mode 100644 index 0000000..7e03633 --- /dev/null +++ b/292_PhaseListener_Controle_Acesso/Drogaria/src/main/webapp/WEB-INF/web.xml @@ -0,0 +1,52 @@ + + + + Drogaria + + + + javax.faces.CONFIG_FILES + /WEB-INF/faces-config.xml + + + + + javax.faces.PROJECT_STAGE + Development + + + + + primefaces.THEME + blitzer + + + + + primefaces.UPLOADER + native + + + + + br.pro.delfino.drogaria.util.HibernateContexto + + + + + Faces Servlet + javax.faces.webapp.FacesServlet + 1 + + + Faces Servlet + *.xhtml + + + + + pages/principal.xhtml + + diff --git a/292_PhaseListener_Controle_Acesso/Drogaria/src/main/webapp/pages/autenticacao.xhtml b/292_PhaseListener_Controle_Acesso/Drogaria/src/main/webapp/pages/autenticacao.xhtml new file mode 100644 index 0000000..e41a833 --- /dev/null +++ b/292_PhaseListener_Controle_Acesso/Drogaria/src/main/webapp/pages/autenticacao.xhtml @@ -0,0 +1,36 @@ + + + + + + Autenticação + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/292_PhaseListener_Controle_Acesso/Drogaria/src/main/webapp/pages/caixa.xhtml b/292_PhaseListener_Controle_Acesso/Drogaria/src/main/webapp/pages/caixa.xhtml new file mode 100644 index 0000000..526e766 --- /dev/null +++ b/292_PhaseListener_Controle_Acesso/Drogaria/src/main/webapp/pages/caixa.xhtml @@ -0,0 +1,50 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/292_PhaseListener_Controle_Acesso/Drogaria/src/main/webapp/pages/cidades.xhtml b/292_PhaseListener_Controle_Acesso/Drogaria/src/main/webapp/pages/cidades.xhtml new file mode 100644 index 0000000..504f3a3 --- /dev/null +++ b/292_PhaseListener_Controle_Acesso/Drogaria/src/main/webapp/pages/cidades.xhtml @@ -0,0 +1,100 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/292_PhaseListener_Controle_Acesso/Drogaria/src/main/webapp/pages/clientes.xhtml b/292_PhaseListener_Controle_Acesso/Drogaria/src/main/webapp/pages/clientes.xhtml new file mode 100644 index 0000000..4e3cfb5 --- /dev/null +++ b/292_PhaseListener_Controle_Acesso/Drogaria/src/main/webapp/pages/clientes.xhtml @@ -0,0 +1,94 @@ + + + + + + Clientes + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/292_PhaseListener_Controle_Acesso/Drogaria/src/main/webapp/pages/estados.xhtml b/292_PhaseListener_Controle_Acesso/Drogaria/src/main/webapp/pages/estados.xhtml new file mode 100644 index 0000000..0cddf5e --- /dev/null +++ b/292_PhaseListener_Controle_Acesso/Drogaria/src/main/webapp/pages/estados.xhtml @@ -0,0 +1,90 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/292_PhaseListener_Controle_Acesso/Drogaria/src/main/webapp/pages/fabricantes.xhtml b/292_PhaseListener_Controle_Acesso/Drogaria/src/main/webapp/pages/fabricantes.xhtml new file mode 100644 index 0000000..3904db0 --- /dev/null +++ b/292_PhaseListener_Controle_Acesso/Drogaria/src/main/webapp/pages/fabricantes.xhtml @@ -0,0 +1,78 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/292_PhaseListener_Controle_Acesso/Drogaria/src/main/webapp/pages/historico.xhtml b/292_PhaseListener_Controle_Acesso/Drogaria/src/main/webapp/pages/historico.xhtml new file mode 100644 index 0000000..184a864 --- /dev/null +++ b/292_PhaseListener_Controle_Acesso/Drogaria/src/main/webapp/pages/historico.xhtml @@ -0,0 +1,64 @@ + + + + + + Histórico + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/292_PhaseListener_Controle_Acesso/Drogaria/src/main/webapp/pages/pessoas.xhtml b/292_PhaseListener_Controle_Acesso/Drogaria/src/main/webapp/pages/pessoas.xhtml new file mode 100644 index 0000000..7d68e8c --- /dev/null +++ b/292_PhaseListener_Controle_Acesso/Drogaria/src/main/webapp/pages/pessoas.xhtml @@ -0,0 +1,162 @@ + + + + + + Pessoas + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/292_PhaseListener_Controle_Acesso/Drogaria/src/main/webapp/pages/principal.xhtml b/292_PhaseListener_Controle_Acesso/Drogaria/src/main/webapp/pages/principal.xhtml new file mode 100644 index 0000000..726842c --- /dev/null +++ b/292_PhaseListener_Controle_Acesso/Drogaria/src/main/webapp/pages/principal.xhtml @@ -0,0 +1,14 @@ + + + + + + + + + \ No newline at end of file diff --git a/292_PhaseListener_Controle_Acesso/Drogaria/src/main/webapp/pages/produtos.xhtml b/292_PhaseListener_Controle_Acesso/Drogaria/src/main/webapp/pages/produtos.xhtml new file mode 100644 index 0000000..56c5db4 --- /dev/null +++ b/292_PhaseListener_Controle_Acesso/Drogaria/src/main/webapp/pages/produtos.xhtml @@ -0,0 +1,141 @@ + + + + + + Produtos + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/292_PhaseListener_Controle_Acesso/Drogaria/src/main/webapp/pages/produtosEdicao.xhtml b/292_PhaseListener_Controle_Acesso/Drogaria/src/main/webapp/pages/produtosEdicao.xhtml new file mode 100644 index 0000000..9eae78a --- /dev/null +++ b/292_PhaseListener_Controle_Acesso/Drogaria/src/main/webapp/pages/produtosEdicao.xhtml @@ -0,0 +1,67 @@ + + + + + + + + + + + + Produtos + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/292_PhaseListener_Controle_Acesso/Drogaria/src/main/webapp/pages/produtosListagem.xhtml b/292_PhaseListener_Controle_Acesso/Drogaria/src/main/webapp/pages/produtosListagem.xhtml new file mode 100644 index 0000000..2b30417 --- /dev/null +++ b/292_PhaseListener_Controle_Acesso/Drogaria/src/main/webapp/pages/produtosListagem.xhtml @@ -0,0 +1,59 @@ + + + + + + + + + + + Produtos + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/292_PhaseListener_Controle_Acesso/Drogaria/src/main/webapp/pages/testeJSF.xhtml b/292_PhaseListener_Controle_Acesso/Drogaria/src/main/webapp/pages/testeJSF.xhtml new file mode 100644 index 0000000..c20659b --- /dev/null +++ b/292_PhaseListener_Controle_Acesso/Drogaria/src/main/webapp/pages/testeJSF.xhtml @@ -0,0 +1,12 @@ + + + + + + Teste JSF + + + + + \ No newline at end of file diff --git a/292_PhaseListener_Controle_Acesso/Drogaria/src/main/webapp/pages/testePrimeFaces.xhtml b/292_PhaseListener_Controle_Acesso/Drogaria/src/main/webapp/pages/testePrimeFaces.xhtml new file mode 100644 index 0000000..6c4d434 --- /dev/null +++ b/292_PhaseListener_Controle_Acesso/Drogaria/src/main/webapp/pages/testePrimeFaces.xhtml @@ -0,0 +1,14 @@ + + + + + + Teste PrimeFaces + + + + + \ No newline at end of file diff --git a/292_PhaseListener_Controle_Acesso/Drogaria/src/main/webapp/pages/usuarios.xhtml b/292_PhaseListener_Controle_Acesso/Drogaria/src/main/webapp/pages/usuarios.xhtml new file mode 100644 index 0000000..45dd761 --- /dev/null +++ b/292_PhaseListener_Controle_Acesso/Drogaria/src/main/webapp/pages/usuarios.xhtml @@ -0,0 +1,97 @@ + + + + + + Usuários + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/292_PhaseListener_Controle_Acesso/Drogaria/src/main/webapp/pages/vendas.xhtml b/292_PhaseListener_Controle_Acesso/Drogaria/src/main/webapp/pages/vendas.xhtml new file mode 100644 index 0000000..4485892 --- /dev/null +++ b/292_PhaseListener_Controle_Acesso/Drogaria/src/main/webapp/pages/vendas.xhtml @@ -0,0 +1,156 @@ + + + + + + Vendas + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/292_PhaseListener_Controle_Acesso/Drogaria/src/main/webapp/reports/estados.jasper b/292_PhaseListener_Controle_Acesso/Drogaria/src/main/webapp/reports/estados.jasper new file mode 100644 index 0000000..96a1278 Binary files /dev/null and b/292_PhaseListener_Controle_Acesso/Drogaria/src/main/webapp/reports/estados.jasper differ diff --git a/292_PhaseListener_Controle_Acesso/Drogaria/src/main/webapp/reports/estados.jrxml b/292_PhaseListener_Controle_Acesso/Drogaria/src/main/webapp/reports/estados.jrxml new file mode 100644 index 0000000..76da981 --- /dev/null +++ b/292_PhaseListener_Controle_Acesso/Drogaria/src/main/webapp/reports/estados.jrxml @@ -0,0 +1,102 @@ + + + + + + + + + + + + + + + + + + + + <band height="80" splitType="Stretch"> + <image hAlign="Center" vAlign="Middle"> + <reportElement x="0" y="0" width="555" height="80" uuid="6f3208e9-d291-48b3-b13d-3ec9ef72cd3e"> + <property name="com.jaspersoft.studio.unit.width" value="pixel"/> + </reportElement> + <imageExpression><![CDATA["C:/Programação Web com Java/Workspace/Drogaria/src/main/webapp/resources/images/banner.jpg"]]></imageExpression> + </image> + </band> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/292_PhaseListener_Controle_Acesso/Drogaria/src/main/webapp/reports/produtos.jasper b/292_PhaseListener_Controle_Acesso/Drogaria/src/main/webapp/reports/produtos.jasper new file mode 100644 index 0000000..ad55e5f Binary files /dev/null and b/292_PhaseListener_Controle_Acesso/Drogaria/src/main/webapp/reports/produtos.jasper differ diff --git a/292_PhaseListener_Controle_Acesso/Drogaria/src/main/webapp/reports/produtos.jrxml b/292_PhaseListener_Controle_Acesso/Drogaria/src/main/webapp/reports/produtos.jrxml new file mode 100644 index 0000000..800aed0 --- /dev/null +++ b/292_PhaseListener_Controle_Acesso/Drogaria/src/main/webapp/reports/produtos.jrxml @@ -0,0 +1,130 @@ + + + + + + + + + + + + + + + + + + + + + <band height="79" splitType="Stretch"> + <image hAlign="Center"> + <reportElement x="0" y="0" width="555" height="79" uuid="727feda0-73ba-4c27-aa2c-a431492bd3d6"> + <property name="com.jaspersoft.studio.unit.width" value="pixel"/> + </reportElement> + <imageExpression><![CDATA["C:/Programação Web com Java/Workspace/Drogaria/src/main/webapp/resources/images/banner.jpg"]]></imageExpression> + </image> + </band> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/292_PhaseListener_Controle_Acesso/Drogaria/src/main/webapp/resources/css/estilos.css b/292_PhaseListener_Controle_Acesso/Drogaria/src/main/webapp/resources/css/estilos.css new file mode 100644 index 0000000..4acdd7f --- /dev/null +++ b/292_PhaseListener_Controle_Acesso/Drogaria/src/main/webapp/resources/css/estilos.css @@ -0,0 +1,19 @@ +@CHARSET "UTF-8"; + +.imagemCentralizada { + display: block; + margin-left: auto; + margin-right: auto; +} + +.divTopo { + padding-bottom: 5px; +} + +.divCabecalho { + padding-bottom: 5px; +} + +.ui-widget, .ui-widget .ui-widget { + font-size: 100% !important; +} \ No newline at end of file diff --git a/292_PhaseListener_Controle_Acesso/Drogaria/src/main/webapp/resources/images/banner.jpg b/292_PhaseListener_Controle_Acesso/Drogaria/src/main/webapp/resources/images/banner.jpg new file mode 100644 index 0000000..f58cc21 Binary files /dev/null and b/292_PhaseListener_Controle_Acesso/Drogaria/src/main/webapp/resources/images/banner.jpg differ diff --git a/292_PhaseListener_Controle_Acesso/Drogaria/src/main/webapp/resources/js/scripts.js b/292_PhaseListener_Controle_Acesso/Drogaria/src/main/webapp/resources/js/scripts.js new file mode 100644 index 0000000..e39ad9b --- /dev/null +++ b/292_PhaseListener_Controle_Acesso/Drogaria/src/main/webapp/resources/js/scripts.js @@ -0,0 +1,26 @@ +PrimeFaces.locales['pt_BR'] = { + closeText: 'Fechar', + prevText: 'Anterior', + nextText: 'Próximo', + currentText: 'Começo', + monthNames: ['Janeiro','Fevereiro','Março','Abril','Maio','Junho','Julho','Agosto','Setembro','Outubro','Novembro','Dezembro'], + monthNamesShort: ['Jan','Fev','Mar','Abr','Mai','Jun', 'Jul','Ago','Set','Out','Nov','Dez'], + dayNames: ['Domingo','Segunda','Terça','Quarta','Quinta','Sexta','Sábado'], + dayNamesShort: ['Dom','Seg','Ter','Qua','Qui','Sex','Sáb'], + dayNamesMin: ['D','S','T','Q','Q','S','S'], + weekHeader: 'Semana', + firstDay: 0, + isRTL: false, + showMonthAfterYear: false, + yearSuffix: '', + timeOnlyTitle: 'Só Horas', + timeText: 'Tempo', + hourText: 'Hora', + minuteText: 'Minuto', + secondText: 'Segundo', + ampm: false, + month: 'Mês', + week: 'Semana', + day: 'Dia', + allDayText : 'Todo o Dia' +}; \ No newline at end of file diff --git a/292_PhaseListener_Controle_Acesso/Drogaria/src/main/webapp/templates/modelo.xhtml b/292_PhaseListener_Controle_Acesso/Drogaria/src/main/webapp/templates/modelo.xhtml new file mode 100644 index 0000000..62d3d1c --- /dev/null +++ b/292_PhaseListener_Controle_Acesso/Drogaria/src/main/webapp/templates/modelo.xhtml @@ -0,0 +1,55 @@ + + + + + + SiGDro + + + + + +
+
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+
+ \ No newline at end of file diff --git a/292_PhaseListener_Controle_Acesso/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/CaixaDAOTest.java b/292_PhaseListener_Controle_Acesso/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/CaixaDAOTest.java new file mode 100644 index 0000000..b5e6156 --- /dev/null +++ b/292_PhaseListener_Controle_Acesso/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/CaixaDAOTest.java @@ -0,0 +1,33 @@ +package br.pro.delfino.drogaria.dao; + +import java.math.BigDecimal; +import java.text.ParseException; +import java.text.SimpleDateFormat; + +import org.junit.Assert; +import org.junit.Ignore; +import org.junit.Test; + +import br.pro.delfino.drogaria.domain.Caixa; + +public class CaixaDAOTest { + @Test + @Ignore + public void salvar() throws ParseException { + Caixa caixa = new Caixa(); + caixa.setDataAbertura(new SimpleDateFormat("dd/MM/yyyy").parse("14/12/2015")); + caixa.setValorAbertura(new BigDecimal("100.00")); + + CaixaDAO caixaDAO = new CaixaDAO(); + caixaDAO.salvar(caixa); + } + + @Test + @Ignore + public void buscar() throws ParseException { + CaixaDAO caixaDAO = new CaixaDAO(); + Caixa caixa = caixaDAO.buscar(new SimpleDateFormat("dd/MM/yyyy").parse("13/12/2015")); + System.out.println(caixa); + Assert.assertNull(caixa); + } +} diff --git a/292_PhaseListener_Controle_Acesso/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/CidadeDAOTest.java b/292_PhaseListener_Controle_Acesso/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/CidadeDAOTest.java new file mode 100644 index 0000000..ec59599 --- /dev/null +++ b/292_PhaseListener_Controle_Acesso/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/CidadeDAOTest.java @@ -0,0 +1,130 @@ +package br.pro.delfino.drogaria.dao; + +import java.util.List; + +import org.junit.Ignore; +import org.junit.Test; + +import br.pro.delfino.drogaria.domain.Cidade; +import br.pro.delfino.drogaria.domain.Estado; + +public class CidadeDAOTest { + @Test + @Ignore + public void salvar() { + Long codigoEstado = 1L; + + EstadoDAO estadoDAO = new EstadoDAO(); + + Estado estado = estadoDAO.buscar(codigoEstado); + + Cidade cidade = new Cidade(); + cidade.setNome("Marília"); + cidade.setEstado(estado); + + CidadeDAO cidadeDAO = new CidadeDAO(); + cidadeDAO.salvar(cidade); + } + + @Test + @Ignore + public void listar() { + CidadeDAO cidadeDAO = new CidadeDAO(); + List resultado = cidadeDAO.listar(); + + for (Cidade cidade : resultado) { + System.out.println("Código da Cidade: " + cidade.getCodigo()); + System.out.println("Nome da Cidade: " + cidade.getNome()); + System.out.println("Código do Estado: " + cidade.getEstado().getCodigo()); + System.out.println("Sigla do Estado: " + cidade.getEstado().getSigla()); + System.out.println("Nome do Estado: " + cidade.getEstado().getNome()); + System.out.println(); + } + } + + @Test + @Ignore + public void buscar(){ + Long codigo = 7L; + + CidadeDAO cidadeDAO = new CidadeDAO(); + Cidade cidade = cidadeDAO.buscar(codigo); + + System.out.println("Código da Cidade: " + cidade.getCodigo()); + System.out.println("Nome da Cidade: " + cidade.getNome()); + System.out.println("Código do Estado: " + cidade.getEstado().getCodigo()); + System.out.println("Sigla do Estado: " + cidade.getEstado().getSigla()); + System.out.println("Nome do Estado: " + cidade.getEstado().getNome()); + } + + @Test + @Ignore + public void excluir(){ + Long codigo = 7L; + + CidadeDAO cidadeDAO = new CidadeDAO(); + Cidade cidade = cidadeDAO.buscar(codigo); + + cidadeDAO.excluir(cidade); + + System.out.println("Cidade Removida"); + System.out.println("Código da Cidade: " + cidade.getCodigo()); + System.out.println("Nome da Cidade: " + cidade.getNome()); + System.out.println("Código do Estado: " + cidade.getEstado().getCodigo()); + System.out.println("Sigla do Estado: " + cidade.getEstado().getSigla()); + System.out.println("Nome do Estado: " + cidade.getEstado().getNome()); + } + + @Test + @Ignore + public void editar(){ + Long codigoCidade = 6L; + Long codigoEstado = 11L; + + EstadoDAO estadoDAO = new EstadoDAO(); + Estado estado = estadoDAO.buscar(codigoEstado); + + System.out.println("Código do Estado: " + estado.getCodigo()); + System.out.println("Sigla do Estado: " + estado.getSigla()); + System.out.println("Nome do Estado: " + estado.getNome()); + + CidadeDAO cidadeDAO = new CidadeDAO(); + Cidade cidade = cidadeDAO.buscar(codigoCidade); + + System.out.println("Cidade A Ser Editada"); + System.out.println("Código da Cidade: " + cidade.getCodigo()); + System.out.println("Nome da Cidade: " + cidade.getNome()); + System.out.println("Código do Estado: " + cidade.getEstado().getCodigo()); + System.out.println("Sigla do Estado: " + cidade.getEstado().getSigla()); + System.out.println("Nome do Estado: " + cidade.getEstado().getNome()); + + cidade.setNome("Guarapuava"); + cidade.setEstado(estado); + + cidadeDAO.editar(cidade); + + System.out.println("Cidade Editada"); + System.out.println("Código da Cidade: " + cidade.getCodigo()); + System.out.println("Nome da Cidade: " + cidade.getNome()); + System.out.println("Código do Estado: " + cidade.getEstado().getCodigo()); + System.out.println("Sigla do Estado: " + cidade.getEstado().getSigla()); + System.out.println("Nome do Estado: " + cidade.getEstado().getNome()); + } + + @Test + public void buscarPorEstado() { + Long estadoCodigo = 3L; + + CidadeDAO cidadeDAO = new CidadeDAO(); + List resultado = cidadeDAO.buscarPorEstado(estadoCodigo); + + for (Cidade cidade : resultado) { + System.out.println("Código da Cidade: " + cidade.getCodigo()); + System.out.println("Nome da Cidade: " + cidade.getNome()); + System.out.println("Código do Estado: " + cidade.getEstado().getCodigo()); + System.out.println("Sigla do Estado: " + cidade.getEstado().getSigla()); + System.out.println("Nome do Estado: " + cidade.getEstado().getNome()); + System.out.println(); + } + } +} diff --git a/292_PhaseListener_Controle_Acesso/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/ClienteDAOTest.java b/292_PhaseListener_Controle_Acesso/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/ClienteDAOTest.java new file mode 100644 index 0000000..4d557d9 --- /dev/null +++ b/292_PhaseListener_Controle_Acesso/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/ClienteDAOTest.java @@ -0,0 +1,29 @@ +package br.pro.delfino.drogaria.dao; + +import java.text.ParseException; +import java.text.SimpleDateFormat; + +import org.junit.Ignore; +import org.junit.Test; + +import br.pro.delfino.drogaria.domain.Cliente; +import br.pro.delfino.drogaria.domain.Pessoa; + +public class ClienteDAOTest { + @Test + @Ignore + public void salvar() throws ParseException { + PessoaDAO pessoaDAO = new PessoaDAO(); + Pessoa pessoa = pessoaDAO.buscar(2L); + + Cliente cliente = new Cliente(); + cliente.setDataCadastro(new SimpleDateFormat("dd/MM/yyyy").parse("09/06/2015")); + cliente.setLiberado(false); + cliente.setPessoa(pessoa); + + ClienteDAO clienteDAO = new ClienteDAO(); + clienteDAO.salvar(cliente); + + System.out.println("Cliente salvo com sucesso."); + } +} diff --git a/292_PhaseListener_Controle_Acesso/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/EstadoDAOTest.java b/292_PhaseListener_Controle_Acesso/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/EstadoDAOTest.java new file mode 100644 index 0000000..f84a086 --- /dev/null +++ b/292_PhaseListener_Controle_Acesso/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/EstadoDAOTest.java @@ -0,0 +1,88 @@ +package br.pro.delfino.drogaria.dao; + +import java.util.List; + +import org.junit.Ignore; +import org.junit.Test; + +import br.pro.delfino.drogaria.domain.Estado; + +public class EstadoDAOTest { + @Test + @Ignore + public void salvar() { + Estado estado = new Estado(); + estado.setNome("Rio Grande do Sul"); + estado.setSigla("RS"); + + EstadoDAO estadoDAO = new EstadoDAO(); + estadoDAO.salvar(estado); + } + + @Test + @Ignore + public void listar() { + EstadoDAO estadoDAO = new EstadoDAO(); + List resultado = estadoDAO.listar(); + + System.out.println("Total de Registros Encontrados: " + resultado.size()); + + for (Estado estado : resultado) { + System.out.println(estado.getCodigo() + " - " + estado.getSigla() + " - " + estado.getNome()); + } + } + + @Test + @Ignore + public void buscar(){ + Long codigo = 3L; + + EstadoDAO estadoDAO = new EstadoDAO(); + Estado estado = estadoDAO.buscar(codigo); + + if(estado == null){ + System.out.println("Nenhum registro encontrado"); + }else{ + System.out.println("Registro encontrado:"); + System.out.println(estado.getCodigo() + " - " + estado.getSigla() + " - " + estado.getNome()); + } + } + + @Test + @Ignore + public void excluir(){ + Long codigo = 1L; + EstadoDAO estadoDAO = new EstadoDAO(); + Estado estado = estadoDAO.buscar(codigo); + + if(estado == null){ + System.out.println("Nenhum registro encontrado"); + }else{ + estadoDAO.excluir(estado); + System.out.println("Registro removido:"); + System.out.println(estado.getCodigo() + " - " + estado.getSigla() + " - " + estado.getNome()); + } + } + + @Test + @Ignore + public void editar(){ + Long codigo = 10L; + EstadoDAO estadoDAO = new EstadoDAO(); + Estado estado = estadoDAO.buscar(codigo); + + if(estado == null){ + System.out.println("Nenhum registro encontrado"); + }else{ + System.out.println("Registro editado - Antes:"); + System.out.println(estado.getCodigo() + " - " + estado.getSigla() + " - " + estado.getNome()); + + estado.setNome("Santa Catarina"); + estado.setSigla("SC"); + estadoDAO.editar(estado); + + System.out.println("Registro editado - Depois:"); + System.out.println(estado.getCodigo() + " - " + estado.getSigla() + " - " + estado.getNome()); + } + } +} diff --git a/292_PhaseListener_Controle_Acesso/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/FabricanteDAOTest.java b/292_PhaseListener_Controle_Acesso/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/FabricanteDAOTest.java new file mode 100644 index 0000000..56fb124 --- /dev/null +++ b/292_PhaseListener_Controle_Acesso/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/FabricanteDAOTest.java @@ -0,0 +1,63 @@ +package br.pro.delfino.drogaria.dao; + +import java.util.List; + +import org.junit.Ignore; +import org.junit.Test; + +import br.pro.delfino.drogaria.domain.Fabricante; + +public class FabricanteDAOTest { + @Test + @Ignore + public void salvar() { + Fabricante fabricante = new Fabricante(); + fabricante.setDescricao("Aché"); + + FabricanteDAO fabricanteDAO = new FabricanteDAO(); + fabricanteDAO.salvar(fabricante); + } + + @Test + @Ignore + public void listar() { + FabricanteDAO FabricanteDAO = new FabricanteDAO(); + List resultado = FabricanteDAO.listar(); + + System.out.println("Total de Registros Encontrados: " + resultado.size()); + + for (Fabricante fabricante : resultado) { + System.out.println(fabricante.getCodigo() + " - " + fabricante.getDescricao()); + } + } + + @Test + @Ignore + public void buscar(){ + Long codigo = 3L; + + FabricanteDAO fabricanteDAO = new FabricanteDAO(); + Fabricante fabricante = fabricanteDAO.buscar(codigo); + + if(fabricante == null){ + System.out.println("Nenhum registro encontrado"); + }else{ + System.out.println("Registro encontrado:"); + System.out.println(fabricante.getCodigo() + " - " + fabricante.getDescricao()); + } + } + + @Test + @Ignore + public void merge() { + //Fabricante fabricante = new Fabricante(); + //fabricante.setDescricao("Fabricante A"); + //FabricanteDAO fabricanteDAO = new FabricanteDAO(); + //fabricanteDAO.merge(fabricante); + + FabricanteDAO fabricanteDAO = new FabricanteDAO(); + Fabricante fabricante = fabricanteDAO.buscar(5L); + fabricante.setDescricao("Fabricante B"); + fabricanteDAO.merge(fabricante); + } +} diff --git a/292_PhaseListener_Controle_Acesso/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/FuncionarioDAOTest.java b/292_PhaseListener_Controle_Acesso/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/FuncionarioDAOTest.java new file mode 100644 index 0000000..06cfff7 --- /dev/null +++ b/292_PhaseListener_Controle_Acesso/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/FuncionarioDAOTest.java @@ -0,0 +1,5 @@ +package br.pro.delfino.drogaria.dao; + +public class FuncionarioDAOTest { + +} diff --git a/292_PhaseListener_Controle_Acesso/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/ProdutoDAOTest.java b/292_PhaseListener_Controle_Acesso/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/ProdutoDAOTest.java new file mode 100644 index 0000000..36f8563 --- /dev/null +++ b/292_PhaseListener_Controle_Acesso/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/ProdutoDAOTest.java @@ -0,0 +1,29 @@ +package br.pro.delfino.drogaria.dao; + +import java.math.BigDecimal; + +import org.junit.Ignore; +import org.junit.Test; + +import br.pro.delfino.drogaria.domain.Fabricante; +import br.pro.delfino.drogaria.domain.Produto; + +public class ProdutoDAOTest { + @Test + @Ignore + public void salvar(){ + FabricanteDAO fabricanteDAO = new FabricanteDAO(); + Fabricante fabricante = fabricanteDAO.buscar(new Long("3")); + + Produto produto = new Produto(); + produto.setDescricao("Cataflan 50mg com 20 Comprimidos"); + produto.setFabricante(fabricante); + produto.setPreco(new BigDecimal("13.70")); + produto.setQuantidade(new Short("7")); + + ProdutoDAO produtoDAO = new ProdutoDAO(); + produtoDAO.salvar(produto); + + System.out.println("Produto salvo com sucesso"); + } +} diff --git a/292_PhaseListener_Controle_Acesso/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/UsuarioDAOTest.java b/292_PhaseListener_Controle_Acesso/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/UsuarioDAOTest.java new file mode 100644 index 0000000..c567ec8 --- /dev/null +++ b/292_PhaseListener_Controle_Acesso/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/UsuarioDAOTest.java @@ -0,0 +1,47 @@ +package br.pro.delfino.drogaria.dao; + +import org.apache.shiro.crypto.hash.SimpleHash; +import org.junit.Ignore; +import org.junit.Test; + +import br.pro.delfino.drogaria.domain.Pessoa; +import br.pro.delfino.drogaria.domain.Usuario; + +public class UsuarioDAOTest { + @Test + @Ignore + public void salvar(){ + PessoaDAO pessoaDAO = new PessoaDAO(); + Pessoa pessoa = pessoaDAO.buscar(3L); + + System.out.println("Pessoa Encontrada"); + System.out.println("Nome: " + pessoa.getNome()); + System.out.println("CPF: " + pessoa.getCpf()); + + Usuario usuario = new Usuario(); + usuario.setAtivo(true); + usuario.setPessoa(pessoa); + usuario.setSenhaSemCriptografia("q1w2e3r4"); + + SimpleHash hash = new SimpleHash("md5", usuario.getSenhaSemCriptografia()); + usuario.setSenha(hash.toHex()); + + usuario.setTipo('B'); + + UsuarioDAO usuarioDAO = new UsuarioDAO(); + usuarioDAO.salvar(usuario); + + System.out.println("Usuário salvo com sucesso."); + } + + @Test + public void autenticar(){ + String cpf = "999.999.999-99"; + String senha = "12345678"; + + UsuarioDAO usuarioDAO = new UsuarioDAO(); + Usuario usuario = usuarioDAO.autenticar(cpf, senha); + + System.out.println("Usuário autentica: " + usuario); + } +} diff --git a/292_PhaseListener_Controle_Acesso/Drogaria/src/test/java/br/pro/delfino/drogaria/util/HibernateUtilTest.java b/292_PhaseListener_Controle_Acesso/Drogaria/src/test/java/br/pro/delfino/drogaria/util/HibernateUtilTest.java new file mode 100644 index 0000000..75776e0 --- /dev/null +++ b/292_PhaseListener_Controle_Acesso/Drogaria/src/test/java/br/pro/delfino/drogaria/util/HibernateUtilTest.java @@ -0,0 +1,13 @@ +package br.pro.delfino.drogaria.util; + +import org.hibernate.Session; +import org.junit.Test; + +public class HibernateUtilTest { + @Test + public void conectar(){ + Session sessao = HibernateUtil.getFabricaDeSessoes().openSession(); + sessao.close(); + HibernateUtil.getFabricaDeSessoes().close(); + } +} diff --git a/293_Permissoes_Ocultamento_Componentes/Drogaria/.tern-project b/293_Permissoes_Ocultamento_Componentes/Drogaria/.tern-project new file mode 100644 index 0000000..b6f48dd --- /dev/null +++ b/293_Permissoes_Ocultamento_Componentes/Drogaria/.tern-project @@ -0,0 +1 @@ +{"ide":{},"libs":["ecma5","browser"],"plugins":{"guess-types":{},"angular":{}}} \ No newline at end of file diff --git a/293_Permissoes_Ocultamento_Componentes/Drogaria/pom.xml b/293_Permissoes_Ocultamento_Componentes/Drogaria/pom.xml new file mode 100644 index 0000000..39b1e60 --- /dev/null +++ b/293_Permissoes_Ocultamento_Componentes/Drogaria/pom.xml @@ -0,0 +1,132 @@ + + 4.0.0 + br.pro.delfino.drogaria + Drogaria + 1.0 + war + + + + UTF-8 + + + + + + Drogaria + + + + + + org.apache.maven.plugins + maven-compiler-plugin + 3.3 + + 1.8 + 1.8 + + + + + + + + + + prime-repo + PrimeFaces Maven Repository + http://repository.primefaces.org + default + + + + + + + + org.hibernate + hibernate-core + 4.3.11.Final + + + + + mysql + mysql-connector-java + 5.1.36 + + + + + junit + junit + 4.12 + + + + + org.glassfish + javax.faces + 2.2.12 + + + + + org.primefaces + primefaces + 5.2 + + + + + org.primefaces.themes + all-themes + 1.0.10 + + + + + org.omnifaces + omnifaces + 1.11 + + + + + javax.servlet + javax.servlet-api + 3.1.0 + + + + + org.glassfish.jersey.containers + jersey-container-servlet + 2.22.1 + + + + + com.google.code.gson + gson + 2.4 + + + + + net.sf.jasperreports + jasperreports + 6.1.1 + + + + + org.apache.shiro + shiro-core + 1.2.4 + + + + \ No newline at end of file diff --git a/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/AutenticacaoBean.java b/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/AutenticacaoBean.java new file mode 100644 index 0000000..4fb886a --- /dev/null +++ b/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/AutenticacaoBean.java @@ -0,0 +1,71 @@ +package br.pro.delfino.drogaria.bean; + +import java.io.IOException; +import java.util.List; + +import javax.annotation.PostConstruct; +import javax.faces.bean.ManagedBean; +import javax.faces.bean.SessionScoped; + +import org.omnifaces.util.Faces; +import org.omnifaces.util.Messages; + +import br.pro.delfino.drogaria.dao.UsuarioDAO; +import br.pro.delfino.drogaria.domain.Pessoa; +import br.pro.delfino.drogaria.domain.Usuario; + +@ManagedBean +@SessionScoped +public class AutenticacaoBean { + private Usuario usuario; + private Usuario usuarioLogado; + + public Usuario getUsuario() { + return usuario; + } + + public void setUsuario(Usuario usuario) { + this.usuario = usuario; + } + + public Usuario getUsuarioLogado() { + return usuarioLogado; + } + + public void setUsuarioLogado(Usuario usuarioLogado) { + this.usuarioLogado = usuarioLogado; + } + + @PostConstruct + public void iniciar() { + usuario = new Usuario(); + usuario.setPessoa(new Pessoa()); + } + + public void autenticar() { + try { + UsuarioDAO usuarioDAO = new UsuarioDAO(); + usuarioLogado = usuarioDAO.autenticar(usuario.getPessoa().getCpf(), usuario.getSenha()); + + if(usuarioLogado == null){ + Messages.addGlobalError("CPF e/ou senha incorretos"); + return; + } + + Faces.redirect("./pages/principal.xhtml"); + } catch (IOException erro) { + erro.printStackTrace(); + Messages.addGlobalError(erro.getMessage()); + } + } + + public boolean temPermissoes(List permissoes){ + for(String permissao : permissoes){ + if(usuarioLogado.getTipo() == permissao.charAt(0)){ + return true; + } + } + + return false; + } +} diff --git a/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/CaixaBean.java b/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/CaixaBean.java new file mode 100644 index 0000000..1c32fc6 --- /dev/null +++ b/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/CaixaBean.java @@ -0,0 +1,78 @@ +package br.pro.delfino.drogaria.bean; + +import java.util.Calendar; +import java.util.Date; +import java.util.List; + +import javax.annotation.PostConstruct; +import javax.faces.bean.ManagedBean; +import javax.faces.bean.ViewScoped; + +import org.omnifaces.util.Messages; +import org.primefaces.event.SelectEvent; +import org.primefaces.model.DefaultScheduleEvent; +import org.primefaces.model.DefaultScheduleModel; +import org.primefaces.model.ScheduleEvent; +import org.primefaces.model.ScheduleModel; + +import br.pro.delfino.drogaria.dao.CaixaDAO; +import br.pro.delfino.drogaria.dao.FuncionarioDAO; +import br.pro.delfino.drogaria.domain.Caixa; +import br.pro.delfino.drogaria.domain.Funcionario; + +@ManagedBean +@ViewScoped +public class CaixaBean { + private Caixa caixa; + + private ScheduleModel caixas; + private List funcionarios; + + public Caixa getCaixa() { + return caixa; + } + + public void setCaixa(Caixa caixa) { + this.caixa = caixa; + } + + public ScheduleModel getCaixas() { + return caixas; + } + + public void setCaixas(ScheduleModel caixas) { + this.caixas = caixas; + } + + public List getFuncionarios() { + return funcionarios; + } + + public void setFuncionarios(List funcionarios) { + this.funcionarios = funcionarios; + } + + @PostConstruct + public void listar() { + caixas = new DefaultScheduleModel(); + } + + public void novo(SelectEvent evento) { + caixa = new Caixa(); + caixa.setDataAbertura((Date) evento.getObject()); + + FuncionarioDAO funcionarioDAO = new FuncionarioDAO(); + funcionarios = funcionarioDAO.listar(); + } + + public void salvar(){ + Calendar calendar = Calendar.getInstance(); + calendar.setTime(caixa.getDataAbertura()); + calendar.add(Calendar.DATE, 1); + caixa.setDataAbertura(calendar.getTime()); + + CaixaDAO caixaDAO = new CaixaDAO(); + caixaDAO.salvar(caixa); + Messages.addGlobalInfo("Caixa aberto com sucesso"); + } +} diff --git a/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/CidadeBean.java b/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/CidadeBean.java new file mode 100644 index 0000000..4b03075 --- /dev/null +++ b/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/CidadeBean.java @@ -0,0 +1,119 @@ +package br.pro.delfino.drogaria.bean; + +import java.io.Serializable; +import java.util.List; + +import javax.annotation.PostConstruct; +import javax.faces.bean.ManagedBean; +import javax.faces.bean.ViewScoped; +import javax.faces.event.ActionEvent; + +import org.omnifaces.util.Messages; + +import br.pro.delfino.drogaria.dao.CidadeDAO; +import br.pro.delfino.drogaria.dao.EstadoDAO; +import br.pro.delfino.drogaria.domain.Cidade; +import br.pro.delfino.drogaria.domain.Estado; + +@SuppressWarnings("serial") +@ManagedBean +@ViewScoped +public class CidadeBean implements Serializable { + private Cidade cidade; + private List cidades; + private List estados; + + public Cidade getCidade() { + return cidade; + } + + public void setCidade(Cidade cidade) { + this.cidade = cidade; + } + + public List getCidades() { + return cidades; + } + + public void setCidades(List cidades) { + this.cidades = cidades; + } + + public List getEstados() { + return estados; + } + + public void setEstados(List estados) { + this.estados = estados; + } + + @PostConstruct + public void listar() { + try { + CidadeDAO cidadeDAO = new CidadeDAO(); + cidades = cidadeDAO.listar("nome"); + } catch (RuntimeException erro) { + Messages.addFlashGlobalError("Ocorreu um erro ao tentar listar as cidades"); + erro.printStackTrace(); + } + } + + public void novo() { + try { + cidade = new Cidade(); + + EstadoDAO estadoDAO = new EstadoDAO(); + estados = estadoDAO.listar("nome"); + } catch (RuntimeException erro) { + Messages.addFlashGlobalError("Ocorreu um erro ao gerar uma nova cidade"); + erro.printStackTrace(); + } + } + + public void salvar() { + try { + CidadeDAO cidadeDAO = new CidadeDAO(); + cidadeDAO.merge(cidade); + + cidade = new Cidade(); + + EstadoDAO estadoDAO = new EstadoDAO(); + estados = estadoDAO.listar(); + + cidades = cidadeDAO.listar(); + + Messages.addGlobalInfo("Cidade salva com sucesso"); + } catch (RuntimeException erro) { + Messages.addFlashGlobalError("Ocorreu um erro ao tentar salvar uma nova cidade"); + erro.printStackTrace(); + } + } + + public void excluir(ActionEvent evento) { + try { + cidade = (Cidade) evento.getComponent().getAttributes().get("cidadeSelecionada"); + + CidadeDAO cidadeDAO = new CidadeDAO(); + cidadeDAO.excluir(cidade); + + cidades = cidadeDAO.listar(); + + Messages.addGlobalInfo("Cidade removida com sucesso"); + } catch (RuntimeException erro) { + Messages.addFlashGlobalError("Ocorreu um erro ao tentar remover a cidade"); + erro.printStackTrace(); + } + } + + public void editar(ActionEvent evento){ + try { + cidade = (Cidade) evento.getComponent().getAttributes().get("cidadeSelecionada"); + + EstadoDAO estadoDAO = new EstadoDAO(); + estados = estadoDAO.listar(); + } catch (RuntimeException erro) { + Messages.addFlashGlobalError("Ocorreu um erro ao tentar selecionar uma cidade"); + erro.printStackTrace(); + } + } +} diff --git a/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/ClienteBean.java b/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/ClienteBean.java new file mode 100644 index 0000000..c96b115 --- /dev/null +++ b/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/ClienteBean.java @@ -0,0 +1,91 @@ +package br.pro.delfino.drogaria.bean; + +import java.io.Serializable; +import java.util.List; + +import javax.annotation.PostConstruct; +import javax.faces.bean.ManagedBean; +import javax.faces.bean.ViewScoped; + +import org.omnifaces.util.Messages; + +import br.pro.delfino.drogaria.dao.ClienteDAO; +import br.pro.delfino.drogaria.dao.PessoaDAO; +import br.pro.delfino.drogaria.domain.Cliente; +import br.pro.delfino.drogaria.domain.Pessoa; + +@SuppressWarnings("serial") +@ManagedBean +@ViewScoped +public class ClienteBean implements Serializable { + private Cliente cliente; + + private List clientes; + private List pessoas; + + public Cliente getCliente() { + return cliente; + } + + public void setCliente(Cliente cliente) { + this.cliente = cliente; + } + + public List getClientes() { + return clientes; + } + + public void setClientes(List clientes) { + this.clientes = clientes; + } + + public List getPessoas() { + return pessoas; + } + + public void setPessoas(List pessoas) { + this.pessoas = pessoas; + } + + @PostConstruct + public void listar() { + try { + ClienteDAO clienteDAO = new ClienteDAO(); + clientes = clienteDAO.listar("dataCadastro"); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar listar os clientes"); + erro.printStackTrace(); + } + } + + public void novo() { + try { + cliente = new Cliente(); + + PessoaDAO pessoaDAO = new PessoaDAO(); + pessoas = pessoaDAO.listar("nome"); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar criar um novo cliente"); + erro.printStackTrace(); + } + } + + public void salvar() { + try { + ClienteDAO clienteDAO = new ClienteDAO(); + clienteDAO.merge(cliente); + + cliente = new Cliente(); + + clientes = clienteDAO.listar("dataCadastro"); + + PessoaDAO pessoaDAO = new PessoaDAO(); + pessoas = pessoaDAO.listar("nome"); + + Messages.addGlobalInfo("Cliente salvo com sucesso"); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar salvar o cliente"); + erro.printStackTrace(); + } + } +} diff --git a/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/EstadoBean.java b/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/EstadoBean.java new file mode 100644 index 0000000..b4921fe --- /dev/null +++ b/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/EstadoBean.java @@ -0,0 +1,88 @@ +package br.pro.delfino.drogaria.bean; + +import java.io.Serializable; +import java.util.List; + +import javax.annotation.PostConstruct; +import javax.faces.bean.ManagedBean; +import javax.faces.bean.ViewScoped; +import javax.faces.event.ActionEvent; + +import org.omnifaces.util.Messages; + +import br.pro.delfino.drogaria.dao.EstadoDAO; +import br.pro.delfino.drogaria.domain.Estado; + +@SuppressWarnings("serial") +@ManagedBean +@ViewScoped +public class EstadoBean implements Serializable { + private Estado estado; + private List estados; + + public Estado getEstado() { + return estado; + } + + public void setEstado(Estado estado) { + this.estado = estado; + } + + public List getEstados() { + return estados; + } + + public void setEstados(List estados) { + this.estados = estados; + } + + @PostConstruct + public void listar() { + try { + EstadoDAO estadoDAO = new EstadoDAO(); + estados = estadoDAO.listar(); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar listar os estados"); + erro.printStackTrace(); + } + } + + public void novo() { + estado = new Estado(); + } + + public void salvar() { + try { + EstadoDAO estadoDAO = new EstadoDAO(); + estadoDAO.merge(estado); + + estado = new Estado(); + estados = estadoDAO.listar(); + + Messages.addGlobalInfo("Estado salvo com sucesso"); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar salvar o estado"); + erro.printStackTrace(); + } + } + + public void excluir(ActionEvent evento) { + try { + estado = (Estado) evento.getComponent().getAttributes().get("estadoSelecionado"); + + EstadoDAO estadoDAO = new EstadoDAO(); + estadoDAO.excluir(estado); + + estados = estadoDAO.listar(); + + Messages.addGlobalInfo("Estado removido com sucesso"); + } catch (RuntimeException erro) { + Messages.addFlashGlobalError("Ocorreu um erro ao tentar remover o estado"); + erro.printStackTrace(); + } + } + + public void editar(ActionEvent evento) { + estado = (Estado) evento.getComponent().getAttributes().get("estadoSelecionado"); + } +} diff --git a/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/FabricanteBean.java b/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/FabricanteBean.java new file mode 100644 index 0000000..7fddf7d --- /dev/null +++ b/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/FabricanteBean.java @@ -0,0 +1,116 @@ +package br.pro.delfino.drogaria.bean; + +import java.io.Serializable; +import java.util.Arrays; +import java.util.List; + +import javax.annotation.PostConstruct; +import javax.faces.bean.ManagedBean; +import javax.faces.bean.ViewScoped; +import javax.faces.event.ActionEvent; +import javax.ws.rs.client.Client; +import javax.ws.rs.client.ClientBuilder; +import javax.ws.rs.client.Entity; +import javax.ws.rs.client.WebTarget; + +import org.omnifaces.util.Messages; + +import com.google.gson.Gson; + +import br.pro.delfino.drogaria.domain.Fabricante; + +@SuppressWarnings("serial") +@ManagedBean +@ViewScoped +public class FabricanteBean implements Serializable { + private Fabricante fabricante; + private List fabricantes; + + public Fabricante getFabricante() { + return fabricante; + } + + public void setFabricante(Fabricante fabricante) { + this.fabricante = fabricante; + } + + public List getFabricantes() { + return fabricantes; + } + + public void setFabricantes(List fabricantes) { + this.fabricantes = fabricantes; + } + + @PostConstruct + public void listar() { + try { + Client cliente = ClientBuilder.newClient(); + WebTarget caminho = cliente.target("http://127.0.0.1:8080/Drogaria/rest/fabricante"); + String json = caminho.request().get(String.class); + + Gson gson = new Gson(); + Fabricante[] vetor = gson.fromJson(json, Fabricante[].class); + + fabricantes = Arrays.asList(vetor); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar listar os fabricantes"); + erro.printStackTrace(); + } + } + + public void novo() { + fabricante = new Fabricante(); + } + + public void salvar() { + try { + Client cliente = ClientBuilder.newClient(); + WebTarget caminho = cliente.target("http://127.0.0.1:8080/Drogaria/rest/fabricante"); + + Gson gson = new Gson(); + + String json = gson.toJson(fabricante); + caminho.request().post(Entity.json(json)); + + fabricante = new Fabricante(); + + json = caminho.request().get(String.class); + Fabricante[] vetor = gson.fromJson(json, Fabricante[].class); + fabricantes = Arrays.asList(vetor); + + Messages.addGlobalInfo("Fabricante salvo com sucesso"); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar salvar o fabricante"); + erro.printStackTrace(); + } + } + + public void excluir(ActionEvent evento) { + try { + fabricante = (Fabricante) evento.getComponent().getAttributes().get("fabricanteSelecionado"); + + Client cliente = ClientBuilder.newClient(); + + WebTarget caminho = cliente.target("http://127.0.0.1:8080/Drogaria/rest/fabricante"); + WebTarget caminhoExcluir = caminho.path("{codigo}").resolveTemplate("codigo", fabricante.getCodigo()); + + caminhoExcluir.request().delete(); + String json = caminho.request().get(String.class); + + Gson gson = new Gson(); + Fabricante[] vetor = gson.fromJson(json, Fabricante[].class); + + fabricantes = Arrays.asList(vetor); + + Messages.addGlobalInfo("Fabricante removido com sucesso"); + } catch (RuntimeException erro) { + Messages.addFlashGlobalError("Ocorreu um erro ao tentar remover o fabricante"); + erro.printStackTrace(); + } + } + + public void editar(ActionEvent evento) { + fabricante = (Fabricante) evento.getComponent().getAttributes().get("fabricanteSelecionado"); + } +} diff --git a/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/HistoricoBean.java b/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/HistoricoBean.java new file mode 100644 index 0000000..a042b04 --- /dev/null +++ b/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/HistoricoBean.java @@ -0,0 +1,89 @@ +package br.pro.delfino.drogaria.bean; + +import java.io.Serializable; +import java.util.Date; + +import javax.annotation.PostConstruct; +import javax.faces.bean.ManagedBean; +import javax.faces.bean.ViewScoped; + +import org.omnifaces.util.Messages; + +import br.pro.delfino.drogaria.dao.HistoricoDAO; +import br.pro.delfino.drogaria.dao.ProdutoDAO; +import br.pro.delfino.drogaria.domain.Historico; +import br.pro.delfino.drogaria.domain.Produto; + +@SuppressWarnings("serial") +@ManagedBean +@ViewScoped +public class HistoricoBean implements Serializable { + private Produto produto; + private Boolean exibePainelDados; + + private Historico historico; + + public Produto getProduto() { + return produto; + } + + public void setProduto(Produto produto) { + this.produto = produto; + } + + public Boolean getExibePainelDados() { + return exibePainelDados; + } + + public void setExibePainelDados(Boolean exibePainelDados) { + this.exibePainelDados = exibePainelDados; + } + + public Historico getHistorico() { + return historico; + } + + public void setHistorico(Historico historico) { + this.historico = historico; + } + + @PostConstruct + public void novo() { + historico = new Historico(); + produto = new Produto(); + exibePainelDados = false; + } + + public void buscar() { + try { + ProdutoDAO produtoDAO = new ProdutoDAO(); + Produto resultado = produtoDAO.buscar(produto.getCodigo()); + + if (resultado == null) { + exibePainelDados = false; + Messages.addGlobalWarn("Não existe produto cadastrado para o código informado"); + } else { + exibePainelDados = true; + produto = resultado; + } + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar buscar o produto"); + erro.printStackTrace(); + } + } + + public void salvar() { + try { + historico.setHorario(new Date()); + historico.setProduto(produto); + + HistoricoDAO historicoDAO = new HistoricoDAO(); + historicoDAO.salvar(historico); + + Messages.addGlobalInfo("Histórico salvo com sucesso"); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar salvar o histórico"); + erro.printStackTrace(); + } + } +} diff --git a/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/ImagemBean.java b/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/ImagemBean.java new file mode 100644 index 0000000..eb963a8 --- /dev/null +++ b/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/ImagemBean.java @@ -0,0 +1,48 @@ +package br.pro.delfino.drogaria.bean; + +import java.io.IOException; +import java.io.InputStream; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; + +import javax.faces.bean.ManagedBean; +import javax.faces.bean.ManagedProperty; +import javax.faces.bean.RequestScoped; + +import org.primefaces.model.DefaultStreamedContent; +import org.primefaces.model.StreamedContent; + +@ManagedBean +@RequestScoped +public class ImagemBean { + @ManagedProperty("#{param.caminho}") + private String caminho; + + private StreamedContent foto; + + public String getCaminho() { + return caminho; + } + + public void setCaminho(String caminho) { + this.caminho = caminho; + } + + public StreamedContent getFoto() throws IOException { + if(caminho == null || caminho.isEmpty()){ + Path path = Paths.get("C:/Programação Web com Java/Uploads/branco.png"); + InputStream stream = Files.newInputStream(path); + foto = new DefaultStreamedContent(stream); + }else{ + Path path = Paths.get(caminho); + InputStream stream = Files.newInputStream(path); + foto = new DefaultStreamedContent(stream); + } + return foto; + } + + public void setFoto(StreamedContent foto) { + this.foto = foto; + } +} diff --git a/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/PessoaBean.java b/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/PessoaBean.java new file mode 100644 index 0000000..931edf7 --- /dev/null +++ b/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/PessoaBean.java @@ -0,0 +1,156 @@ +package br.pro.delfino.drogaria.bean; + +import java.io.Serializable; +import java.util.ArrayList; +import java.util.List; + +import javax.annotation.PostConstruct; +import javax.faces.bean.ManagedBean; +import javax.faces.bean.ViewScoped; +import javax.faces.event.ActionEvent; + +import org.omnifaces.util.Messages; + +import br.pro.delfino.drogaria.dao.CidadeDAO; +import br.pro.delfino.drogaria.dao.EstadoDAO; +import br.pro.delfino.drogaria.dao.PessoaDAO; +import br.pro.delfino.drogaria.domain.Cidade; +import br.pro.delfino.drogaria.domain.Estado; +import br.pro.delfino.drogaria.domain.Pessoa; + +@SuppressWarnings("serial") +@ManagedBean +@ViewScoped +public class PessoaBean implements Serializable { + private Pessoa pessoa; + private List pessoas; + + private Estado estado; + private List estados; + + private List cidades; + + public Pessoa getPessoa() { + return pessoa; + } + + public void setPessoa(Pessoa pessoa) { + this.pessoa = pessoa; + } + + public List getPessoas() { + return pessoas; + } + + public void setPessoas(List pessoas) { + this.pessoas = pessoas; + } + + public Estado getEstado() { + return estado; + } + + public void setEstado(Estado estado) { + this.estado = estado; + } + + public List getEstados() { + return estados; + } + + public void setEstados(List estados) { + this.estados = estados; + } + + public List getCidades() { + return cidades; + } + + public void setCidades(List cidades) { + this.cidades = cidades; + } + + @PostConstruct + public void listar() { + try { + PessoaDAO pessoaDAO = new PessoaDAO(); + pessoas = pessoaDAO.listar("nome"); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar listar as pessoas"); + erro.printStackTrace(); + } + } + + public void novo() { + try { + pessoa = new Pessoa(); + + estado = new Estado(); + + EstadoDAO estadoDAO = new EstadoDAO(); + estados = estadoDAO.listar("nome"); + + cidades = new ArrayList<>(); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar gerar uma nova pessoa"); + erro.printStackTrace(); + } + } + + public void editar(ActionEvent evento) { + try{ + pessoa = (Pessoa) evento.getComponent().getAttributes().get("pessoaSelecionada"); + + estado = pessoa.getCidade().getEstado(); + + EstadoDAO estadoDAO = new EstadoDAO(); + estados = estadoDAO.listar("nome"); + + CidadeDAO cidadeDAO = new CidadeDAO(); + cidades = cidadeDAO.buscarPorEstado(estado.getCodigo()); + }catch(RuntimeException erro){ + Messages.addGlobalError("Ocorreu um erro ao tentar selecionar uma pessoa"); + } + } + + public void salvar() { + try { + PessoaDAO pessoaDAO = new PessoaDAO(); + pessoaDAO.merge(pessoa); + + pessoas = pessoaDAO.listar("nome"); + + pessoa = new Pessoa(); + + estado = new Estado(); + + EstadoDAO estadoDAO = new EstadoDAO(); + estados = estadoDAO.listar("nome"); + + cidades = new ArrayList<>(); + + Messages.addGlobalInfo("Pessoa salva com sucesso"); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar salvar a pessoa"); + erro.printStackTrace(); + } + } + + public void excluir(ActionEvent evento) { + + } + + public void popular() { + try { + if (estado != null) { + CidadeDAO cidadeDAO = new CidadeDAO(); + cidades = cidadeDAO.buscarPorEstado(estado.getCodigo()); + } else { + cidades = new ArrayList<>(); + } + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar filtrar as cidades"); + erro.printStackTrace(); + } + } +} diff --git a/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/ProdutoBean.java b/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/ProdutoBean.java new file mode 100644 index 0000000..e48e0d1 --- /dev/null +++ b/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/ProdutoBean.java @@ -0,0 +1,196 @@ +package br.pro.delfino.drogaria.bean; + +import java.io.IOException; +import java.io.Serializable; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; +import java.nio.file.StandardCopyOption; +import java.sql.Connection; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import javax.annotation.PostConstruct; +import javax.faces.bean.ManagedBean; +import javax.faces.bean.ViewScoped; +import javax.faces.event.ActionEvent; + +import org.omnifaces.util.Faces; +import org.omnifaces.util.Messages; +import org.primefaces.component.datatable.DataTable; +import org.primefaces.event.FileUploadEvent; +import org.primefaces.model.UploadedFile; + +import br.pro.delfino.drogaria.dao.FabricanteDAO; +import br.pro.delfino.drogaria.dao.ProdutoDAO; +import br.pro.delfino.drogaria.domain.Fabricante; +import br.pro.delfino.drogaria.domain.Produto; +import br.pro.delfino.drogaria.util.HibernateUtil; +import net.sf.jasperreports.engine.JRException; +import net.sf.jasperreports.engine.JasperFillManager; +import net.sf.jasperreports.engine.JasperPrint; +import net.sf.jasperreports.engine.JasperPrintManager; + +@SuppressWarnings("serial") +@ManagedBean +@ViewScoped +public class ProdutoBean implements Serializable { + private Produto produto; + private List produtos; + private List fabricantes; + + public Produto getProduto() { + return produto; + } + + public void setProduto(Produto produto) { + this.produto = produto; + } + + public List getProdutos() { + return produtos; + } + + public void setProdutos(List produtos) { + this.produtos = produtos; + } + + public List getFabricantes() { + return fabricantes; + } + + public void setFabricantes(List fabricantes) { + this.fabricantes = fabricantes; + } + + @PostConstruct + public void listar() { + try { + ProdutoDAO produtoDAO = new ProdutoDAO(); + produtos = produtoDAO.listar("descricao"); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar listar os produtos"); + erro.printStackTrace(); + } + } + + public void novo() { + try { + produto = new Produto(); + + FabricanteDAO fabricanteDAO = new FabricanteDAO(); + fabricantes = fabricanteDAO.listar("descricao"); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar gerar um novo produto"); + erro.printStackTrace(); + } + } + + public void editar(ActionEvent evento) { + try { + produto = (Produto) evento.getComponent().getAttributes().get("produtoSelecionado"); + produto.setCaminho("C:/Programação Web com Java/Uploads/" + produto.getCodigo() + ".png"); + + FabricanteDAO fabricanteDAO = new FabricanteDAO(); + fabricantes = fabricanteDAO.listar(); + } catch (RuntimeException erro) { + Messages.addFlashGlobalError("Ocorreu um erro ao tentar selecionar um produto"); + erro.printStackTrace(); + } + } + + public void salvar() { + try { + if (produto.getCaminho() == null) { + Messages.addGlobalError("O campo foto é obrigatório"); + return; + } + + ProdutoDAO produtoDAO = new ProdutoDAO(); + Produto produtoRetorno = produtoDAO.merge(produto); + + Path origem = Paths.get(produto.getCaminho()); + Path destino = Paths.get("C:/Programação Web com Java/Uploads/" + produtoRetorno.getCodigo() + ".png"); + Files.copy(origem, destino, StandardCopyOption.REPLACE_EXISTING); + + produto = new Produto(); + + FabricanteDAO fabricanteDAO = new FabricanteDAO(); + fabricantes = fabricanteDAO.listar(); + + produtos = produtoDAO.listar(); + + Messages.addGlobalInfo("Produto salvo com sucesso"); + } catch (RuntimeException | IOException erro) { + Messages.addFlashGlobalError("Ocorreu um erro ao tentar salvar o produto"); + erro.printStackTrace(); + } + } + + public void excluir(ActionEvent evento) { + try { + produto = (Produto) evento.getComponent().getAttributes().get("produtoSelecionado"); + + ProdutoDAO produtoDAO = new ProdutoDAO(); + produtoDAO.excluir(produto); + + Path arquivo = Paths.get("C:/Programação Web com Java/Uploads/" + produto.getCodigo() + ".png"); + Files.deleteIfExists(arquivo); + + produtos = produtoDAO.listar(); + + Messages.addGlobalInfo("Produto removido com sucesso"); + } catch (RuntimeException | IOException erro) { + Messages.addFlashGlobalError("Ocorreu um erro ao tentar remover o produto"); + erro.printStackTrace(); + } + } + + public void upload(FileUploadEvent evento) { + try { + UploadedFile arquivoUpload = evento.getFile(); + Path arquivoTemp = Files.createTempFile(null, null); + Files.copy(arquivoUpload.getInputstream(), arquivoTemp, StandardCopyOption.REPLACE_EXISTING); + produto.setCaminho(arquivoTemp.toString()); + + Messages.addGlobalInfo("Upload realizado com sucesso"); + } catch (IOException erro) { + Messages.addGlobalInfo("Ocorreu um erro ao tentar realizar o upload de arquivo"); + erro.printStackTrace(); + } + } + + public void imprimir() { + try { + DataTable tabela = (DataTable) Faces.getViewRoot().findComponent("formListagem:tabela"); + Map filtros = tabela.getFilters(); + + String proDescricao = (String) filtros.get("descricao"); + String fabDescricao = (String) filtros.get("fabricante.descricao"); + + String caminho = Faces.getRealPath("/reports/produtos.jasper"); + + Map parametros = new HashMap<>(); + if (proDescricao == null) { + parametros.put("PRODUTO_DESCRICAO", "%%"); + } else { + parametros.put("PRODUTO_DESCRICAO", "%" + proDescricao + "%"); + } + if (fabDescricao == null) { + parametros.put("FABRICANTE_DESCRICAO", "%%"); + } else { + parametros.put("FABRICANTE_DESCRICAO", "%" + fabDescricao + "%"); + } + + Connection conexao = HibernateUtil.getConexao(); + + JasperPrint relatorio = JasperFillManager.fillReport(caminho, parametros, conexao); + + JasperPrintManager.printReport(relatorio, true); + } catch (JRException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar gerar o relatório"); + erro.printStackTrace(); + } + } +} diff --git a/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/ProdutoBean2.java b/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/ProdutoBean2.java new file mode 100644 index 0000000..f36cd86 --- /dev/null +++ b/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/ProdutoBean2.java @@ -0,0 +1,86 @@ +package br.pro.delfino.drogaria.bean; + +import java.io.Serializable; +import java.util.List; + +import javax.annotation.PostConstruct; +import javax.faces.bean.ManagedBean; +import javax.faces.bean.ViewScoped; + +import org.omnifaces.util.Messages; + +import br.pro.delfino.drogaria.dao.FabricanteDAO; +import br.pro.delfino.drogaria.dao.ProdutoDAO; +import br.pro.delfino.drogaria.domain.Fabricante; +import br.pro.delfino.drogaria.domain.Produto; + +@SuppressWarnings("serial") +@ManagedBean +@ViewScoped +public class ProdutoBean2 implements Serializable { + private Produto produto; + private Long codigoProduto; + + private List fabricantes; + private List produtos; + + private FabricanteDAO fabricanteDAO; + private ProdutoDAO produtoDAO; + + public Produto getProduto() { + return produto; + } + + public void setProduto(Produto produto) { + this.produto = produto; + } + + public Long getCodigoProduto() { + return codigoProduto; + } + + public void setCodigoProduto(Long codigoProduto) { + this.codigoProduto = codigoProduto; + } + + public void setFabricantes(List fabricantes) { + this.fabricantes = fabricantes; + } + + public List getFabricantes() { + return fabricantes; + } + public List getProdutos() { + return produtos; + } + + public void setProdutos(List produtos) { + this.produtos = produtos; + } + + @PostConstruct + public void iniciar(){ + fabricanteDAO = new FabricanteDAO(); + produtoDAO = new ProdutoDAO(); + } + + public void listar() { + try { + produtos = produtoDAO.listar("descricao"); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar listar os produtos"); + erro.printStackTrace(); + } + } + + public void carregarEdicao(){ + try { + produto = produtoDAO.buscar(codigoProduto); + + fabricantes = fabricanteDAO.listar("descricao"); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar carregar os dados para edição"); + erro.printStackTrace(); + } + } +} diff --git a/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/UsuarioBean.java b/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/UsuarioBean.java new file mode 100644 index 0000000..f526df8 --- /dev/null +++ b/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/UsuarioBean.java @@ -0,0 +1,90 @@ +package br.pro.delfino.drogaria.bean; + +import java.io.Serializable; +import java.util.List; + +import javax.annotation.PostConstruct; +import javax.faces.bean.ManagedBean; +import javax.faces.bean.ViewScoped; + +import org.omnifaces.util.Messages; + +import br.pro.delfino.drogaria.dao.PessoaDAO; +import br.pro.delfino.drogaria.dao.UsuarioDAO; +import br.pro.delfino.drogaria.domain.Pessoa; +import br.pro.delfino.drogaria.domain.Usuario; + +@SuppressWarnings("serial") +@ManagedBean +@ViewScoped +public class UsuarioBean implements Serializable { + private Usuario usuario; + + private List pessoas; + private List usuarios; + + public Usuario getUsuario() { + return usuario; + } + + public void setUsuario(Usuario usuario) { + this.usuario = usuario; + } + + public List getPessoas() { + return pessoas; + } + + public void setPessoas(List pessoas) { + this.pessoas = pessoas; + } + + public List getUsuarios() { + return usuarios; + } + + public void setUsuarios(List usuarios) { + this.usuarios = usuarios; + } + + @PostConstruct + public void listar(){ + try{ + UsuarioDAO usuarioDAO = new UsuarioDAO(); + usuarios = usuarioDAO.listar("tipo"); + }catch(RuntimeException erro){ + Messages.addGlobalError("Ocorreu um erro ao tentar listar os usuários"); + erro.printStackTrace(); + } + } + + public void novo() { + try { + usuario = new Usuario(); + + PessoaDAO pessoaDAO = new PessoaDAO(); + pessoas = pessoaDAO.listar("nome"); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar criar um novo usuário"); + erro.printStackTrace(); + } + } + + public void salvar() { + try { + UsuarioDAO usuarioDAO = new UsuarioDAO(); + usuarioDAO.merge(usuario); + + usuario = new Usuario(); + usuarios = usuarioDAO.listar("tipo"); + + PessoaDAO pessoaDAO = new PessoaDAO(); + pessoas = pessoaDAO.listar("nome"); + + Messages.addGlobalInfo("Usuário salvo com sucesso"); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar salvar o usuário"); + erro.printStackTrace(); + } + } +} diff --git a/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/VendaBean.java b/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/VendaBean.java new file mode 100644 index 0000000..ada8ff2 --- /dev/null +++ b/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/VendaBean.java @@ -0,0 +1,186 @@ +package br.pro.delfino.drogaria.bean; + +import java.io.Serializable; +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +import javax.annotation.PostConstruct; +import javax.faces.bean.ManagedBean; +import javax.faces.bean.ViewScoped; +import javax.faces.event.ActionEvent; + +import org.omnifaces.util.Messages; + +import br.pro.delfino.drogaria.dao.ClienteDAO; +import br.pro.delfino.drogaria.dao.FuncionarioDAO; +import br.pro.delfino.drogaria.dao.ProdutoDAO; +import br.pro.delfino.drogaria.dao.VendaDAO; +import br.pro.delfino.drogaria.domain.Cliente; +import br.pro.delfino.drogaria.domain.Funcionario; +import br.pro.delfino.drogaria.domain.ItemVenda; +import br.pro.delfino.drogaria.domain.Produto; +import br.pro.delfino.drogaria.domain.Venda; + +@SuppressWarnings("serial") +@ManagedBean +@ViewScoped +public class VendaBean implements Serializable { + private Venda venda; + + private List produtos; + private List itensVenda; + private List clientes; + private List funcionarios; + + public Venda getVenda() { + return venda; + } + + public void setVenda(Venda venda) { + this.venda = venda; + } + + public List getProdutos() { + return produtos; + } + + public void setProdutos(List produtos) { + this.produtos = produtos; + } + + public List getItensVenda() { + return itensVenda; + } + + public void setItensVenda(List itensVenda) { + this.itensVenda = itensVenda; + } + + public List getClientes() { + return clientes; + } + + public void setClientes(List clientes) { + this.clientes = clientes; + } + + public List getFuncionarios() { + return funcionarios; + } + + public void setFuncionarios(List funcionarios) { + this.funcionarios = funcionarios; + } + + @PostConstruct + public void novo() { + try { + venda = new Venda(); + venda.setPrecoTotal(new BigDecimal("0.00")); + + ProdutoDAO produtoDAO = new ProdutoDAO(); + produtos = produtoDAO.listar("descricao"); + + itensVenda = new ArrayList<>(); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar carregar a tela de vendas"); + erro.printStackTrace(); + } + } + + public void adicionar(ActionEvent evento) { + Produto produto = (Produto) evento.getComponent().getAttributes().get("produtoSelecionado"); + + int achou = -1; + for (int posicao = 0; posicao < itensVenda.size(); posicao++) { + if (itensVenda.get(posicao).getProduto().equals(produto)) { + achou = posicao; + } + } + + if (achou < 0) { + ItemVenda itemVenda = new ItemVenda(); + itemVenda.setPrecoParcial(produto.getPreco()); + itemVenda.setProduto(produto); + itemVenda.setQuantidade(new Short("1")); + + itensVenda.add(itemVenda); + } else { + ItemVenda itemVenda = itensVenda.get(achou); + itemVenda.setQuantidade(new Short(itemVenda.getQuantidade() + 1 + "")); + itemVenda.setPrecoParcial(produto.getPreco().multiply(new BigDecimal(itemVenda.getQuantidade()))); + } + + calcular(); + } + + public void remover(ActionEvent evento) { + ItemVenda itemVenda = (ItemVenda) evento.getComponent().getAttributes().get("itemSelecionado"); + + int achou = -1; + for (int posicao = 0; posicao < itensVenda.size(); posicao++) { + if (itensVenda.get(posicao).getProduto().equals(itemVenda.getProduto())) { + achou = posicao; + } + } + + if (achou > -1) { + itensVenda.remove(achou); + } + + calcular(); + } + + public void calcular() { + venda.setPrecoTotal(new BigDecimal("0.00")); + + for (int posicao = 0; posicao < itensVenda.size(); posicao++) { + ItemVenda itemVenda = itensVenda.get(posicao); + venda.setPrecoTotal(venda.getPrecoTotal().add(itemVenda.getPrecoParcial())); + } + } + + public void finalizar() { + try { + venda.setHorario(new Date()); + venda.setCliente(null); + venda.setFuncionario(null); + + FuncionarioDAO funcionarioDAO = new FuncionarioDAO(); + funcionarios = funcionarioDAO.listarOrdenado(); + + ClienteDAO clienteDAO = new ClienteDAO(); + clientes = clienteDAO.listarOrdenado(); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar finalizar a venda"); + erro.printStackTrace(); + } + } + + public void salvar() { + try { + if(venda.getPrecoTotal().signum() == 0){ + Messages.addGlobalError("Informe pelo menos um item para a venda"); + return; + } + + VendaDAO vendaDAO = new VendaDAO(); + vendaDAO.salvar(venda, itensVenda); + + venda = new Venda(); + venda.setPrecoTotal(new BigDecimal("0.00")); + + ProdutoDAO produtoDAO = new ProdutoDAO(); + produtos = produtoDAO.listar("descricao"); + + itensVenda = new ArrayList<>(); + + Messages.addGlobalInfo("Venda realizada com sucesso"); + } catch (RuntimeException erro) { + Messages.addGlobalError("Ocorreu um erro ao tentar salvar a venda"); + erro.printStackTrace(); + } + } +} diff --git a/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/java/br/pro/delfino/drogaria/converter/UpperCaseConverter.java b/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/java/br/pro/delfino/drogaria/converter/UpperCaseConverter.java new file mode 100644 index 0000000..8a5d259 --- /dev/null +++ b/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/java/br/pro/delfino/drogaria/converter/UpperCaseConverter.java @@ -0,0 +1,28 @@ +package br.pro.delfino.drogaria.converter; + +import javax.faces.component.UIComponent; +import javax.faces.context.FacesContext; +import javax.faces.convert.Converter; +import javax.faces.convert.FacesConverter; + +@FacesConverter("upperCaseConverter") +public class UpperCaseConverter implements Converter { + + @Override + public Object getAsObject(FacesContext context, UIComponent component, String value) { + if (value == null) { + return null; + } else { + return value.toUpperCase(); + } + } + + @Override + public String getAsString(FacesContext context, UIComponent component, Object value) { + if (value == null) { + return ""; + } else { + return value.toString(); + } + } +} diff --git a/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/CaixaDAO.java b/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/CaixaDAO.java new file mode 100644 index 0000000..fd8acd7 --- /dev/null +++ b/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/CaixaDAO.java @@ -0,0 +1,26 @@ +package br.pro.delfino.drogaria.dao; + +import java.util.Date; + +import org.hibernate.Criteria; +import org.hibernate.Session; +import org.hibernate.criterion.Restrictions; + +import br.pro.delfino.drogaria.domain.Caixa; +import br.pro.delfino.drogaria.util.HibernateUtil; + +public class CaixaDAO extends GenericDAO { + public Caixa buscar(Date dataAbertura) { + Session sessao = HibernateUtil.getFabricaDeSessoes().openSession(); + try { + Criteria consulta = sessao.createCriteria(Caixa.class); + consulta.add(Restrictions.eq("dataAbertura", dataAbertura)); + Caixa resultado = (Caixa) consulta.uniqueResult(); + return resultado; + } catch (RuntimeException erro) { + throw erro; + } finally { + sessao.close(); + } + } +} diff --git a/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/CidadeDAO.java b/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/CidadeDAO.java new file mode 100644 index 0000000..e685e93 --- /dev/null +++ b/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/CidadeDAO.java @@ -0,0 +1,29 @@ +package br.pro.delfino.drogaria.dao; + +import java.util.List; + +import org.hibernate.Criteria; +import org.hibernate.Session; +import org.hibernate.criterion.Order; +import org.hibernate.criterion.Restrictions; + +import br.pro.delfino.drogaria.domain.Cidade; +import br.pro.delfino.drogaria.util.HibernateUtil; + +public class CidadeDAO extends GenericDAO { + @SuppressWarnings("unchecked") + public List buscarPorEstado(Long estadoCodigo) { + Session sessao = HibernateUtil.getFabricaDeSessoes().openSession(); + try { + Criteria consulta = sessao.createCriteria(Cidade.class); + consulta.add(Restrictions.eq("estado.codigo", estadoCodigo)); + consulta.addOrder(Order.asc("nome")); + List resultado = consulta.list(); + return resultado; + } catch (RuntimeException erro) { + throw erro; + } finally { + sessao.close(); + } + } +} \ No newline at end of file diff --git a/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/ClienteDAO.java b/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/ClienteDAO.java new file mode 100644 index 0000000..e9796b5 --- /dev/null +++ b/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/ClienteDAO.java @@ -0,0 +1,28 @@ +package br.pro.delfino.drogaria.dao; + +import java.util.List; + +import org.hibernate.Criteria; +import org.hibernate.Session; +import org.hibernate.criterion.Order; + +import br.pro.delfino.drogaria.domain.Cliente; +import br.pro.delfino.drogaria.util.HibernateUtil; + +public class ClienteDAO extends GenericDAO { + @SuppressWarnings("unchecked") + public List listarOrdenado() { + Session sessao = HibernateUtil.getFabricaDeSessoes().openSession(); + try { + Criteria consulta = sessao.createCriteria(Cliente.class); + consulta.createAlias("pessoa", "p"); + consulta.addOrder(Order.asc("p.nome")); + List resultado = consulta.list(); + return resultado; + } catch (RuntimeException erro) { + throw erro; + } finally { + sessao.close(); + } + } +} diff --git a/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/EstadoDAO.java b/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/EstadoDAO.java new file mode 100644 index 0000000..32b4a79 --- /dev/null +++ b/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/EstadoDAO.java @@ -0,0 +1,7 @@ +package br.pro.delfino.drogaria.dao; + +import br.pro.delfino.drogaria.domain.Estado; + +public class EstadoDAO extends GenericDAO { + +} diff --git a/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/FabricanteDAO.java b/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/FabricanteDAO.java new file mode 100644 index 0000000..8b7f946 --- /dev/null +++ b/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/FabricanteDAO.java @@ -0,0 +1,7 @@ +package br.pro.delfino.drogaria.dao; + +import br.pro.delfino.drogaria.domain.Fabricante; + +public class FabricanteDAO extends GenericDAO { + +} diff --git a/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/FuncionarioDAO.java b/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/FuncionarioDAO.java new file mode 100644 index 0000000..2b3114d --- /dev/null +++ b/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/FuncionarioDAO.java @@ -0,0 +1,28 @@ +package br.pro.delfino.drogaria.dao; + +import java.util.List; + +import org.hibernate.Criteria; +import org.hibernate.Session; +import org.hibernate.criterion.Order; + +import br.pro.delfino.drogaria.domain.Funcionario; +import br.pro.delfino.drogaria.util.HibernateUtil; + +public class FuncionarioDAO extends GenericDAO{ + @SuppressWarnings("unchecked") + public List listarOrdenado() { + Session sessao = HibernateUtil.getFabricaDeSessoes().openSession(); + try { + Criteria consulta = sessao.createCriteria(Funcionario.class); + consulta.createAlias("pessoa", "p"); + consulta.addOrder(Order.asc("p.nome")); + List resultado = consulta.list(); + return resultado; + } catch (RuntimeException erro) { + throw erro; + } finally { + sessao.close(); + } + } +} diff --git a/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/GenericDAO.java b/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/GenericDAO.java new file mode 100644 index 0000000..b505cd3 --- /dev/null +++ b/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/GenericDAO.java @@ -0,0 +1,140 @@ +package br.pro.delfino.drogaria.dao; + +import java.lang.reflect.ParameterizedType; +import java.util.List; + +import org.hibernate.Criteria; +import org.hibernate.Session; +import org.hibernate.Transaction; +import org.hibernate.criterion.Order; +import org.hibernate.criterion.Restrictions; + +import br.pro.delfino.drogaria.util.HibernateUtil; + +public class GenericDAO { + private Class classe; + + @SuppressWarnings("unchecked") + public GenericDAO() { + this.classe = (Class) ((ParameterizedType) getClass().getGenericSuperclass()) + .getActualTypeArguments()[0]; + } + + public void salvar(Entidade entidade) { + Session sessao = HibernateUtil.getFabricaDeSessoes().openSession(); + Transaction transacao = null; + + try { + transacao = sessao.beginTransaction(); + sessao.save(entidade); + transacao.commit(); + } catch (RuntimeException erro) { + if (transacao != null) { + transacao.rollback(); + } + throw erro; + } finally { + sessao.close(); + } + } + + @SuppressWarnings("unchecked") + public List listar() { + Session sessao = HibernateUtil.getFabricaDeSessoes().openSession(); + try { + Criteria consulta = sessao.createCriteria(classe); + List resultado = consulta.list(); + return resultado; + } catch (RuntimeException erro) { + throw erro; + } finally { + sessao.close(); + } + } + + @SuppressWarnings("unchecked") + public List listar(String campoOrdenacao) { + Session sessao = HibernateUtil.getFabricaDeSessoes().openSession(); + try { + Criteria consulta = sessao.createCriteria(classe); + consulta.addOrder(Order.asc(campoOrdenacao)); + List resultado = consulta.list(); + return resultado; + } catch (RuntimeException erro) { + throw erro; + } finally { + sessao.close(); + } + } + + @SuppressWarnings("unchecked") + public Entidade buscar(Long codigo) { + Session sessao = HibernateUtil.getFabricaDeSessoes().openSession(); + try { + Criteria consulta = sessao.createCriteria(classe); + consulta.add(Restrictions.idEq(codigo)); + Entidade resultado = (Entidade) consulta.uniqueResult(); + return resultado; + } catch (RuntimeException erro) { + throw erro; + } finally { + sessao.close(); + } + } + + public void excluir(Entidade entidade) { + Session sessao = HibernateUtil.getFabricaDeSessoes().openSession(); + Transaction transacao = null; + + try { + transacao = sessao.beginTransaction(); + sessao.delete(entidade); + transacao.commit(); + } catch (RuntimeException erro) { + if (transacao != null) { + transacao.rollback(); + } + throw erro; + } finally { + sessao.close(); + } + } + + public void editar(Entidade entidade) { + Session sessao = HibernateUtil.getFabricaDeSessoes().openSession(); + Transaction transacao = null; + + try { + transacao = sessao.beginTransaction(); + sessao.update(entidade); + transacao.commit(); + } catch (RuntimeException erro) { + if (transacao != null) { + transacao.rollback(); + } + throw erro; + } finally { + sessao.close(); + } + } + + @SuppressWarnings("unchecked") + public Entidade merge(Entidade entidade) { + Session sessao = HibernateUtil.getFabricaDeSessoes().openSession(); + Transaction transacao = null; + + try { + transacao = sessao.beginTransaction(); + Entidade retorno = (Entidade) sessao.merge(entidade); + transacao.commit(); + return retorno; + } catch (RuntimeException erro) { + if (transacao != null) { + transacao.rollback(); + } + throw erro; + } finally { + sessao.close(); + } + } +} diff --git a/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/HistoricoDAO.java b/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/HistoricoDAO.java new file mode 100644 index 0000000..7b30017 --- /dev/null +++ b/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/HistoricoDAO.java @@ -0,0 +1,7 @@ +package br.pro.delfino.drogaria.dao; + +import br.pro.delfino.drogaria.domain.Historico; + +public class HistoricoDAO extends GenericDAO { + +} diff --git a/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/MovimentacaoDAO.java b/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/MovimentacaoDAO.java new file mode 100644 index 0000000..b6560e2 --- /dev/null +++ b/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/MovimentacaoDAO.java @@ -0,0 +1,7 @@ +package br.pro.delfino.drogaria.dao; + +import br.pro.delfino.drogaria.domain.Movimentacao; + +public class MovimentacaoDAO extends GenericDAO { + +} diff --git a/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/PessoaDAO.java b/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/PessoaDAO.java new file mode 100644 index 0000000..bbd116b --- /dev/null +++ b/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/PessoaDAO.java @@ -0,0 +1,7 @@ +package br.pro.delfino.drogaria.dao; + +import br.pro.delfino.drogaria.domain.Pessoa; + +public class PessoaDAO extends GenericDAO { + +} diff --git a/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/ProdutoDAO.java b/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/ProdutoDAO.java new file mode 100644 index 0000000..4c1e751 --- /dev/null +++ b/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/ProdutoDAO.java @@ -0,0 +1,7 @@ +package br.pro.delfino.drogaria.dao; + +import br.pro.delfino.drogaria.domain.Produto; + +public class ProdutoDAO extends GenericDAO { + +} diff --git a/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/UsuarioDAO.java b/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/UsuarioDAO.java new file mode 100644 index 0000000..b4bf524 --- /dev/null +++ b/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/UsuarioDAO.java @@ -0,0 +1,33 @@ +package br.pro.delfino.drogaria.dao; + +import org.apache.shiro.crypto.hash.SimpleHash; +import org.hibernate.Criteria; +import org.hibernate.Session; +import org.hibernate.criterion.Restrictions; + +import br.pro.delfino.drogaria.domain.Usuario; +import br.pro.delfino.drogaria.util.HibernateUtil; + +public class UsuarioDAO extends GenericDAO { + public Usuario autenticar(String cpf, String senha) { + Session sessao = HibernateUtil.getFabricaDeSessoes().openSession(); + + try{ + Criteria consulta = sessao.createCriteria(Usuario.class); + consulta.createAlias("pessoa", "p"); + + consulta.add(Restrictions.eq("p.cpf", cpf)); + + SimpleHash hash = new SimpleHash("md5", senha); + consulta.add(Restrictions.eq("senha", hash.toHex())); + + Usuario resultado = (Usuario) consulta.uniqueResult(); + + return resultado; + } catch (RuntimeException erro) { + throw erro; + } finally { + sessao.close(); + } + } +} diff --git a/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/VendaDAO.java b/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/VendaDAO.java new file mode 100644 index 0000000..3428939 --- /dev/null +++ b/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/VendaDAO.java @@ -0,0 +1,49 @@ +package br.pro.delfino.drogaria.dao; + +import java.util.List; + +import org.hibernate.Session; +import org.hibernate.Transaction; + +import br.pro.delfino.drogaria.domain.ItemVenda; +import br.pro.delfino.drogaria.domain.Produto; +import br.pro.delfino.drogaria.domain.Venda; +import br.pro.delfino.drogaria.util.HibernateUtil; + +public class VendaDAO extends GenericDAO { + public void salvar(Venda venda, List itensVenda) { + Session sessao = HibernateUtil.getFabricaDeSessoes().openSession(); + Transaction transacao = null; + + try { + transacao = sessao.beginTransaction(); + + sessao.save(venda); + + for (int posicao = 0; posicao < itensVenda.size(); posicao++) { + ItemVenda itemVenda = itensVenda.get(posicao); + itemVenda.setVenda(venda); + + sessao.save(itemVenda); + + Produto produto = itemVenda.getProduto(); + int quantidade = produto.getQuantidade() - itemVenda.getQuantidade(); + if (quantidade >= 0) { + produto.setQuantidade(new Short(quantidade + "")); + sessao.update(produto); + } else { + throw new RuntimeException("Quantidade insuficiente em estoque"); + } + } + + transacao.commit(); + } catch (RuntimeException erro) { + if (transacao != null) { + transacao.rollback(); + } + throw erro; + } finally { + sessao.close(); + } + } +} diff --git a/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Caixa.java b/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Caixa.java new file mode 100644 index 0000000..61fc69b --- /dev/null +++ b/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Caixa.java @@ -0,0 +1,62 @@ +package br.pro.delfino.drogaria.domain; + +import java.math.BigDecimal; +import java.util.Date; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.JoinColumn; +import javax.persistence.ManyToOne; +import javax.persistence.Temporal; +import javax.persistence.TemporalType; + +@SuppressWarnings("serial") +@Entity +public class Caixa extends GenericDomain { + @Column(nullable = false, unique = true) + @Temporal(TemporalType.DATE) + private Date dataAbertura; + + @Column(nullable = true) + @Temporal(TemporalType.DATE) + private Date dataFechamento; + + @Column(nullable = false, precision = 7, scale = 2) + private BigDecimal valorAbertura; + + @ManyToOne + @JoinColumn(nullable = false) + private Funcionario funcionario; + + public Date getDataAbertura() { + return dataAbertura; + } + + public void setDataAbertura(Date dataAbertura) { + this.dataAbertura = dataAbertura; + } + + public Date getDataFechamento() { + return dataFechamento; + } + + public void setDataFechamento(Date dataFechamento) { + this.dataFechamento = dataFechamento; + } + + public BigDecimal getValorAbertura() { + return valorAbertura; + } + + public void setValorAbertura(BigDecimal valorAbertura) { + this.valorAbertura = valorAbertura; + } + + public Funcionario getFuncionario() { + return funcionario; + } + + public void setFuncionario(Funcionario funcionario) { + this.funcionario = funcionario; + } +} diff --git a/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Cidade.java b/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Cidade.java new file mode 100644 index 0000000..cf94ede --- /dev/null +++ b/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Cidade.java @@ -0,0 +1,33 @@ +package br.pro.delfino.drogaria.domain; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.JoinColumn; +import javax.persistence.ManyToOne; + +@SuppressWarnings("serial") +@Entity +public class Cidade extends GenericDomain { + @Column(length = 50, nullable = false) + private String nome; + + @ManyToOne + @JoinColumn(nullable = false) + private Estado estado; + + public String getNome() { + return nome; + } + + public void setNome(String nome) { + this.nome = nome; + } + + public Estado getEstado() { + return estado; + } + + public void setEstado(Estado estado) { + this.estado = estado; + } +} diff --git a/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Cliente.java b/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Cliente.java new file mode 100644 index 0000000..6ace9b9 --- /dev/null +++ b/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Cliente.java @@ -0,0 +1,49 @@ +package br.pro.delfino.drogaria.domain; + +import java.util.Date; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.JoinColumn; +import javax.persistence.OneToOne; +import javax.persistence.Temporal; +import javax.persistence.TemporalType; + +@SuppressWarnings("serial") +@Entity +public class Cliente extends GenericDomain { + @Column(nullable = false) + @Temporal(TemporalType.DATE) + private Date dataCadastro; + + @Column(nullable = false) + private Boolean liberado; + + @OneToOne + @JoinColumn(nullable = false) + private Pessoa pessoa; + + public Date getDataCadastro() { + return dataCadastro; + } + + public void setDataCadastro(Date dataCadastro) { + this.dataCadastro = dataCadastro; + } + + public Boolean getLiberado() { + return liberado; + } + + public void setLiberado(Boolean liberado) { + this.liberado = liberado; + } + + public Pessoa getPessoa() { + return pessoa; + } + + public void setPessoa(Pessoa pessoa) { + this.pessoa = pessoa; + } +} diff --git a/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Estado.java b/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Estado.java new file mode 100644 index 0000000..1c06b98 --- /dev/null +++ b/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Estado.java @@ -0,0 +1,30 @@ +package br.pro.delfino.drogaria.domain; + +import javax.persistence.Column; +import javax.persistence.Entity; + +@SuppressWarnings("serial") +@Entity +public class Estado extends GenericDomain { + @Column(length = 2, nullable = false) + private String sigla; + + @Column(length = 50, nullable = false) + private String nome; + + public String getSigla() { + return sigla; + } + + public void setSigla(String sigla) { + this.sigla = sigla; + } + + public String getNome() { + return nome; + } + + public void setNome(String nome) { + this.nome = nome; + } +} diff --git a/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Fabricante.java b/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Fabricante.java new file mode 100644 index 0000000..02eab8c --- /dev/null +++ b/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Fabricante.java @@ -0,0 +1,19 @@ +package br.pro.delfino.drogaria.domain; + +import javax.persistence.Column; +import javax.persistence.Entity; + +@SuppressWarnings("serial") +@Entity +public class Fabricante extends GenericDomain { + @Column(length = 50, nullable = false) + private String descricao; + + public String getDescricao() { + return descricao; + } + + public void setDescricao(String descricao) { + this.descricao = descricao; + } +} diff --git a/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Funcionario.java b/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Funcionario.java new file mode 100644 index 0000000..dec9378 --- /dev/null +++ b/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Funcionario.java @@ -0,0 +1,49 @@ +package br.pro.delfino.drogaria.domain; + +import java.util.Date; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.JoinColumn; +import javax.persistence.OneToOne; +import javax.persistence.Temporal; +import javax.persistence.TemporalType; + +@SuppressWarnings("serial") +@Entity +public class Funcionario extends GenericDomain { + @Column(length = 15, nullable = false) + private String carteiraTrabalho; + + @Column(nullable = false) + @Temporal(TemporalType.DATE) + private Date dataAdmissao; + + @OneToOne + @JoinColumn(nullable = false) + private Pessoa pessoa; + + public String getCarteiraTrabalho() { + return carteiraTrabalho; + } + + public void setCarteiraTrabalho(String carteiraTrabalho) { + this.carteiraTrabalho = carteiraTrabalho; + } + + public Date getDataAdmissao() { + return dataAdmissao; + } + + public void setDataAdmissao(Date dataAdmissao) { + this.dataAdmissao = dataAdmissao; + } + + public Pessoa getPessoa() { + return pessoa; + } + + public void setPessoa(Pessoa pessoa) { + this.pessoa = pessoa; + } +} diff --git a/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/GenericDomain.java b/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/GenericDomain.java new file mode 100644 index 0000000..f37efea --- /dev/null +++ b/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/GenericDomain.java @@ -0,0 +1,54 @@ +package br.pro.delfino.drogaria.domain; + +import java.io.Serializable; + +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Id; +import javax.persistence.MappedSuperclass; + +@SuppressWarnings("serial") +@MappedSuperclass +public class GenericDomain implements Serializable { + @Id + @GeneratedValue(strategy = GenerationType.AUTO) + private Long codigo; + + public Long getCodigo() { + return codigo; + } + + public void setCodigo(Long codigo) { + this.codigo = codigo; + } + + @Override + public String toString() { + return String.format("%s[codigo=%d]", getClass().getSimpleName(), getCodigo()); + } + + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + ((codigo == null) ? 0 : codigo.hashCode()); + return result; + } + + @Override + public boolean equals(Object obj) { + if (this == obj) + return true; + if (obj == null) + return false; + if (getClass() != obj.getClass()) + return false; + GenericDomain other = (GenericDomain) obj; + if (codigo == null) { + if (other.codigo != null) + return false; + } else if (!codigo.equals(other.codigo)) + return false; + return true; + } +} diff --git a/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Historico.java b/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Historico.java new file mode 100644 index 0000000..dafdaeb --- /dev/null +++ b/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Historico.java @@ -0,0 +1,49 @@ +package br.pro.delfino.drogaria.domain; + +import java.util.Date; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.JoinColumn; +import javax.persistence.ManyToOne; +import javax.persistence.Temporal; +import javax.persistence.TemporalType; + +@SuppressWarnings("serial") +@Entity +public class Historico extends GenericDomain { + @Column(nullable = false) + @Temporal(TemporalType.TIMESTAMP) + private Date horario; + + @Column(nullable = false, length = 500) + private String observacoes; + + @ManyToOne + @JoinColumn(nullable = false) + private Produto produto; + + public Date getHorario() { + return horario; + } + + public void setHorario(Date horario) { + this.horario = horario; + } + + public String getObservacoes() { + return observacoes; + } + + public void setObservacoes(String observacoes) { + this.observacoes = observacoes; + } + + public Produto getProduto() { + return produto; + } + + public void setProduto(Produto produto) { + this.produto = produto; + } +} diff --git a/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/ItemVenda.java b/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/ItemVenda.java new file mode 100644 index 0000000..590ab26 --- /dev/null +++ b/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/ItemVenda.java @@ -0,0 +1,58 @@ +package br.pro.delfino.drogaria.domain; + +import java.math.BigDecimal; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.JoinColumn; +import javax.persistence.ManyToOne; + +@SuppressWarnings("serial") +@Entity +public class ItemVenda extends GenericDomain { + @Column(nullable = false) + private Short quantidade; + + @Column(nullable = false, precision = 7, scale = 2) + private BigDecimal precoParcial; + + @ManyToOne + @JoinColumn(nullable = false) + private Produto produto; + + @ManyToOne + @JoinColumn(nullable = false) + private Venda venda; + + public Short getQuantidade() { + return quantidade; + } + + public void setQuantidade(Short quantidade) { + this.quantidade = quantidade; + } + + public BigDecimal getPrecoParcial() { + return precoParcial; + } + + public void setPrecoParcial(BigDecimal precoParcial) { + this.precoParcial = precoParcial; + } + + public Produto getProduto() { + return produto; + } + + public void setProduto(Produto produto) { + this.produto = produto; + } + + public Venda getVenda() { + return venda; + } + + public void setVenda(Venda venda) { + this.venda = venda; + } +} diff --git a/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Movimentacao.java b/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Movimentacao.java new file mode 100644 index 0000000..c3d6319 --- /dev/null +++ b/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Movimentacao.java @@ -0,0 +1,50 @@ +package br.pro.delfino.drogaria.domain; + +import java.math.BigDecimal; +import java.util.Date; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.JoinColumn; +import javax.persistence.ManyToOne; +import javax.persistence.Temporal; +import javax.persistence.TemporalType; + +@SuppressWarnings("serial") +@Entity +public class Movimentacao extends GenericDomain { + @Column(nullable = false) + @Temporal(TemporalType.TIMESTAMP) + private Date horario; + + @Column(nullable = false, precision = 7, scale = 2) + private BigDecimal valor; + + @ManyToOne + @JoinColumn(nullable = false) + private Caixa caixa; + + public Date getHorario() { + return horario; + } + + public void setHorario(Date horario) { + this.horario = horario; + } + + public BigDecimal getValor() { + return valor; + } + + public void setValor(BigDecimal valor) { + this.valor = valor; + } + + public Caixa getCaixa() { + return caixa; + } + + public void setCaixa(Caixa caixa) { + this.caixa = caixa; + } +} diff --git a/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Pessoa.java b/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Pessoa.java new file mode 100644 index 0000000..f354001 --- /dev/null +++ b/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Pessoa.java @@ -0,0 +1,143 @@ +package br.pro.delfino.drogaria.domain; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.JoinColumn; +import javax.persistence.ManyToOne; + +@SuppressWarnings("serial") +@Entity +public class Pessoa extends GenericDomain { + @Column(length = 50, nullable = false) + private String nome; + + @Column(length = 14, nullable = false) + private String cpf; + + @Column(length = 12, nullable = false) + private String rg; + + @Column(length = 100, nullable = false) + private String rua; + + @Column(nullable = false) + private Short numero; + + @Column(length = 30, nullable = false) + private String bairro; + + @Column(length = 10, nullable = false) + private String cep; + + @Column(length = 10) + private String complemento; + + @Column(length = 13, nullable = false) + private String telefone; + + @Column(length = 14, nullable = false) + private String celular; + + @Column(length = 100, nullable = false) + private String email; + + @ManyToOne + @JoinColumn(nullable = false) + private Cidade cidade; + + public String getNome() { + return nome; + } + + public void setNome(String nome) { + this.nome = nome; + } + + public String getCpf() { + return cpf; + } + + public void setCpf(String cpf) { + this.cpf = cpf; + } + + public String getRg() { + return rg; + } + + public void setRg(String rg) { + this.rg = rg; + } + + public String getRua() { + return rua; + } + + public void setRua(String rua) { + this.rua = rua; + } + + public Short getNumero() { + return numero; + } + + public void setNumero(Short numero) { + this.numero = numero; + } + + public String getBairro() { + return bairro; + } + + public void setBairro(String bairro) { + this.bairro = bairro; + } + + public String getCep() { + return cep; + } + + public void setCep(String cep) { + this.cep = cep; + } + + public String getComplemento() { + return complemento; + } + + public void setComplemento(String complemento) { + this.complemento = complemento; + } + + public String getTelefone() { + return telefone; + } + + public void setTelefone(String telefone) { + this.telefone = telefone; + } + + public String getCelular() { + return celular; + } + + public void setCelular(String celular) { + this.celular = celular; + } + + public String getEmail() { + return email; + } + + public void setEmail(String email) { + this.email = email; + } + + public Cidade getCidade() { + return cidade; + } + + public void setCidade(Cidade cidade) { + this.cidade = cidade; + } +} diff --git a/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Produto.java b/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Produto.java new file mode 100644 index 0000000..82049b0 --- /dev/null +++ b/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Produto.java @@ -0,0 +1,69 @@ +package br.pro.delfino.drogaria.domain; + +import java.math.BigDecimal; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.JoinColumn; +import javax.persistence.ManyToOne; +import javax.persistence.Transient; + +@SuppressWarnings("serial") +@Entity +public class Produto extends GenericDomain { + @Column(length = 80, nullable = false) + private String descricao; + + @Column(nullable = false) + private Short quantidade; + + @Column(nullable = false, precision = 6, scale = 2) + private BigDecimal preco; + + @ManyToOne + @JoinColumn(nullable = false) + private Fabricante fabricante; + + @Transient + private String caminho; + + public String getDescricao() { + return descricao; + } + + public void setDescricao(String descricao) { + this.descricao = descricao; + } + + public Short getQuantidade() { + return quantidade; + } + + public void setQuantidade(Short quantidade) { + this.quantidade = quantidade; + } + + public BigDecimal getPreco() { + return preco; + } + + public void setPreco(BigDecimal preco) { + this.preco = preco; + } + + public Fabricante getFabricante() { + return fabricante; + } + + public void setFabricante(Fabricante fabricante) { + this.fabricante = fabricante; + } + + public String getCaminho() { + return caminho; + } + + public void setCaminho(String caminho) { + this.caminho = caminho; + } +} diff --git a/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Usuario.java b/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Usuario.java new file mode 100644 index 0000000..ae51941 --- /dev/null +++ b/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Usuario.java @@ -0,0 +1,93 @@ +package br.pro.delfino.drogaria.domain; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.JoinColumn; +import javax.persistence.OneToOne; +import javax.persistence.Transient; + +@SuppressWarnings("serial") +@Entity +public class Usuario extends GenericDomain { + @Column(length = 32, nullable = false) + private String senha; + + @Transient + private String senhaSemCriptografia; + + @Column(nullable = false) + private Character tipo; + + @Column(nullable = false) + private Boolean ativo; + + @OneToOne + @JoinColumn(nullable = false) + private Pessoa pessoa; + + public String getSenha() { + return senha; + } + + public void setSenha(String senha) { + this.senha = senha; + } + + public String getSenhaSemCriptografia() { + return senhaSemCriptografia; + } + + public void setSenhaSemCriptografia(String senhaSemCriptografia) { + this.senhaSemCriptografia = senhaSemCriptografia; + } + + public Character getTipo() { + return tipo; + } + + @Transient + public String getTipoFormatado() { + String tipoFormatado = null; + + if (tipo == 'A') { + tipoFormatado = "Administrador"; + } else if (tipo == 'B') { + tipoFormatado = "Balconista"; + } else if (tipo == 'G') { + tipoFormatado = "Gerente"; + } + + return tipoFormatado; + } + + public void setTipo(Character tipo) { + this.tipo = tipo; + } + + public Boolean getAtivo() { + return ativo; + } + + @Transient + public String getAtivoFormatado(){ + String ativoFormatado = "Não"; + + if(ativo){ + ativoFormatado = "Sim"; + } + + return ativoFormatado; + } + + public void setAtivo(Boolean ativo) { + this.ativo = ativo; + } + + public Pessoa getPessoa() { + return pessoa; + } + + public void setPessoa(Pessoa pessoa) { + this.pessoa = pessoa; + } +} diff --git a/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Venda.java b/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Venda.java new file mode 100644 index 0000000..3f4c226 --- /dev/null +++ b/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Venda.java @@ -0,0 +1,61 @@ +package br.pro.delfino.drogaria.domain; + +import java.math.BigDecimal; +import java.util.Date; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.JoinColumn; +import javax.persistence.ManyToOne; +import javax.persistence.Temporal; +import javax.persistence.TemporalType; + +@SuppressWarnings("serial") +@Entity +public class Venda extends GenericDomain { + @Column(nullable = false) + @Temporal(TemporalType.TIMESTAMP) + private Date horario; + + @Column(nullable = false, precision = 7, scale = 2) + private BigDecimal precoTotal; + + @ManyToOne + private Cliente cliente; + + @ManyToOne + @JoinColumn(nullable = false) + private Funcionario funcionario; + + public Date getHorario() { + return horario; + } + + public void setHorario(Date horario) { + this.horario = horario; + } + + public BigDecimal getPrecoTotal() { + return precoTotal; + } + + public void setPrecoTotal(BigDecimal precoTotal) { + this.precoTotal = precoTotal; + } + + public Cliente getCliente() { + return cliente; + } + + public void setCliente(Cliente cliente) { + this.cliente = cliente; + } + + public Funcionario getFuncionario() { + return funcionario; + } + + public void setFuncionario(Funcionario funcionario) { + this.funcionario = funcionario; + } +} diff --git a/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/java/br/pro/delfino/drogaria/service/DrogariaService.java b/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/java/br/pro/delfino/drogaria/service/DrogariaService.java new file mode 100644 index 0000000..fbb1f2b --- /dev/null +++ b/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/java/br/pro/delfino/drogaria/service/DrogariaService.java @@ -0,0 +1,13 @@ +package br.pro.delfino.drogaria.service; + +import javax.ws.rs.GET; +import javax.ws.rs.Path; + +// http://localhost:8080/Drogaria/rest/drogaria +@Path("drogaria") +public class DrogariaService { + @GET + public String exibir(){ + return "Curso de Java"; + } +} diff --git a/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/java/br/pro/delfino/drogaria/service/FabricanteService.java b/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/java/br/pro/delfino/drogaria/service/FabricanteService.java new file mode 100644 index 0000000..1dbc0d1 --- /dev/null +++ b/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/java/br/pro/delfino/drogaria/service/FabricanteService.java @@ -0,0 +1,85 @@ +package br.pro.delfino.drogaria.service; + +import java.util.List; + +import javax.ws.rs.DELETE; +import javax.ws.rs.GET; +import javax.ws.rs.POST; +import javax.ws.rs.PUT; +import javax.ws.rs.Path; +import javax.ws.rs.PathParam; + +import com.google.gson.Gson; + +import br.pro.delfino.drogaria.dao.FabricanteDAO; +import br.pro.delfino.drogaria.domain.Fabricante; + +@Path("fabricante") +public class FabricanteService { + // http://127.0.0.1:8080/Drogaria/rest/fabricante + @GET + public String listar() { + FabricanteDAO fabricanteDAO = new FabricanteDAO(); + List fabricantes = fabricanteDAO.listar("descricao"); + + Gson gson = new Gson(); + String json = gson.toJson(fabricantes); + + return json; + } + + // http://127.0.0.1:8080/Drogaria/rest/fabricante/{codigo} + // http://127.0.0.1:8080/Drogaria/rest/fabricante/10 + @GET + @Path("{codigo}") + public String buscar(@PathParam("codigo") Long codigo) { + FabricanteDAO fabricanteDAO = new FabricanteDAO(); + Fabricante fabricante = fabricanteDAO.buscar(codigo); + + Gson gson = new Gson(); + String json = gson.toJson(fabricante); + + return json; + } + + // http://127.0.0.1:8080/Drogaria/rest/fabricante + @POST + public String salvar(String json) { + Gson gson = new Gson(); + Fabricante fabricante = gson.fromJson(json, Fabricante.class); + + FabricanteDAO fabricanteDAO = new FabricanteDAO(); + fabricanteDAO.merge(fabricante); + + String jsonSaida = gson.toJson(fabricante); + return jsonSaida; + } + + // http://127.0.0.1:8080/Drogaria/rest/fabricante + @PUT + public String editar(String json) { + Gson gson = new Gson(); + Fabricante fabricante = gson.fromJson(json, Fabricante.class); + + FabricanteDAO fabricanteDAO = new FabricanteDAO(); + fabricanteDAO.editar(fabricante); + + String jsonSaida = gson.toJson(fabricante); + return jsonSaida; + } + + // http://127.0.0.1:8080/Drogaria/rest/fabricante/{codigo} + // http://127.0.0.1:8080/Drogaria/rest/fabricante/10 + @DELETE + @Path("{codigo}") + public String excluir(@PathParam("codigo") Long codigo){ + FabricanteDAO fabricanteDAO = new FabricanteDAO(); + + Fabricante fabricante = fabricanteDAO.buscar(codigo); + fabricanteDAO.excluir(fabricante); + + Gson gson = new Gson(); + String saida = gson.toJson(fabricante); + return saida; + } +} diff --git a/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/java/br/pro/delfino/drogaria/service/ProdutoService.java b/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/java/br/pro/delfino/drogaria/service/ProdutoService.java new file mode 100644 index 0000000..4dfdf40 --- /dev/null +++ b/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/java/br/pro/delfino/drogaria/service/ProdutoService.java @@ -0,0 +1,39 @@ +package br.pro.delfino.drogaria.service; + +import java.util.List; + +import javax.ws.rs.GET; +import javax.ws.rs.POST; +import javax.ws.rs.Path; + +import com.google.gson.Gson; + +import br.pro.delfino.drogaria.dao.ProdutoDAO; +import br.pro.delfino.drogaria.domain.Produto; + +// http://127.0.0.1:8080/Drogaria/rest/produto +@Path("produto") +public class ProdutoService { + @GET + public String listar(){ + ProdutoDAO produtoDAO = new ProdutoDAO(); + List produtos = produtoDAO.listar("descricao"); + + Gson gson = new Gson(); + String json = gson.toJson(produtos); + + return json; + } + + @POST + public String salvar (String json){ + Gson gson = new Gson(); + Produto produto = gson.fromJson(json, Produto.class); + + ProdutoDAO produtoDAO = new ProdutoDAO(); + produto = produtoDAO.merge(produto); + + String jsonSaida = gson.toJson(produto); + return jsonSaida; + } +} diff --git a/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/java/br/pro/delfino/drogaria/util/AutenticacaoListener.java b/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/java/br/pro/delfino/drogaria/util/AutenticacaoListener.java new file mode 100644 index 0000000..530a78d --- /dev/null +++ b/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/java/br/pro/delfino/drogaria/util/AutenticacaoListener.java @@ -0,0 +1,46 @@ +package br.pro.delfino.drogaria.util; + +import javax.faces.event.PhaseEvent; +import javax.faces.event.PhaseId; +import javax.faces.event.PhaseListener; + +import org.omnifaces.util.Faces; + +import br.pro.delfino.drogaria.bean.AutenticacaoBean; +import br.pro.delfino.drogaria.domain.Usuario; + +@SuppressWarnings("serial") +public class AutenticacaoListener implements PhaseListener { + + @Override + public void afterPhase(PhaseEvent event) { + String paginaAtual = Faces.getViewId(); + + boolean ehPaginaDeAutenticacao = paginaAtual.contains("autenticacao.xhtml"); + + if(!ehPaginaDeAutenticacao){ + AutenticacaoBean autenticacaoBean = Faces.getSessionAttribute("autenticacaoBean"); + + if(autenticacaoBean == null){ + Faces.navigate("/pages/autenticacao.xhtml"); + return; + } + + Usuario usuario = autenticacaoBean.getUsuarioLogado(); + if(usuario == null){ + Faces.navigate("/pages/autenticacao.xhtml"); + return; + } + } + } + + @Override + public void beforePhase(PhaseEvent event) { + } + + @Override + public PhaseId getPhaseId() { + return PhaseId.RESTORE_VIEW; + } + +} diff --git a/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/java/br/pro/delfino/drogaria/util/DrogariaResourceConfig.java b/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/java/br/pro/delfino/drogaria/util/DrogariaResourceConfig.java new file mode 100644 index 0000000..2c997a9 --- /dev/null +++ b/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/java/br/pro/delfino/drogaria/util/DrogariaResourceConfig.java @@ -0,0 +1,13 @@ +package br.pro.delfino.drogaria.util; + +import javax.ws.rs.ApplicationPath; + +import org.glassfish.jersey.server.ResourceConfig; + +//http://localhost:8080/Drogaria/rest +@ApplicationPath("rest") +public class DrogariaResourceConfig extends ResourceConfig { + public DrogariaResourceConfig(){ + packages("br.pro.delfino.drogaria.service"); + } +} diff --git a/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/java/br/pro/delfino/drogaria/util/HibernateContexto.java b/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/java/br/pro/delfino/drogaria/util/HibernateContexto.java new file mode 100644 index 0000000..71869d7 --- /dev/null +++ b/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/java/br/pro/delfino/drogaria/util/HibernateContexto.java @@ -0,0 +1,18 @@ +package br.pro.delfino.drogaria.util; + +import javax.servlet.ServletContextEvent; +import javax.servlet.ServletContextListener; + +public class HibernateContexto implements ServletContextListener { + + @Override + public void contextDestroyed(ServletContextEvent event) { + HibernateUtil.getFabricaDeSessoes().close(); + } + + @Override + public void contextInitialized(ServletContextEvent event) { + HibernateUtil.getFabricaDeSessoes(); + } + +} diff --git a/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/java/br/pro/delfino/drogaria/util/HibernateUtil.java b/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/java/br/pro/delfino/drogaria/util/HibernateUtil.java new file mode 100644 index 0000000..693551b --- /dev/null +++ b/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/java/br/pro/delfino/drogaria/util/HibernateUtil.java @@ -0,0 +1,47 @@ +package br.pro.delfino.drogaria.util; + +import java.sql.Connection; +import java.sql.SQLException; + +import org.hibernate.Session; +import org.hibernate.SessionFactory; +import org.hibernate.boot.registry.StandardServiceRegistryBuilder; +import org.hibernate.cfg.Configuration; +import org.hibernate.jdbc.ReturningWork; +import org.hibernate.service.ServiceRegistry; + +public class HibernateUtil { + private static SessionFactory fabricaDeSessoes = criarFabricaDeSessoes(); + + public static SessionFactory getFabricaDeSessoes() { + return fabricaDeSessoes; + } + + public static Connection getConexao(){ + Session sessao = fabricaDeSessoes.openSession(); + + Connection conexao = sessao.doReturningWork(new ReturningWork() { + @Override + public Connection execute(Connection conn) throws SQLException { + return conn; + } + }); + + return conexao; + } + + private static SessionFactory criarFabricaDeSessoes() { + try { + Configuration configuracao = new Configuration().configure(); + + ServiceRegistry registro = new StandardServiceRegistryBuilder().applySettings(configuracao.getProperties()).build(); + + SessionFactory fabrica = configuracao.buildSessionFactory(registro); + + return fabrica; + } catch (Throwable ex) { + System.err.println("A fábrica de sessões não pode ser criada." + ex); + throw new ExceptionInInitializerError(ex); + } + } +} diff --git a/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/resources/hibernate.cfg.xml b/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/resources/hibernate.cfg.xml new file mode 100644 index 0000000..65f392e --- /dev/null +++ b/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/resources/hibernate.cfg.xml @@ -0,0 +1,51 @@ + + + + + + + + + + com.mysql.jdbc.Driver + jdbc:mysql://127.0.0.1:3306/drogaria + root + q1w2e3r4 + + + 1 + + + org.hibernate.dialect.MySQL5InnoDBDialect + + + thread + + + org.hibernate.cache.internal.NoCacheProvider + + + true + + + update + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/webapp/WEB-INF/.faces-config.xml.jsfdia b/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/webapp/WEB-INF/.faces-config.xml.jsfdia new file mode 100644 index 0000000..2155d94 --- /dev/null +++ b/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/webapp/WEB-INF/.faces-config.xml.jsfdia @@ -0,0 +1,2 @@ + + diff --git a/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/webapp/WEB-INF/faces-config.xml b/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/webapp/WEB-INF/faces-config.xml new file mode 100644 index 0000000..ad8945b --- /dev/null +++ b/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/webapp/WEB-INF/faces-config.xml @@ -0,0 +1,12 @@ + + + + + + + br.pro.delfino.drogaria.util.AutenticacaoListener + + + diff --git a/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/webapp/WEB-INF/web.xml b/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/webapp/WEB-INF/web.xml new file mode 100644 index 0000000..7e03633 --- /dev/null +++ b/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/webapp/WEB-INF/web.xml @@ -0,0 +1,52 @@ + + + + Drogaria + + + + javax.faces.CONFIG_FILES + /WEB-INF/faces-config.xml + + + + + javax.faces.PROJECT_STAGE + Development + + + + + primefaces.THEME + blitzer + + + + + primefaces.UPLOADER + native + + + + + br.pro.delfino.drogaria.util.HibernateContexto + + + + + Faces Servlet + javax.faces.webapp.FacesServlet + 1 + + + Faces Servlet + *.xhtml + + + + + pages/principal.xhtml + + diff --git a/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/webapp/pages/autenticacao.xhtml b/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/webapp/pages/autenticacao.xhtml new file mode 100644 index 0000000..e41a833 --- /dev/null +++ b/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/webapp/pages/autenticacao.xhtml @@ -0,0 +1,36 @@ + + + + + + Autenticação + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/webapp/pages/caixa.xhtml b/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/webapp/pages/caixa.xhtml new file mode 100644 index 0000000..526e766 --- /dev/null +++ b/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/webapp/pages/caixa.xhtml @@ -0,0 +1,50 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/webapp/pages/cidades.xhtml b/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/webapp/pages/cidades.xhtml new file mode 100644 index 0000000..504f3a3 --- /dev/null +++ b/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/webapp/pages/cidades.xhtml @@ -0,0 +1,100 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/webapp/pages/clientes.xhtml b/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/webapp/pages/clientes.xhtml new file mode 100644 index 0000000..4e3cfb5 --- /dev/null +++ b/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/webapp/pages/clientes.xhtml @@ -0,0 +1,94 @@ + + + + + + Clientes + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/webapp/pages/estados.xhtml b/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/webapp/pages/estados.xhtml new file mode 100644 index 0000000..0cddf5e --- /dev/null +++ b/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/webapp/pages/estados.xhtml @@ -0,0 +1,90 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/webapp/pages/fabricantes.xhtml b/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/webapp/pages/fabricantes.xhtml new file mode 100644 index 0000000..3904db0 --- /dev/null +++ b/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/webapp/pages/fabricantes.xhtml @@ -0,0 +1,78 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/webapp/pages/historico.xhtml b/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/webapp/pages/historico.xhtml new file mode 100644 index 0000000..184a864 --- /dev/null +++ b/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/webapp/pages/historico.xhtml @@ -0,0 +1,64 @@ + + + + + + Histórico + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/webapp/pages/pessoas.xhtml b/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/webapp/pages/pessoas.xhtml new file mode 100644 index 0000000..7d68e8c --- /dev/null +++ b/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/webapp/pages/pessoas.xhtml @@ -0,0 +1,162 @@ + + + + + + Pessoas + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/webapp/pages/principal.xhtml b/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/webapp/pages/principal.xhtml new file mode 100644 index 0000000..726842c --- /dev/null +++ b/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/webapp/pages/principal.xhtml @@ -0,0 +1,14 @@ + + + + + + + + + \ No newline at end of file diff --git a/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/webapp/pages/produtos.xhtml b/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/webapp/pages/produtos.xhtml new file mode 100644 index 0000000..56c5db4 --- /dev/null +++ b/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/webapp/pages/produtos.xhtml @@ -0,0 +1,141 @@ + + + + + + Produtos + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/webapp/pages/produtosEdicao.xhtml b/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/webapp/pages/produtosEdicao.xhtml new file mode 100644 index 0000000..9eae78a --- /dev/null +++ b/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/webapp/pages/produtosEdicao.xhtml @@ -0,0 +1,67 @@ + + + + + + + + + + + + Produtos + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/webapp/pages/produtosListagem.xhtml b/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/webapp/pages/produtosListagem.xhtml new file mode 100644 index 0000000..2b30417 --- /dev/null +++ b/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/webapp/pages/produtosListagem.xhtml @@ -0,0 +1,59 @@ + + + + + + + + + + + Produtos + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/webapp/pages/testeJSF.xhtml b/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/webapp/pages/testeJSF.xhtml new file mode 100644 index 0000000..c20659b --- /dev/null +++ b/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/webapp/pages/testeJSF.xhtml @@ -0,0 +1,12 @@ + + + + + + Teste JSF + + + + + \ No newline at end of file diff --git a/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/webapp/pages/testePrimeFaces.xhtml b/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/webapp/pages/testePrimeFaces.xhtml new file mode 100644 index 0000000..6c4d434 --- /dev/null +++ b/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/webapp/pages/testePrimeFaces.xhtml @@ -0,0 +1,14 @@ + + + + + + Teste PrimeFaces + + + + + \ No newline at end of file diff --git a/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/webapp/pages/usuarios.xhtml b/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/webapp/pages/usuarios.xhtml new file mode 100644 index 0000000..45dd761 --- /dev/null +++ b/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/webapp/pages/usuarios.xhtml @@ -0,0 +1,97 @@ + + + + + + Usuários + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/webapp/pages/vendas.xhtml b/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/webapp/pages/vendas.xhtml new file mode 100644 index 0000000..4485892 --- /dev/null +++ b/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/webapp/pages/vendas.xhtml @@ -0,0 +1,156 @@ + + + + + + Vendas + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/webapp/reports/estados.jasper b/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/webapp/reports/estados.jasper new file mode 100644 index 0000000..96a1278 Binary files /dev/null and b/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/webapp/reports/estados.jasper differ diff --git a/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/webapp/reports/estados.jrxml b/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/webapp/reports/estados.jrxml new file mode 100644 index 0000000..76da981 --- /dev/null +++ b/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/webapp/reports/estados.jrxml @@ -0,0 +1,102 @@ + + + + + + + + + + + + + + + + + + + + <band height="80" splitType="Stretch"> + <image hAlign="Center" vAlign="Middle"> + <reportElement x="0" y="0" width="555" height="80" uuid="6f3208e9-d291-48b3-b13d-3ec9ef72cd3e"> + <property name="com.jaspersoft.studio.unit.width" value="pixel"/> + </reportElement> + <imageExpression><![CDATA["C:/Programação Web com Java/Workspace/Drogaria/src/main/webapp/resources/images/banner.jpg"]]></imageExpression> + </image> + </band> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/webapp/reports/produtos.jasper b/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/webapp/reports/produtos.jasper new file mode 100644 index 0000000..ad55e5f Binary files /dev/null and b/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/webapp/reports/produtos.jasper differ diff --git a/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/webapp/reports/produtos.jrxml b/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/webapp/reports/produtos.jrxml new file mode 100644 index 0000000..800aed0 --- /dev/null +++ b/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/webapp/reports/produtos.jrxml @@ -0,0 +1,130 @@ + + + + + + + + + + + + + + + + + + + + + <band height="79" splitType="Stretch"> + <image hAlign="Center"> + <reportElement x="0" y="0" width="555" height="79" uuid="727feda0-73ba-4c27-aa2c-a431492bd3d6"> + <property name="com.jaspersoft.studio.unit.width" value="pixel"/> + </reportElement> + <imageExpression><![CDATA["C:/Programação Web com Java/Workspace/Drogaria/src/main/webapp/resources/images/banner.jpg"]]></imageExpression> + </image> + </band> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/webapp/resources/css/estilos.css b/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/webapp/resources/css/estilos.css new file mode 100644 index 0000000..4acdd7f --- /dev/null +++ b/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/webapp/resources/css/estilos.css @@ -0,0 +1,19 @@ +@CHARSET "UTF-8"; + +.imagemCentralizada { + display: block; + margin-left: auto; + margin-right: auto; +} + +.divTopo { + padding-bottom: 5px; +} + +.divCabecalho { + padding-bottom: 5px; +} + +.ui-widget, .ui-widget .ui-widget { + font-size: 100% !important; +} \ No newline at end of file diff --git a/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/webapp/resources/images/banner.jpg b/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/webapp/resources/images/banner.jpg new file mode 100644 index 0000000..f58cc21 Binary files /dev/null and b/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/webapp/resources/images/banner.jpg differ diff --git a/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/webapp/resources/js/scripts.js b/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/webapp/resources/js/scripts.js new file mode 100644 index 0000000..e39ad9b --- /dev/null +++ b/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/webapp/resources/js/scripts.js @@ -0,0 +1,26 @@ +PrimeFaces.locales['pt_BR'] = { + closeText: 'Fechar', + prevText: 'Anterior', + nextText: 'Próximo', + currentText: 'Começo', + monthNames: ['Janeiro','Fevereiro','Março','Abril','Maio','Junho','Julho','Agosto','Setembro','Outubro','Novembro','Dezembro'], + monthNamesShort: ['Jan','Fev','Mar','Abr','Mai','Jun', 'Jul','Ago','Set','Out','Nov','Dez'], + dayNames: ['Domingo','Segunda','Terça','Quarta','Quinta','Sexta','Sábado'], + dayNamesShort: ['Dom','Seg','Ter','Qua','Qui','Sex','Sáb'], + dayNamesMin: ['D','S','T','Q','Q','S','S'], + weekHeader: 'Semana', + firstDay: 0, + isRTL: false, + showMonthAfterYear: false, + yearSuffix: '', + timeOnlyTitle: 'Só Horas', + timeText: 'Tempo', + hourText: 'Hora', + minuteText: 'Minuto', + secondText: 'Segundo', + ampm: false, + month: 'Mês', + week: 'Semana', + day: 'Dia', + allDayText : 'Todo o Dia' +}; \ No newline at end of file diff --git a/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/webapp/templates/modelo.xhtml b/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/webapp/templates/modelo.xhtml new file mode 100644 index 0000000..08a3cb3 --- /dev/null +++ b/293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/webapp/templates/modelo.xhtml @@ -0,0 +1,56 @@ + + + + + + SiGDro + + + + + +
+
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+
+ \ No newline at end of file diff --git a/293_Permissoes_Ocultamento_Componentes/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/CaixaDAOTest.java b/293_Permissoes_Ocultamento_Componentes/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/CaixaDAOTest.java new file mode 100644 index 0000000..b5e6156 --- /dev/null +++ b/293_Permissoes_Ocultamento_Componentes/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/CaixaDAOTest.java @@ -0,0 +1,33 @@ +package br.pro.delfino.drogaria.dao; + +import java.math.BigDecimal; +import java.text.ParseException; +import java.text.SimpleDateFormat; + +import org.junit.Assert; +import org.junit.Ignore; +import org.junit.Test; + +import br.pro.delfino.drogaria.domain.Caixa; + +public class CaixaDAOTest { + @Test + @Ignore + public void salvar() throws ParseException { + Caixa caixa = new Caixa(); + caixa.setDataAbertura(new SimpleDateFormat("dd/MM/yyyy").parse("14/12/2015")); + caixa.setValorAbertura(new BigDecimal("100.00")); + + CaixaDAO caixaDAO = new CaixaDAO(); + caixaDAO.salvar(caixa); + } + + @Test + @Ignore + public void buscar() throws ParseException { + CaixaDAO caixaDAO = new CaixaDAO(); + Caixa caixa = caixaDAO.buscar(new SimpleDateFormat("dd/MM/yyyy").parse("13/12/2015")); + System.out.println(caixa); + Assert.assertNull(caixa); + } +} diff --git a/293_Permissoes_Ocultamento_Componentes/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/CidadeDAOTest.java b/293_Permissoes_Ocultamento_Componentes/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/CidadeDAOTest.java new file mode 100644 index 0000000..ec59599 --- /dev/null +++ b/293_Permissoes_Ocultamento_Componentes/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/CidadeDAOTest.java @@ -0,0 +1,130 @@ +package br.pro.delfino.drogaria.dao; + +import java.util.List; + +import org.junit.Ignore; +import org.junit.Test; + +import br.pro.delfino.drogaria.domain.Cidade; +import br.pro.delfino.drogaria.domain.Estado; + +public class CidadeDAOTest { + @Test + @Ignore + public void salvar() { + Long codigoEstado = 1L; + + EstadoDAO estadoDAO = new EstadoDAO(); + + Estado estado = estadoDAO.buscar(codigoEstado); + + Cidade cidade = new Cidade(); + cidade.setNome("Marília"); + cidade.setEstado(estado); + + CidadeDAO cidadeDAO = new CidadeDAO(); + cidadeDAO.salvar(cidade); + } + + @Test + @Ignore + public void listar() { + CidadeDAO cidadeDAO = new CidadeDAO(); + List resultado = cidadeDAO.listar(); + + for (Cidade cidade : resultado) { + System.out.println("Código da Cidade: " + cidade.getCodigo()); + System.out.println("Nome da Cidade: " + cidade.getNome()); + System.out.println("Código do Estado: " + cidade.getEstado().getCodigo()); + System.out.println("Sigla do Estado: " + cidade.getEstado().getSigla()); + System.out.println("Nome do Estado: " + cidade.getEstado().getNome()); + System.out.println(); + } + } + + @Test + @Ignore + public void buscar(){ + Long codigo = 7L; + + CidadeDAO cidadeDAO = new CidadeDAO(); + Cidade cidade = cidadeDAO.buscar(codigo); + + System.out.println("Código da Cidade: " + cidade.getCodigo()); + System.out.println("Nome da Cidade: " + cidade.getNome()); + System.out.println("Código do Estado: " + cidade.getEstado().getCodigo()); + System.out.println("Sigla do Estado: " + cidade.getEstado().getSigla()); + System.out.println("Nome do Estado: " + cidade.getEstado().getNome()); + } + + @Test + @Ignore + public void excluir(){ + Long codigo = 7L; + + CidadeDAO cidadeDAO = new CidadeDAO(); + Cidade cidade = cidadeDAO.buscar(codigo); + + cidadeDAO.excluir(cidade); + + System.out.println("Cidade Removida"); + System.out.println("Código da Cidade: " + cidade.getCodigo()); + System.out.println("Nome da Cidade: " + cidade.getNome()); + System.out.println("Código do Estado: " + cidade.getEstado().getCodigo()); + System.out.println("Sigla do Estado: " + cidade.getEstado().getSigla()); + System.out.println("Nome do Estado: " + cidade.getEstado().getNome()); + } + + @Test + @Ignore + public void editar(){ + Long codigoCidade = 6L; + Long codigoEstado = 11L; + + EstadoDAO estadoDAO = new EstadoDAO(); + Estado estado = estadoDAO.buscar(codigoEstado); + + System.out.println("Código do Estado: " + estado.getCodigo()); + System.out.println("Sigla do Estado: " + estado.getSigla()); + System.out.println("Nome do Estado: " + estado.getNome()); + + CidadeDAO cidadeDAO = new CidadeDAO(); + Cidade cidade = cidadeDAO.buscar(codigoCidade); + + System.out.println("Cidade A Ser Editada"); + System.out.println("Código da Cidade: " + cidade.getCodigo()); + System.out.println("Nome da Cidade: " + cidade.getNome()); + System.out.println("Código do Estado: " + cidade.getEstado().getCodigo()); + System.out.println("Sigla do Estado: " + cidade.getEstado().getSigla()); + System.out.println("Nome do Estado: " + cidade.getEstado().getNome()); + + cidade.setNome("Guarapuava"); + cidade.setEstado(estado); + + cidadeDAO.editar(cidade); + + System.out.println("Cidade Editada"); + System.out.println("Código da Cidade: " + cidade.getCodigo()); + System.out.println("Nome da Cidade: " + cidade.getNome()); + System.out.println("Código do Estado: " + cidade.getEstado().getCodigo()); + System.out.println("Sigla do Estado: " + cidade.getEstado().getSigla()); + System.out.println("Nome do Estado: " + cidade.getEstado().getNome()); + } + + @Test + public void buscarPorEstado() { + Long estadoCodigo = 3L; + + CidadeDAO cidadeDAO = new CidadeDAO(); + List resultado = cidadeDAO.buscarPorEstado(estadoCodigo); + + for (Cidade cidade : resultado) { + System.out.println("Código da Cidade: " + cidade.getCodigo()); + System.out.println("Nome da Cidade: " + cidade.getNome()); + System.out.println("Código do Estado: " + cidade.getEstado().getCodigo()); + System.out.println("Sigla do Estado: " + cidade.getEstado().getSigla()); + System.out.println("Nome do Estado: " + cidade.getEstado().getNome()); + System.out.println(); + } + } +} diff --git a/293_Permissoes_Ocultamento_Componentes/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/ClienteDAOTest.java b/293_Permissoes_Ocultamento_Componentes/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/ClienteDAOTest.java new file mode 100644 index 0000000..4d557d9 --- /dev/null +++ b/293_Permissoes_Ocultamento_Componentes/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/ClienteDAOTest.java @@ -0,0 +1,29 @@ +package br.pro.delfino.drogaria.dao; + +import java.text.ParseException; +import java.text.SimpleDateFormat; + +import org.junit.Ignore; +import org.junit.Test; + +import br.pro.delfino.drogaria.domain.Cliente; +import br.pro.delfino.drogaria.domain.Pessoa; + +public class ClienteDAOTest { + @Test + @Ignore + public void salvar() throws ParseException { + PessoaDAO pessoaDAO = new PessoaDAO(); + Pessoa pessoa = pessoaDAO.buscar(2L); + + Cliente cliente = new Cliente(); + cliente.setDataCadastro(new SimpleDateFormat("dd/MM/yyyy").parse("09/06/2015")); + cliente.setLiberado(false); + cliente.setPessoa(pessoa); + + ClienteDAO clienteDAO = new ClienteDAO(); + clienteDAO.salvar(cliente); + + System.out.println("Cliente salvo com sucesso."); + } +} diff --git a/293_Permissoes_Ocultamento_Componentes/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/EstadoDAOTest.java b/293_Permissoes_Ocultamento_Componentes/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/EstadoDAOTest.java new file mode 100644 index 0000000..f84a086 --- /dev/null +++ b/293_Permissoes_Ocultamento_Componentes/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/EstadoDAOTest.java @@ -0,0 +1,88 @@ +package br.pro.delfino.drogaria.dao; + +import java.util.List; + +import org.junit.Ignore; +import org.junit.Test; + +import br.pro.delfino.drogaria.domain.Estado; + +public class EstadoDAOTest { + @Test + @Ignore + public void salvar() { + Estado estado = new Estado(); + estado.setNome("Rio Grande do Sul"); + estado.setSigla("RS"); + + EstadoDAO estadoDAO = new EstadoDAO(); + estadoDAO.salvar(estado); + } + + @Test + @Ignore + public void listar() { + EstadoDAO estadoDAO = new EstadoDAO(); + List resultado = estadoDAO.listar(); + + System.out.println("Total de Registros Encontrados: " + resultado.size()); + + for (Estado estado : resultado) { + System.out.println(estado.getCodigo() + " - " + estado.getSigla() + " - " + estado.getNome()); + } + } + + @Test + @Ignore + public void buscar(){ + Long codigo = 3L; + + EstadoDAO estadoDAO = new EstadoDAO(); + Estado estado = estadoDAO.buscar(codigo); + + if(estado == null){ + System.out.println("Nenhum registro encontrado"); + }else{ + System.out.println("Registro encontrado:"); + System.out.println(estado.getCodigo() + " - " + estado.getSigla() + " - " + estado.getNome()); + } + } + + @Test + @Ignore + public void excluir(){ + Long codigo = 1L; + EstadoDAO estadoDAO = new EstadoDAO(); + Estado estado = estadoDAO.buscar(codigo); + + if(estado == null){ + System.out.println("Nenhum registro encontrado"); + }else{ + estadoDAO.excluir(estado); + System.out.println("Registro removido:"); + System.out.println(estado.getCodigo() + " - " + estado.getSigla() + " - " + estado.getNome()); + } + } + + @Test + @Ignore + public void editar(){ + Long codigo = 10L; + EstadoDAO estadoDAO = new EstadoDAO(); + Estado estado = estadoDAO.buscar(codigo); + + if(estado == null){ + System.out.println("Nenhum registro encontrado"); + }else{ + System.out.println("Registro editado - Antes:"); + System.out.println(estado.getCodigo() + " - " + estado.getSigla() + " - " + estado.getNome()); + + estado.setNome("Santa Catarina"); + estado.setSigla("SC"); + estadoDAO.editar(estado); + + System.out.println("Registro editado - Depois:"); + System.out.println(estado.getCodigo() + " - " + estado.getSigla() + " - " + estado.getNome()); + } + } +} diff --git a/293_Permissoes_Ocultamento_Componentes/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/FabricanteDAOTest.java b/293_Permissoes_Ocultamento_Componentes/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/FabricanteDAOTest.java new file mode 100644 index 0000000..56fb124 --- /dev/null +++ b/293_Permissoes_Ocultamento_Componentes/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/FabricanteDAOTest.java @@ -0,0 +1,63 @@ +package br.pro.delfino.drogaria.dao; + +import java.util.List; + +import org.junit.Ignore; +import org.junit.Test; + +import br.pro.delfino.drogaria.domain.Fabricante; + +public class FabricanteDAOTest { + @Test + @Ignore + public void salvar() { + Fabricante fabricante = new Fabricante(); + fabricante.setDescricao("Aché"); + + FabricanteDAO fabricanteDAO = new FabricanteDAO(); + fabricanteDAO.salvar(fabricante); + } + + @Test + @Ignore + public void listar() { + FabricanteDAO FabricanteDAO = new FabricanteDAO(); + List resultado = FabricanteDAO.listar(); + + System.out.println("Total de Registros Encontrados: " + resultado.size()); + + for (Fabricante fabricante : resultado) { + System.out.println(fabricante.getCodigo() + " - " + fabricante.getDescricao()); + } + } + + @Test + @Ignore + public void buscar(){ + Long codigo = 3L; + + FabricanteDAO fabricanteDAO = new FabricanteDAO(); + Fabricante fabricante = fabricanteDAO.buscar(codigo); + + if(fabricante == null){ + System.out.println("Nenhum registro encontrado"); + }else{ + System.out.println("Registro encontrado:"); + System.out.println(fabricante.getCodigo() + " - " + fabricante.getDescricao()); + } + } + + @Test + @Ignore + public void merge() { + //Fabricante fabricante = new Fabricante(); + //fabricante.setDescricao("Fabricante A"); + //FabricanteDAO fabricanteDAO = new FabricanteDAO(); + //fabricanteDAO.merge(fabricante); + + FabricanteDAO fabricanteDAO = new FabricanteDAO(); + Fabricante fabricante = fabricanteDAO.buscar(5L); + fabricante.setDescricao("Fabricante B"); + fabricanteDAO.merge(fabricante); + } +} diff --git a/293_Permissoes_Ocultamento_Componentes/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/FuncionarioDAOTest.java b/293_Permissoes_Ocultamento_Componentes/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/FuncionarioDAOTest.java new file mode 100644 index 0000000..06cfff7 --- /dev/null +++ b/293_Permissoes_Ocultamento_Componentes/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/FuncionarioDAOTest.java @@ -0,0 +1,5 @@ +package br.pro.delfino.drogaria.dao; + +public class FuncionarioDAOTest { + +} diff --git a/293_Permissoes_Ocultamento_Componentes/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/ProdutoDAOTest.java b/293_Permissoes_Ocultamento_Componentes/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/ProdutoDAOTest.java new file mode 100644 index 0000000..36f8563 --- /dev/null +++ b/293_Permissoes_Ocultamento_Componentes/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/ProdutoDAOTest.java @@ -0,0 +1,29 @@ +package br.pro.delfino.drogaria.dao; + +import java.math.BigDecimal; + +import org.junit.Ignore; +import org.junit.Test; + +import br.pro.delfino.drogaria.domain.Fabricante; +import br.pro.delfino.drogaria.domain.Produto; + +public class ProdutoDAOTest { + @Test + @Ignore + public void salvar(){ + FabricanteDAO fabricanteDAO = new FabricanteDAO(); + Fabricante fabricante = fabricanteDAO.buscar(new Long("3")); + + Produto produto = new Produto(); + produto.setDescricao("Cataflan 50mg com 20 Comprimidos"); + produto.setFabricante(fabricante); + produto.setPreco(new BigDecimal("13.70")); + produto.setQuantidade(new Short("7")); + + ProdutoDAO produtoDAO = new ProdutoDAO(); + produtoDAO.salvar(produto); + + System.out.println("Produto salvo com sucesso"); + } +} diff --git a/293_Permissoes_Ocultamento_Componentes/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/UsuarioDAOTest.java b/293_Permissoes_Ocultamento_Componentes/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/UsuarioDAOTest.java new file mode 100644 index 0000000..c567ec8 --- /dev/null +++ b/293_Permissoes_Ocultamento_Componentes/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/UsuarioDAOTest.java @@ -0,0 +1,47 @@ +package br.pro.delfino.drogaria.dao; + +import org.apache.shiro.crypto.hash.SimpleHash; +import org.junit.Ignore; +import org.junit.Test; + +import br.pro.delfino.drogaria.domain.Pessoa; +import br.pro.delfino.drogaria.domain.Usuario; + +public class UsuarioDAOTest { + @Test + @Ignore + public void salvar(){ + PessoaDAO pessoaDAO = new PessoaDAO(); + Pessoa pessoa = pessoaDAO.buscar(3L); + + System.out.println("Pessoa Encontrada"); + System.out.println("Nome: " + pessoa.getNome()); + System.out.println("CPF: " + pessoa.getCpf()); + + Usuario usuario = new Usuario(); + usuario.setAtivo(true); + usuario.setPessoa(pessoa); + usuario.setSenhaSemCriptografia("q1w2e3r4"); + + SimpleHash hash = new SimpleHash("md5", usuario.getSenhaSemCriptografia()); + usuario.setSenha(hash.toHex()); + + usuario.setTipo('B'); + + UsuarioDAO usuarioDAO = new UsuarioDAO(); + usuarioDAO.salvar(usuario); + + System.out.println("Usuário salvo com sucesso."); + } + + @Test + public void autenticar(){ + String cpf = "999.999.999-99"; + String senha = "12345678"; + + UsuarioDAO usuarioDAO = new UsuarioDAO(); + Usuario usuario = usuarioDAO.autenticar(cpf, senha); + + System.out.println("Usuário autentica: " + usuario); + } +} diff --git a/293_Permissoes_Ocultamento_Componentes/Drogaria/src/test/java/br/pro/delfino/drogaria/util/HibernateUtilTest.java b/293_Permissoes_Ocultamento_Componentes/Drogaria/src/test/java/br/pro/delfino/drogaria/util/HibernateUtilTest.java new file mode 100644 index 0000000..75776e0 --- /dev/null +++ b/293_Permissoes_Ocultamento_Componentes/Drogaria/src/test/java/br/pro/delfino/drogaria/util/HibernateUtilTest.java @@ -0,0 +1,13 @@ +package br.pro.delfino.drogaria.util; + +import org.hibernate.Session; +import org.junit.Test; + +public class HibernateUtilTest { + @Test + public void conectar(){ + Session sessao = HibernateUtil.getFabricaDeSessoes().openSession(); + sessao.close(); + HibernateUtil.getFabricaDeSessoes().close(); + } +}