From 66f2e19506d681fbdc8c4a8d19110586e9362e75 Mon Sep 17 00:00:00 2001 From: srdelfino Date: Fri, 11 Mar 2016 00:13:21 -0300 Subject: [PATCH 1/2] =?UTF-8?q?Atualiza=C3=A7=C3=B5es?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 278_RestClient_Excluir/Drogaria/.tern-project | 1 + 278_RestClient_Excluir/Drogaria/pom.xml | 132 ++++++++++++ .../drogaria/bean/AutenticacaoBean.java | 42 ++++ .../pro/delfino/drogaria/bean/CidadeBean.java | 119 +++++++++++ .../delfino/drogaria/bean/ClienteBean.java | 91 ++++++++ .../pro/delfino/drogaria/bean/EstadoBean.java | 88 ++++++++ .../delfino/drogaria/bean/FabricanteBean.java | 116 +++++++++++ .../delfino/drogaria/bean/HistoricoBean.java | 89 ++++++++ .../pro/delfino/drogaria/bean/ImagemBean.java | 48 +++++ .../pro/delfino/drogaria/bean/PessoaBean.java | 156 ++++++++++++++ .../delfino/drogaria/bean/ProdutoBean.java | 196 ++++++++++++++++++ .../delfino/drogaria/bean/UsuarioBean.java | 90 ++++++++ .../pro/delfino/drogaria/bean/VendaBean.java | 186 +++++++++++++++++ .../converter/UpperCaseConverter.java | 28 +++ .../br/pro/delfino/drogaria/dao/CaixaDAO.java | 26 +++ .../pro/delfino/drogaria/dao/CidadeDAO.java | 29 +++ .../pro/delfino/drogaria/dao/ClienteDAO.java | 28 +++ .../pro/delfino/drogaria/dao/EstadoDAO.java | 7 + .../delfino/drogaria/dao/FabricanteDAO.java | 7 + .../delfino/drogaria/dao/FuncionarioDAO.java | 28 +++ .../pro/delfino/drogaria/dao/GenericDAO.java | 140 +++++++++++++ .../delfino/drogaria/dao/HistoricoDAO.java | 7 + .../delfino/drogaria/dao/MovimentacaoDAO.java | 7 + .../pro/delfino/drogaria/dao/PessoaDAO.java | 7 + .../pro/delfino/drogaria/dao/ProdutoDAO.java | 7 + .../pro/delfino/drogaria/dao/UsuarioDAO.java | 33 +++ .../br/pro/delfino/drogaria/dao/VendaDAO.java | 49 +++++ .../br/pro/delfino/drogaria/domain/Caixa.java | 48 +++++ .../pro/delfino/drogaria/domain/Cidade.java | 33 +++ .../pro/delfino/drogaria/domain/Cliente.java | 49 +++++ .../pro/delfino/drogaria/domain/Estado.java | 30 +++ .../delfino/drogaria/domain/Fabricante.java | 19 ++ .../delfino/drogaria/domain/Funcionario.java | 49 +++++ .../drogaria/domain/GenericDomain.java | 54 +++++ .../delfino/drogaria/domain/Historico.java | 49 +++++ .../delfino/drogaria/domain/ItemVenda.java | 58 ++++++ .../delfino/drogaria/domain/Movimentacao.java | 50 +++++ .../pro/delfino/drogaria/domain/Pessoa.java | 143 +++++++++++++ .../pro/delfino/drogaria/domain/Produto.java | 69 ++++++ .../pro/delfino/drogaria/domain/Usuario.java | 93 +++++++++ .../br/pro/delfino/drogaria/domain/Venda.java | 61 ++++++ .../drogaria/service/DrogariaService.java | 13 ++ .../drogaria/service/FabricanteService.java | 85 ++++++++ .../drogaria/service/ProdutoService.java | 39 ++++ .../drogaria/util/DrogariaResourceConfig.java | 13 ++ .../drogaria/util/HibernateContexto.java | 18 ++ .../delfino/drogaria/util/HibernateUtil.java | 47 +++++ .../src/main/resources/hibernate.cfg.xml | 51 +++++ .../webapp/WEB-INF/springsecurity.taglib.xml | 32 +++ .../Drogaria/src/main/webapp/WEB-INF/web.xml | 48 +++++ .../src/main/webapp/pages/autenticacao.xhtml | 36 ++++ .../src/main/webapp/pages/cidades.xhtml | 100 +++++++++ .../src/main/webapp/pages/clientes.xhtml | 94 +++++++++ .../src/main/webapp/pages/estados.xhtml | 84 ++++++++ .../src/main/webapp/pages/fabricantes.xhtml | 78 +++++++ .../src/main/webapp/pages/historico.xhtml | 64 ++++++ .../src/main/webapp/pages/pessoas.xhtml | 162 +++++++++++++++ .../src/main/webapp/pages/principal.xhtml | 14 ++ .../src/main/webapp/pages/produtos.xhtml | 141 +++++++++++++ .../src/main/webapp/pages/testeJSF.xhtml | 12 ++ .../main/webapp/pages/testePrimeFaces.xhtml | 14 ++ .../src/main/webapp/pages/usuarios.xhtml | 97 +++++++++ .../src/main/webapp/pages/vendas.xhtml | 156 ++++++++++++++ .../src/main/webapp/reports/estados.jasper | Bin 0 -> 23708 bytes .../src/main/webapp/reports/estados.jrxml | 102 +++++++++ .../src/main/webapp/reports/produtos.jasper | Bin 0 -> 25898 bytes .../src/main/webapp/reports/produtos.jrxml | 130 ++++++++++++ .../src/main/webapp/resources/css/estilos.css | 19 ++ .../main/webapp/resources/images/banner.jpg | Bin 0 -> 227607 bytes .../src/main/webapp/resources/js/scripts.js | 26 +++ .../src/main/webapp/templates/modelo.xhtml | 55 +++++ .../delfino/drogaria/dao/CaixaDAOTest.java | 33 +++ .../delfino/drogaria/dao/CidadeDAOTest.java | 130 ++++++++++++ .../delfino/drogaria/dao/ClienteDAOTest.java | 29 +++ .../delfino/drogaria/dao/EstadoDAOTest.java | 88 ++++++++ .../drogaria/dao/FabricanteDAOTest.java | 63 ++++++ .../drogaria/dao/FuncionarioDAOTest.java | 5 + .../delfino/drogaria/dao/ProdutoDAOTest.java | 29 +++ .../delfino/drogaria/dao/UsuarioDAOTest.java | 47 +++++ .../drogaria/util/HibernateUtilTest.java | 13 ++ 80 files changed, 4729 insertions(+) create mode 100644 278_RestClient_Excluir/Drogaria/.tern-project create mode 100644 278_RestClient_Excluir/Drogaria/pom.xml create mode 100644 278_RestClient_Excluir/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/AutenticacaoBean.java create mode 100644 278_RestClient_Excluir/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/CidadeBean.java create mode 100644 278_RestClient_Excluir/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/ClienteBean.java create mode 100644 278_RestClient_Excluir/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/EstadoBean.java create mode 100644 278_RestClient_Excluir/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/FabricanteBean.java create mode 100644 278_RestClient_Excluir/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/HistoricoBean.java create mode 100644 278_RestClient_Excluir/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/ImagemBean.java create mode 100644 278_RestClient_Excluir/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/PessoaBean.java create mode 100644 278_RestClient_Excluir/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/ProdutoBean.java create mode 100644 278_RestClient_Excluir/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/UsuarioBean.java create mode 100644 278_RestClient_Excluir/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/VendaBean.java create mode 100644 278_RestClient_Excluir/Drogaria/src/main/java/br/pro/delfino/drogaria/converter/UpperCaseConverter.java create mode 100644 278_RestClient_Excluir/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/CaixaDAO.java create mode 100644 278_RestClient_Excluir/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/CidadeDAO.java create mode 100644 278_RestClient_Excluir/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/ClienteDAO.java create mode 100644 278_RestClient_Excluir/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/EstadoDAO.java create mode 100644 278_RestClient_Excluir/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/FabricanteDAO.java create mode 100644 278_RestClient_Excluir/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/FuncionarioDAO.java create mode 100644 278_RestClient_Excluir/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/GenericDAO.java create mode 100644 278_RestClient_Excluir/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/HistoricoDAO.java create mode 100644 278_RestClient_Excluir/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/MovimentacaoDAO.java create mode 100644 278_RestClient_Excluir/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/PessoaDAO.java create mode 100644 278_RestClient_Excluir/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/ProdutoDAO.java create mode 100644 278_RestClient_Excluir/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/UsuarioDAO.java create mode 100644 278_RestClient_Excluir/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/VendaDAO.java create mode 100644 278_RestClient_Excluir/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Caixa.java create mode 100644 278_RestClient_Excluir/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Cidade.java create mode 100644 278_RestClient_Excluir/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Cliente.java create mode 100644 278_RestClient_Excluir/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Estado.java create mode 100644 278_RestClient_Excluir/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Fabricante.java create mode 100644 278_RestClient_Excluir/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Funcionario.java create mode 100644 278_RestClient_Excluir/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/GenericDomain.java create mode 100644 278_RestClient_Excluir/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Historico.java create mode 100644 278_RestClient_Excluir/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/ItemVenda.java create mode 100644 278_RestClient_Excluir/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Movimentacao.java create mode 100644 278_RestClient_Excluir/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Pessoa.java create mode 100644 278_RestClient_Excluir/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Produto.java create mode 100644 278_RestClient_Excluir/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Usuario.java create mode 100644 278_RestClient_Excluir/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Venda.java create mode 100644 278_RestClient_Excluir/Drogaria/src/main/java/br/pro/delfino/drogaria/service/DrogariaService.java create mode 100644 278_RestClient_Excluir/Drogaria/src/main/java/br/pro/delfino/drogaria/service/FabricanteService.java create mode 100644 278_RestClient_Excluir/Drogaria/src/main/java/br/pro/delfino/drogaria/service/ProdutoService.java create mode 100644 278_RestClient_Excluir/Drogaria/src/main/java/br/pro/delfino/drogaria/util/DrogariaResourceConfig.java create mode 100644 278_RestClient_Excluir/Drogaria/src/main/java/br/pro/delfino/drogaria/util/HibernateContexto.java create mode 100644 278_RestClient_Excluir/Drogaria/src/main/java/br/pro/delfino/drogaria/util/HibernateUtil.java create mode 100644 278_RestClient_Excluir/Drogaria/src/main/resources/hibernate.cfg.xml create mode 100644 278_RestClient_Excluir/Drogaria/src/main/webapp/WEB-INF/springsecurity.taglib.xml create mode 100644 278_RestClient_Excluir/Drogaria/src/main/webapp/WEB-INF/web.xml create mode 100644 278_RestClient_Excluir/Drogaria/src/main/webapp/pages/autenticacao.xhtml create mode 100644 278_RestClient_Excluir/Drogaria/src/main/webapp/pages/cidades.xhtml create mode 100644 278_RestClient_Excluir/Drogaria/src/main/webapp/pages/clientes.xhtml create mode 100644 278_RestClient_Excluir/Drogaria/src/main/webapp/pages/estados.xhtml create mode 100644 278_RestClient_Excluir/Drogaria/src/main/webapp/pages/fabricantes.xhtml create mode 100644 278_RestClient_Excluir/Drogaria/src/main/webapp/pages/historico.xhtml create mode 100644 278_RestClient_Excluir/Drogaria/src/main/webapp/pages/pessoas.xhtml create mode 100644 278_RestClient_Excluir/Drogaria/src/main/webapp/pages/principal.xhtml create mode 100644 278_RestClient_Excluir/Drogaria/src/main/webapp/pages/produtos.xhtml create mode 100644 278_RestClient_Excluir/Drogaria/src/main/webapp/pages/testeJSF.xhtml create mode 100644 278_RestClient_Excluir/Drogaria/src/main/webapp/pages/testePrimeFaces.xhtml create mode 100644 278_RestClient_Excluir/Drogaria/src/main/webapp/pages/usuarios.xhtml create mode 100644 278_RestClient_Excluir/Drogaria/src/main/webapp/pages/vendas.xhtml create mode 100644 278_RestClient_Excluir/Drogaria/src/main/webapp/reports/estados.jasper create mode 100644 278_RestClient_Excluir/Drogaria/src/main/webapp/reports/estados.jrxml create mode 100644 278_RestClient_Excluir/Drogaria/src/main/webapp/reports/produtos.jasper create mode 100644 278_RestClient_Excluir/Drogaria/src/main/webapp/reports/produtos.jrxml create mode 100644 278_RestClient_Excluir/Drogaria/src/main/webapp/resources/css/estilos.css create mode 100644 278_RestClient_Excluir/Drogaria/src/main/webapp/resources/images/banner.jpg create mode 100644 278_RestClient_Excluir/Drogaria/src/main/webapp/resources/js/scripts.js create mode 100644 278_RestClient_Excluir/Drogaria/src/main/webapp/templates/modelo.xhtml create mode 100644 278_RestClient_Excluir/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/CaixaDAOTest.java create mode 100644 278_RestClient_Excluir/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/CidadeDAOTest.java create mode 100644 278_RestClient_Excluir/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/ClienteDAOTest.java create mode 100644 278_RestClient_Excluir/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/EstadoDAOTest.java create mode 100644 278_RestClient_Excluir/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/FabricanteDAOTest.java create mode 100644 278_RestClient_Excluir/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/FuncionarioDAOTest.java create mode 100644 278_RestClient_Excluir/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/ProdutoDAOTest.java create mode 100644 278_RestClient_Excluir/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/UsuarioDAOTest.java create mode 100644 278_RestClient_Excluir/Drogaria/src/test/java/br/pro/delfino/drogaria/util/HibernateUtilTest.java diff --git a/278_RestClient_Excluir/Drogaria/.tern-project b/278_RestClient_Excluir/Drogaria/.tern-project new file mode 100644 index 0000000..b6f48dd --- /dev/null +++ b/278_RestClient_Excluir/Drogaria/.tern-project @@ -0,0 +1 @@ +{"ide":{},"libs":["ecma5","browser"],"plugins":{"guess-types":{},"angular":{}}} \ No newline at end of file diff --git a/278_RestClient_Excluir/Drogaria/pom.xml b/278_RestClient_Excluir/Drogaria/pom.xml new file mode 100644 index 0000000..39b1e60 --- /dev/null +++ b/278_RestClient_Excluir/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/278_RestClient_Excluir/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/AutenticacaoBean.java b/278_RestClient_Excluir/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/AutenticacaoBean.java new file mode 100644 index 0000000..5ac52eb --- /dev/null +++ b/278_RestClient_Excluir/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/278_RestClient_Excluir/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/CidadeBean.java b/278_RestClient_Excluir/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/CidadeBean.java new file mode 100644 index 0000000..4b03075 --- /dev/null +++ b/278_RestClient_Excluir/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/278_RestClient_Excluir/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/ClienteBean.java b/278_RestClient_Excluir/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/ClienteBean.java new file mode 100644 index 0000000..c96b115 --- /dev/null +++ b/278_RestClient_Excluir/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/278_RestClient_Excluir/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/EstadoBean.java b/278_RestClient_Excluir/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/EstadoBean.java new file mode 100644 index 0000000..b4921fe --- /dev/null +++ b/278_RestClient_Excluir/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/278_RestClient_Excluir/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/FabricanteBean.java b/278_RestClient_Excluir/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/FabricanteBean.java new file mode 100644 index 0000000..7fddf7d --- /dev/null +++ b/278_RestClient_Excluir/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/278_RestClient_Excluir/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/HistoricoBean.java b/278_RestClient_Excluir/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/HistoricoBean.java new file mode 100644 index 0000000..a042b04 --- /dev/null +++ b/278_RestClient_Excluir/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/278_RestClient_Excluir/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/ImagemBean.java b/278_RestClient_Excluir/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/ImagemBean.java new file mode 100644 index 0000000..eb963a8 --- /dev/null +++ b/278_RestClient_Excluir/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/278_RestClient_Excluir/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/PessoaBean.java b/278_RestClient_Excluir/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/PessoaBean.java new file mode 100644 index 0000000..931edf7 --- /dev/null +++ b/278_RestClient_Excluir/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/278_RestClient_Excluir/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/ProdutoBean.java b/278_RestClient_Excluir/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/ProdutoBean.java new file mode 100644 index 0000000..e48e0d1 --- /dev/null +++ b/278_RestClient_Excluir/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/278_RestClient_Excluir/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/UsuarioBean.java b/278_RestClient_Excluir/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/UsuarioBean.java new file mode 100644 index 0000000..f526df8 --- /dev/null +++ b/278_RestClient_Excluir/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/278_RestClient_Excluir/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/VendaBean.java b/278_RestClient_Excluir/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/VendaBean.java new file mode 100644 index 0000000..ada8ff2 --- /dev/null +++ b/278_RestClient_Excluir/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/278_RestClient_Excluir/Drogaria/src/main/java/br/pro/delfino/drogaria/converter/UpperCaseConverter.java b/278_RestClient_Excluir/Drogaria/src/main/java/br/pro/delfino/drogaria/converter/UpperCaseConverter.java new file mode 100644 index 0000000..8a5d259 --- /dev/null +++ b/278_RestClient_Excluir/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/278_RestClient_Excluir/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/CaixaDAO.java b/278_RestClient_Excluir/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/CaixaDAO.java new file mode 100644 index 0000000..fd8acd7 --- /dev/null +++ b/278_RestClient_Excluir/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/278_RestClient_Excluir/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/CidadeDAO.java b/278_RestClient_Excluir/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/CidadeDAO.java new file mode 100644 index 0000000..e685e93 --- /dev/null +++ b/278_RestClient_Excluir/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/278_RestClient_Excluir/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/ClienteDAO.java b/278_RestClient_Excluir/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/ClienteDAO.java new file mode 100644 index 0000000..e9796b5 --- /dev/null +++ b/278_RestClient_Excluir/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/278_RestClient_Excluir/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/EstadoDAO.java b/278_RestClient_Excluir/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/EstadoDAO.java new file mode 100644 index 0000000..32b4a79 --- /dev/null +++ b/278_RestClient_Excluir/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/278_RestClient_Excluir/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/FabricanteDAO.java b/278_RestClient_Excluir/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/FabricanteDAO.java new file mode 100644 index 0000000..8b7f946 --- /dev/null +++ b/278_RestClient_Excluir/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/278_RestClient_Excluir/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/FuncionarioDAO.java b/278_RestClient_Excluir/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/FuncionarioDAO.java new file mode 100644 index 0000000..2b3114d --- /dev/null +++ b/278_RestClient_Excluir/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/278_RestClient_Excluir/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/GenericDAO.java b/278_RestClient_Excluir/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/GenericDAO.java new file mode 100644 index 0000000..b505cd3 --- /dev/null +++ b/278_RestClient_Excluir/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/278_RestClient_Excluir/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/HistoricoDAO.java b/278_RestClient_Excluir/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/HistoricoDAO.java new file mode 100644 index 0000000..7b30017 --- /dev/null +++ b/278_RestClient_Excluir/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/278_RestClient_Excluir/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/MovimentacaoDAO.java b/278_RestClient_Excluir/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/MovimentacaoDAO.java new file mode 100644 index 0000000..b6560e2 --- /dev/null +++ b/278_RestClient_Excluir/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/278_RestClient_Excluir/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/PessoaDAO.java b/278_RestClient_Excluir/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/PessoaDAO.java new file mode 100644 index 0000000..bbd116b --- /dev/null +++ b/278_RestClient_Excluir/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/278_RestClient_Excluir/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/ProdutoDAO.java b/278_RestClient_Excluir/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/ProdutoDAO.java new file mode 100644 index 0000000..4c1e751 --- /dev/null +++ b/278_RestClient_Excluir/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/278_RestClient_Excluir/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/UsuarioDAO.java b/278_RestClient_Excluir/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/UsuarioDAO.java new file mode 100644 index 0000000..b4bf524 --- /dev/null +++ b/278_RestClient_Excluir/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/278_RestClient_Excluir/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/VendaDAO.java b/278_RestClient_Excluir/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/VendaDAO.java new file mode 100644 index 0000000..3428939 --- /dev/null +++ b/278_RestClient_Excluir/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/278_RestClient_Excluir/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Caixa.java b/278_RestClient_Excluir/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Caixa.java new file mode 100644 index 0000000..43b07c4 --- /dev/null +++ b/278_RestClient_Excluir/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/278_RestClient_Excluir/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Cidade.java b/278_RestClient_Excluir/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Cidade.java new file mode 100644 index 0000000..cf94ede --- /dev/null +++ b/278_RestClient_Excluir/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/278_RestClient_Excluir/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Cliente.java b/278_RestClient_Excluir/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Cliente.java new file mode 100644 index 0000000..6ace9b9 --- /dev/null +++ b/278_RestClient_Excluir/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/278_RestClient_Excluir/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Estado.java b/278_RestClient_Excluir/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Estado.java new file mode 100644 index 0000000..1c06b98 --- /dev/null +++ b/278_RestClient_Excluir/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/278_RestClient_Excluir/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Fabricante.java b/278_RestClient_Excluir/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Fabricante.java new file mode 100644 index 0000000..02eab8c --- /dev/null +++ b/278_RestClient_Excluir/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/278_RestClient_Excluir/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Funcionario.java b/278_RestClient_Excluir/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Funcionario.java new file mode 100644 index 0000000..dec9378 --- /dev/null +++ b/278_RestClient_Excluir/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/278_RestClient_Excluir/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/GenericDomain.java b/278_RestClient_Excluir/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/GenericDomain.java new file mode 100644 index 0000000..f37efea --- /dev/null +++ b/278_RestClient_Excluir/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/278_RestClient_Excluir/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Historico.java b/278_RestClient_Excluir/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Historico.java new file mode 100644 index 0000000..dafdaeb --- /dev/null +++ b/278_RestClient_Excluir/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/278_RestClient_Excluir/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/ItemVenda.java b/278_RestClient_Excluir/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/ItemVenda.java new file mode 100644 index 0000000..590ab26 --- /dev/null +++ b/278_RestClient_Excluir/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/278_RestClient_Excluir/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Movimentacao.java b/278_RestClient_Excluir/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Movimentacao.java new file mode 100644 index 0000000..c3d6319 --- /dev/null +++ b/278_RestClient_Excluir/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/278_RestClient_Excluir/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Pessoa.java b/278_RestClient_Excluir/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Pessoa.java new file mode 100644 index 0000000..f354001 --- /dev/null +++ b/278_RestClient_Excluir/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/278_RestClient_Excluir/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Produto.java b/278_RestClient_Excluir/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Produto.java new file mode 100644 index 0000000..82049b0 --- /dev/null +++ b/278_RestClient_Excluir/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/278_RestClient_Excluir/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Usuario.java b/278_RestClient_Excluir/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Usuario.java new file mode 100644 index 0000000..ae51941 --- /dev/null +++ b/278_RestClient_Excluir/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/278_RestClient_Excluir/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Venda.java b/278_RestClient_Excluir/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Venda.java new file mode 100644 index 0000000..3f4c226 --- /dev/null +++ b/278_RestClient_Excluir/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/278_RestClient_Excluir/Drogaria/src/main/java/br/pro/delfino/drogaria/service/DrogariaService.java b/278_RestClient_Excluir/Drogaria/src/main/java/br/pro/delfino/drogaria/service/DrogariaService.java new file mode 100644 index 0000000..fbb1f2b --- /dev/null +++ b/278_RestClient_Excluir/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/278_RestClient_Excluir/Drogaria/src/main/java/br/pro/delfino/drogaria/service/FabricanteService.java b/278_RestClient_Excluir/Drogaria/src/main/java/br/pro/delfino/drogaria/service/FabricanteService.java new file mode 100644 index 0000000..1dbc0d1 --- /dev/null +++ b/278_RestClient_Excluir/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/278_RestClient_Excluir/Drogaria/src/main/java/br/pro/delfino/drogaria/service/ProdutoService.java b/278_RestClient_Excluir/Drogaria/src/main/java/br/pro/delfino/drogaria/service/ProdutoService.java new file mode 100644 index 0000000..4dfdf40 --- /dev/null +++ b/278_RestClient_Excluir/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/278_RestClient_Excluir/Drogaria/src/main/java/br/pro/delfino/drogaria/util/DrogariaResourceConfig.java b/278_RestClient_Excluir/Drogaria/src/main/java/br/pro/delfino/drogaria/util/DrogariaResourceConfig.java new file mode 100644 index 0000000..2c997a9 --- /dev/null +++ b/278_RestClient_Excluir/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/278_RestClient_Excluir/Drogaria/src/main/java/br/pro/delfino/drogaria/util/HibernateContexto.java b/278_RestClient_Excluir/Drogaria/src/main/java/br/pro/delfino/drogaria/util/HibernateContexto.java new file mode 100644 index 0000000..71869d7 --- /dev/null +++ b/278_RestClient_Excluir/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/278_RestClient_Excluir/Drogaria/src/main/java/br/pro/delfino/drogaria/util/HibernateUtil.java b/278_RestClient_Excluir/Drogaria/src/main/java/br/pro/delfino/drogaria/util/HibernateUtil.java new file mode 100644 index 0000000..693551b --- /dev/null +++ b/278_RestClient_Excluir/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/278_RestClient_Excluir/Drogaria/src/main/resources/hibernate.cfg.xml b/278_RestClient_Excluir/Drogaria/src/main/resources/hibernate.cfg.xml new file mode 100644 index 0000000..65f392e --- /dev/null +++ b/278_RestClient_Excluir/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/278_RestClient_Excluir/Drogaria/src/main/webapp/WEB-INF/springsecurity.taglib.xml b/278_RestClient_Excluir/Drogaria/src/main/webapp/WEB-INF/springsecurity.taglib.xml new file mode 100644 index 0000000..9d6938c --- /dev/null +++ b/278_RestClient_Excluir/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/278_RestClient_Excluir/Drogaria/src/main/webapp/WEB-INF/web.xml b/278_RestClient_Excluir/Drogaria/src/main/webapp/WEB-INF/web.xml new file mode 100644 index 0000000..6b0cf5d --- /dev/null +++ b/278_RestClient_Excluir/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/278_RestClient_Excluir/Drogaria/src/main/webapp/pages/autenticacao.xhtml b/278_RestClient_Excluir/Drogaria/src/main/webapp/pages/autenticacao.xhtml new file mode 100644 index 0000000..e41a833 --- /dev/null +++ b/278_RestClient_Excluir/Drogaria/src/main/webapp/pages/autenticacao.xhtml @@ -0,0 +1,36 @@ + + + + + + Autenticação + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/278_RestClient_Excluir/Drogaria/src/main/webapp/pages/cidades.xhtml b/278_RestClient_Excluir/Drogaria/src/main/webapp/pages/cidades.xhtml new file mode 100644 index 0000000..504f3a3 --- /dev/null +++ b/278_RestClient_Excluir/Drogaria/src/main/webapp/pages/cidades.xhtml @@ -0,0 +1,100 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/278_RestClient_Excluir/Drogaria/src/main/webapp/pages/clientes.xhtml b/278_RestClient_Excluir/Drogaria/src/main/webapp/pages/clientes.xhtml new file mode 100644 index 0000000..4e3cfb5 --- /dev/null +++ b/278_RestClient_Excluir/Drogaria/src/main/webapp/pages/clientes.xhtml @@ -0,0 +1,94 @@ + + + + + + Clientes + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/278_RestClient_Excluir/Drogaria/src/main/webapp/pages/estados.xhtml b/278_RestClient_Excluir/Drogaria/src/main/webapp/pages/estados.xhtml new file mode 100644 index 0000000..1d441f1 --- /dev/null +++ b/278_RestClient_Excluir/Drogaria/src/main/webapp/pages/estados.xhtml @@ -0,0 +1,84 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/278_RestClient_Excluir/Drogaria/src/main/webapp/pages/fabricantes.xhtml b/278_RestClient_Excluir/Drogaria/src/main/webapp/pages/fabricantes.xhtml new file mode 100644 index 0000000..3904db0 --- /dev/null +++ b/278_RestClient_Excluir/Drogaria/src/main/webapp/pages/fabricantes.xhtml @@ -0,0 +1,78 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/278_RestClient_Excluir/Drogaria/src/main/webapp/pages/historico.xhtml b/278_RestClient_Excluir/Drogaria/src/main/webapp/pages/historico.xhtml new file mode 100644 index 0000000..184a864 --- /dev/null +++ b/278_RestClient_Excluir/Drogaria/src/main/webapp/pages/historico.xhtml @@ -0,0 +1,64 @@ + + + + + + Histórico + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/278_RestClient_Excluir/Drogaria/src/main/webapp/pages/pessoas.xhtml b/278_RestClient_Excluir/Drogaria/src/main/webapp/pages/pessoas.xhtml new file mode 100644 index 0000000..7d68e8c --- /dev/null +++ b/278_RestClient_Excluir/Drogaria/src/main/webapp/pages/pessoas.xhtml @@ -0,0 +1,162 @@ + + + + + + Pessoas + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/278_RestClient_Excluir/Drogaria/src/main/webapp/pages/principal.xhtml b/278_RestClient_Excluir/Drogaria/src/main/webapp/pages/principal.xhtml new file mode 100644 index 0000000..c05ed85 --- /dev/null +++ b/278_RestClient_Excluir/Drogaria/src/main/webapp/pages/principal.xhtml @@ -0,0 +1,14 @@ + + + + + + + + + \ No newline at end of file diff --git a/278_RestClient_Excluir/Drogaria/src/main/webapp/pages/produtos.xhtml b/278_RestClient_Excluir/Drogaria/src/main/webapp/pages/produtos.xhtml new file mode 100644 index 0000000..56c5db4 --- /dev/null +++ b/278_RestClient_Excluir/Drogaria/src/main/webapp/pages/produtos.xhtml @@ -0,0 +1,141 @@ + + + + + + Produtos + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/278_RestClient_Excluir/Drogaria/src/main/webapp/pages/testeJSF.xhtml b/278_RestClient_Excluir/Drogaria/src/main/webapp/pages/testeJSF.xhtml new file mode 100644 index 0000000..c20659b --- /dev/null +++ b/278_RestClient_Excluir/Drogaria/src/main/webapp/pages/testeJSF.xhtml @@ -0,0 +1,12 @@ + + + + + + Teste JSF + + + + + \ No newline at end of file diff --git a/278_RestClient_Excluir/Drogaria/src/main/webapp/pages/testePrimeFaces.xhtml b/278_RestClient_Excluir/Drogaria/src/main/webapp/pages/testePrimeFaces.xhtml new file mode 100644 index 0000000..6c4d434 --- /dev/null +++ b/278_RestClient_Excluir/Drogaria/src/main/webapp/pages/testePrimeFaces.xhtml @@ -0,0 +1,14 @@ + + + + + + Teste PrimeFaces + + + + + \ No newline at end of file diff --git a/278_RestClient_Excluir/Drogaria/src/main/webapp/pages/usuarios.xhtml b/278_RestClient_Excluir/Drogaria/src/main/webapp/pages/usuarios.xhtml new file mode 100644 index 0000000..45dd761 --- /dev/null +++ b/278_RestClient_Excluir/Drogaria/src/main/webapp/pages/usuarios.xhtml @@ -0,0 +1,97 @@ + + + + + + Usuários + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/278_RestClient_Excluir/Drogaria/src/main/webapp/pages/vendas.xhtml b/278_RestClient_Excluir/Drogaria/src/main/webapp/pages/vendas.xhtml new file mode 100644 index 0000000..4485892 --- /dev/null +++ b/278_RestClient_Excluir/Drogaria/src/main/webapp/pages/vendas.xhtml @@ -0,0 +1,156 @@ + + + + + + Vendas + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/278_RestClient_Excluir/Drogaria/src/main/webapp/reports/estados.jasper b/278_RestClient_Excluir/Drogaria/src/main/webapp/reports/estados.jasper new file mode 100644 index 0000000000000000000000000000000000000000..96a12780f8f042286bf380ac44bdf3c342d0288c GIT binary patch literal 23708 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 literal 0 HcmV?d00001 diff --git a/278_RestClient_Excluir/Drogaria/src/main/webapp/reports/estados.jrxml b/278_RestClient_Excluir/Drogaria/src/main/webapp/reports/estados.jrxml new file mode 100644 index 0000000..76da981 --- /dev/null +++ b/278_RestClient_Excluir/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/278_RestClient_Excluir/Drogaria/src/main/webapp/reports/produtos.jasper b/278_RestClient_Excluir/Drogaria/src/main/webapp/reports/produtos.jasper new file mode 100644 index 0000000000000000000000000000000000000000..ad55e5f457022a1692f455e10e1670fe2007138b GIT binary patch literal 25898 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 literal 0 HcmV?d00001 diff --git a/278_RestClient_Excluir/Drogaria/src/main/webapp/reports/produtos.jrxml b/278_RestClient_Excluir/Drogaria/src/main/webapp/reports/produtos.jrxml new file mode 100644 index 0000000..800aed0 --- /dev/null +++ b/278_RestClient_Excluir/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/278_RestClient_Excluir/Drogaria/src/main/webapp/resources/css/estilos.css b/278_RestClient_Excluir/Drogaria/src/main/webapp/resources/css/estilos.css new file mode 100644 index 0000000..4acdd7f --- /dev/null +++ b/278_RestClient_Excluir/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/278_RestClient_Excluir/Drogaria/src/main/webapp/resources/images/banner.jpg b/278_RestClient_Excluir/Drogaria/src/main/webapp/resources/images/banner.jpg new file mode 100644 index 0000000000000000000000000000000000000000..f58cc2169a48a11d3e007d415076ac87fd2f4395 GIT binary patch literal 227607 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%0DZ|UUm}(Bly;hP9;I!kxu6nB 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 yZg@JDgY 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 JA!iZxzW_(+v~vIe literal 0 HcmV?d00001 diff --git a/278_RestClient_Excluir/Drogaria/src/main/webapp/resources/js/scripts.js b/278_RestClient_Excluir/Drogaria/src/main/webapp/resources/js/scripts.js new file mode 100644 index 0000000..e39ad9b --- /dev/null +++ b/278_RestClient_Excluir/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/278_RestClient_Excluir/Drogaria/src/main/webapp/templates/modelo.xhtml b/278_RestClient_Excluir/Drogaria/src/main/webapp/templates/modelo.xhtml new file mode 100644 index 0000000..62d3d1c --- /dev/null +++ b/278_RestClient_Excluir/Drogaria/src/main/webapp/templates/modelo.xhtml @@ -0,0 +1,55 @@ + + + + + + SiGDro + + + + + +

+ + \ No newline at end of file diff --git a/278_RestClient_Excluir/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/CaixaDAOTest.java b/278_RestClient_Excluir/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/CaixaDAOTest.java new file mode 100644 index 0000000..b5e6156 --- /dev/null +++ b/278_RestClient_Excluir/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/278_RestClient_Excluir/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/CidadeDAOTest.java b/278_RestClient_Excluir/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/CidadeDAOTest.java new file mode 100644 index 0000000..ec59599 --- /dev/null +++ b/278_RestClient_Excluir/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/278_RestClient_Excluir/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/ClienteDAOTest.java b/278_RestClient_Excluir/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/ClienteDAOTest.java new file mode 100644 index 0000000..4d557d9 --- /dev/null +++ b/278_RestClient_Excluir/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/278_RestClient_Excluir/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/EstadoDAOTest.java b/278_RestClient_Excluir/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/EstadoDAOTest.java new file mode 100644 index 0000000..f84a086 --- /dev/null +++ b/278_RestClient_Excluir/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/278_RestClient_Excluir/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/FabricanteDAOTest.java b/278_RestClient_Excluir/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/FabricanteDAOTest.java new file mode 100644 index 0000000..56fb124 --- /dev/null +++ b/278_RestClient_Excluir/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/278_RestClient_Excluir/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/FuncionarioDAOTest.java b/278_RestClient_Excluir/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/FuncionarioDAOTest.java new file mode 100644 index 0000000..06cfff7 --- /dev/null +++ b/278_RestClient_Excluir/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/278_RestClient_Excluir/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/ProdutoDAOTest.java b/278_RestClient_Excluir/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/ProdutoDAOTest.java new file mode 100644 index 0000000..36f8563 --- /dev/null +++ b/278_RestClient_Excluir/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/278_RestClient_Excluir/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/UsuarioDAOTest.java b/278_RestClient_Excluir/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/UsuarioDAOTest.java new file mode 100644 index 0000000..c567ec8 --- /dev/null +++ b/278_RestClient_Excluir/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/278_RestClient_Excluir/Drogaria/src/test/java/br/pro/delfino/drogaria/util/HibernateUtilTest.java b/278_RestClient_Excluir/Drogaria/src/test/java/br/pro/delfino/drogaria/util/HibernateUtilTest.java new file mode 100644 index 0000000..75776e0 --- /dev/null +++ b/278_RestClient_Excluir/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(); + } +} From 20765dee1163d02b973fb1ad37b9de7662a07390 Mon Sep 17 00:00:00 2001 From: WENES GOMES AQUINO Date: Fri, 29 Apr 2016 18:09:08 -0300 Subject: [PATCH 2/2] no message --- .../Drogaria/.tern-project | 1 + .../Drogaria/pom.xml | 132 ++++++++++++ .../drogaria/bean/AutenticacaoBean.java | 42 ++++ .../pro/delfino/drogaria/bean/CidadeBean.java | 119 +++++++++++ .../delfino/drogaria/bean/ClienteBean.java | 91 ++++++++ .../pro/delfino/drogaria/bean/EstadoBean.java | 88 ++++++++ .../delfino/drogaria/bean/FabricanteBean.java | 116 +++++++++++ .../delfino/drogaria/bean/HistoricoBean.java | 89 ++++++++ .../pro/delfino/drogaria/bean/ImagemBean.java | 48 +++++ .../pro/delfino/drogaria/bean/PessoaBean.java | 156 ++++++++++++++ .../delfino/drogaria/bean/ProdutoBean.java | 196 ++++++++++++++++++ .../delfino/drogaria/bean/UsuarioBean.java | 90 ++++++++ .../pro/delfino/drogaria/bean/VendaBean.java | 186 +++++++++++++++++ .../converter/UpperCaseConverter.java | 28 +++ .../br/pro/delfino/drogaria/dao/CaixaDAO.java | 26 +++ .../pro/delfino/drogaria/dao/CidadeDAO.java | 29 +++ .../pro/delfino/drogaria/dao/ClienteDAO.java | 28 +++ .../pro/delfino/drogaria/dao/EstadoDAO.java | 7 + .../delfino/drogaria/dao/FabricanteDAO.java | 7 + .../delfino/drogaria/dao/FuncionarioDAO.java | 28 +++ .../pro/delfino/drogaria/dao/GenericDAO.java | 140 +++++++++++++ .../delfino/drogaria/dao/HistoricoDAO.java | 7 + .../delfino/drogaria/dao/MovimentacaoDAO.java | 7 + .../pro/delfino/drogaria/dao/PessoaDAO.java | 7 + .../pro/delfino/drogaria/dao/ProdutoDAO.java | 7 + .../pro/delfino/drogaria/dao/UsuarioDAO.java | 33 +++ .../br/pro/delfino/drogaria/dao/VendaDAO.java | 49 +++++ .../br/pro/delfino/drogaria/domain/Caixa.java | 48 +++++ .../pro/delfino/drogaria/domain/Cidade.java | 33 +++ .../pro/delfino/drogaria/domain/Cliente.java | 49 +++++ .../pro/delfino/drogaria/domain/Estado.java | 30 +++ .../delfino/drogaria/domain/Fabricante.java | 19 ++ .../delfino/drogaria/domain/Funcionario.java | 49 +++++ .../drogaria/domain/GenericDomain.java | 54 +++++ .../delfino/drogaria/domain/Historico.java | 49 +++++ .../delfino/drogaria/domain/ItemVenda.java | 58 ++++++ .../delfino/drogaria/domain/Movimentacao.java | 50 +++++ .../pro/delfino/drogaria/domain/Pessoa.java | 143 +++++++++++++ .../pro/delfino/drogaria/domain/Produto.java | 69 ++++++ .../pro/delfino/drogaria/domain/Usuario.java | 93 +++++++++ .../br/pro/delfino/drogaria/domain/Venda.java | 61 ++++++ .../drogaria/service/DrogariaService.java | 13 ++ .../drogaria/service/FabricanteService.java | 85 ++++++++ .../drogaria/service/ProdutoService.java | 39 ++++ .../drogaria/util/DrogariaResourceConfig.java | 13 ++ .../drogaria/util/HibernateContexto.java | 18 ++ .../delfino/drogaria/util/HibernateUtil.java | 47 +++++ .../src/main/resources/hibernate.cfg.xml | 51 +++++ .../webapp/WEB-INF/springsecurity.taglib.xml | 32 +++ .../Drogaria/src/main/webapp/WEB-INF/web.xml | 48 +++++ .../src/main/webapp/pages/autenticacao.xhtml | 36 ++++ .../src/main/webapp/pages/cidades.xhtml | 100 +++++++++ .../src/main/webapp/pages/clientes.xhtml | 94 +++++++++ .../src/main/webapp/pages/estados.xhtml | 84 ++++++++ .../src/main/webapp/pages/fabricantes.xhtml | 78 +++++++ .../src/main/webapp/pages/historico.xhtml | 64 ++++++ .../src/main/webapp/pages/pessoas.xhtml | 162 +++++++++++++++ .../src/main/webapp/pages/principal.xhtml | 14 ++ .../src/main/webapp/pages/produtos.xhtml | 141 +++++++++++++ .../src/main/webapp/pages/testeJSF.xhtml | 12 ++ .../main/webapp/pages/testePrimeFaces.xhtml | 14 ++ .../src/main/webapp/pages/usuarios.xhtml | 97 +++++++++ .../src/main/webapp/pages/vendas.xhtml | 156 ++++++++++++++ .../src/main/webapp/reports/estados.jasper | Bin 0 -> 23708 bytes .../src/main/webapp/reports/estados.jrxml | 102 +++++++++ .../src/main/webapp/reports/produtos.jasper | Bin 0 -> 25898 bytes .../src/main/webapp/reports/produtos.jrxml | 130 ++++++++++++ .../src/main/webapp/resources/css/estilos.css | 19 ++ .../main/webapp/resources/images/banner.jpg | Bin 0 -> 227607 bytes .../src/main/webapp/resources/js/scripts.js | 26 +++ .../src/main/webapp/templates/modelo.xhtml | 55 +++++ .../delfino/drogaria/dao/CaixaDAOTest.java | 33 +++ .../delfino/drogaria/dao/CidadeDAOTest.java | 130 ++++++++++++ .../delfino/drogaria/dao/ClienteDAOTest.java | 29 +++ .../delfino/drogaria/dao/EstadoDAOTest.java | 88 ++++++++ .../drogaria/dao/FabricanteDAOTest.java | 63 ++++++ .../drogaria/dao/FuncionarioDAOTest.java | 5 + .../delfino/drogaria/dao/ProdutoDAOTest.java | 29 +++ .../delfino/drogaria/dao/UsuarioDAOTest.java | 47 +++++ .../drogaria/util/HibernateUtilTest.java | 13 ++ .../Drogaria/.tern-project | 1 + .../Drogaria/pom.xml | 132 ++++++++++++ .../drogaria/bean/AutenticacaoBean.java | 60 ++++++ .../pro/delfino/drogaria/bean/CidadeBean.java | 119 +++++++++++ .../delfino/drogaria/bean/ClienteBean.java | 91 ++++++++ .../pro/delfino/drogaria/bean/EstadoBean.java | 88 ++++++++ .../delfino/drogaria/bean/FabricanteBean.java | 116 +++++++++++ .../delfino/drogaria/bean/HistoricoBean.java | 89 ++++++++ .../pro/delfino/drogaria/bean/ImagemBean.java | 48 +++++ .../pro/delfino/drogaria/bean/PessoaBean.java | 156 ++++++++++++++ .../delfino/drogaria/bean/ProdutoBean.java | 196 ++++++++++++++++++ .../delfino/drogaria/bean/UsuarioBean.java | 90 ++++++++ .../pro/delfino/drogaria/bean/VendaBean.java | 186 +++++++++++++++++ .../converter/UpperCaseConverter.java | 28 +++ .../br/pro/delfino/drogaria/dao/CaixaDAO.java | 26 +++ .../pro/delfino/drogaria/dao/CidadeDAO.java | 29 +++ .../pro/delfino/drogaria/dao/ClienteDAO.java | 28 +++ .../pro/delfino/drogaria/dao/EstadoDAO.java | 7 + .../delfino/drogaria/dao/FabricanteDAO.java | 7 + .../delfino/drogaria/dao/FuncionarioDAO.java | 28 +++ .../pro/delfino/drogaria/dao/GenericDAO.java | 140 +++++++++++++ .../delfino/drogaria/dao/HistoricoDAO.java | 7 + .../delfino/drogaria/dao/MovimentacaoDAO.java | 7 + .../pro/delfino/drogaria/dao/PessoaDAO.java | 7 + .../pro/delfino/drogaria/dao/ProdutoDAO.java | 7 + .../pro/delfino/drogaria/dao/UsuarioDAO.java | 33 +++ .../br/pro/delfino/drogaria/dao/VendaDAO.java | 49 +++++ .../br/pro/delfino/drogaria/domain/Caixa.java | 48 +++++ .../pro/delfino/drogaria/domain/Cidade.java | 33 +++ .../pro/delfino/drogaria/domain/Cliente.java | 49 +++++ .../pro/delfino/drogaria/domain/Estado.java | 30 +++ .../delfino/drogaria/domain/Fabricante.java | 19 ++ .../delfino/drogaria/domain/Funcionario.java | 49 +++++ .../drogaria/domain/GenericDomain.java | 54 +++++ .../delfino/drogaria/domain/Historico.java | 49 +++++ .../delfino/drogaria/domain/ItemVenda.java | 58 ++++++ .../delfino/drogaria/domain/Movimentacao.java | 50 +++++ .../pro/delfino/drogaria/domain/Pessoa.java | 143 +++++++++++++ .../pro/delfino/drogaria/domain/Produto.java | 69 ++++++ .../pro/delfino/drogaria/domain/Usuario.java | 93 +++++++++ .../br/pro/delfino/drogaria/domain/Venda.java | 61 ++++++ .../drogaria/service/DrogariaService.java | 13 ++ .../drogaria/service/FabricanteService.java | 85 ++++++++ .../drogaria/service/ProdutoService.java | 39 ++++ .../drogaria/util/DrogariaResourceConfig.java | 13 ++ .../drogaria/util/HibernateContexto.java | 18 ++ .../delfino/drogaria/util/HibernateUtil.java | 47 +++++ .../src/main/resources/hibernate.cfg.xml | 51 +++++ .../webapp/WEB-INF/springsecurity.taglib.xml | 32 +++ .../Drogaria/src/main/webapp/WEB-INF/web.xml | 48 +++++ .../src/main/webapp/pages/autenticacao.xhtml | 36 ++++ .../src/main/webapp/pages/cidades.xhtml | 100 +++++++++ .../src/main/webapp/pages/clientes.xhtml | 94 +++++++++ .../src/main/webapp/pages/estados.xhtml | 84 ++++++++ .../src/main/webapp/pages/fabricantes.xhtml | 78 +++++++ .../src/main/webapp/pages/historico.xhtml | 64 ++++++ .../src/main/webapp/pages/pessoas.xhtml | 162 +++++++++++++++ .../src/main/webapp/pages/principal.xhtml | 14 ++ .../src/main/webapp/pages/produtos.xhtml | 141 +++++++++++++ .../src/main/webapp/pages/testeJSF.xhtml | 12 ++ .../main/webapp/pages/testePrimeFaces.xhtml | 14 ++ .../src/main/webapp/pages/usuarios.xhtml | 97 +++++++++ .../src/main/webapp/pages/vendas.xhtml | 156 ++++++++++++++ .../src/main/webapp/reports/estados.jasper | Bin 0 -> 23708 bytes .../src/main/webapp/reports/estados.jrxml | 102 +++++++++ .../src/main/webapp/reports/produtos.jasper | Bin 0 -> 25898 bytes .../src/main/webapp/reports/produtos.jrxml | 130 ++++++++++++ .../src/main/webapp/resources/css/estilos.css | 19 ++ .../main/webapp/resources/images/banner.jpg | Bin 0 -> 227607 bytes .../src/main/webapp/resources/js/scripts.js | 26 +++ .../src/main/webapp/templates/modelo.xhtml | 55 +++++ .../delfino/drogaria/dao/CaixaDAOTest.java | 33 +++ .../delfino/drogaria/dao/CidadeDAOTest.java | 130 ++++++++++++ .../delfino/drogaria/dao/ClienteDAOTest.java | 29 +++ .../delfino/drogaria/dao/EstadoDAOTest.java | 88 ++++++++ .../drogaria/dao/FabricanteDAOTest.java | 63 ++++++ .../drogaria/dao/FuncionarioDAOTest.java | 5 + .../delfino/drogaria/dao/ProdutoDAOTest.java | 29 +++ .../delfino/drogaria/dao/UsuarioDAOTest.java | 47 +++++ .../drogaria/util/HibernateUtilTest.java | 13 ++ 285_ViewAction/Drogaria/.tern-project | 1 + 285_ViewAction/Drogaria/pom.xml | 132 ++++++++++++ .../drogaria/bean/AutenticacaoBean.java | 60 ++++++ .../pro/delfino/drogaria/bean/CidadeBean.java | 119 +++++++++++ .../delfino/drogaria/bean/ClienteBean.java | 91 ++++++++ .../pro/delfino/drogaria/bean/EstadoBean.java | 88 ++++++++ .../delfino/drogaria/bean/FabricanteBean.java | 116 +++++++++++ .../delfino/drogaria/bean/HistoricoBean.java | 89 ++++++++ .../pro/delfino/drogaria/bean/ImagemBean.java | 48 +++++ .../pro/delfino/drogaria/bean/PessoaBean.java | 156 ++++++++++++++ .../delfino/drogaria/bean/ProdutoBean.java | 196 ++++++++++++++++++ .../delfino/drogaria/bean/ProdutoBean2.java | 44 ++++ .../delfino/drogaria/bean/UsuarioBean.java | 90 ++++++++ .../pro/delfino/drogaria/bean/VendaBean.java | 186 +++++++++++++++++ .../converter/UpperCaseConverter.java | 28 +++ .../br/pro/delfino/drogaria/dao/CaixaDAO.java | 26 +++ .../pro/delfino/drogaria/dao/CidadeDAO.java | 29 +++ .../pro/delfino/drogaria/dao/ClienteDAO.java | 28 +++ .../pro/delfino/drogaria/dao/EstadoDAO.java | 7 + .../delfino/drogaria/dao/FabricanteDAO.java | 7 + .../delfino/drogaria/dao/FuncionarioDAO.java | 28 +++ .../pro/delfino/drogaria/dao/GenericDAO.java | 140 +++++++++++++ .../delfino/drogaria/dao/HistoricoDAO.java | 7 + .../delfino/drogaria/dao/MovimentacaoDAO.java | 7 + .../pro/delfino/drogaria/dao/PessoaDAO.java | 7 + .../pro/delfino/drogaria/dao/ProdutoDAO.java | 7 + .../pro/delfino/drogaria/dao/UsuarioDAO.java | 33 +++ .../br/pro/delfino/drogaria/dao/VendaDAO.java | 49 +++++ .../br/pro/delfino/drogaria/domain/Caixa.java | 48 +++++ .../pro/delfino/drogaria/domain/Cidade.java | 33 +++ .../pro/delfino/drogaria/domain/Cliente.java | 49 +++++ .../pro/delfino/drogaria/domain/Estado.java | 30 +++ .../delfino/drogaria/domain/Fabricante.java | 19 ++ .../delfino/drogaria/domain/Funcionario.java | 49 +++++ .../drogaria/domain/GenericDomain.java | 54 +++++ .../delfino/drogaria/domain/Historico.java | 49 +++++ .../delfino/drogaria/domain/ItemVenda.java | 58 ++++++ .../delfino/drogaria/domain/Movimentacao.java | 50 +++++ .../pro/delfino/drogaria/domain/Pessoa.java | 143 +++++++++++++ .../pro/delfino/drogaria/domain/Produto.java | 69 ++++++ .../pro/delfino/drogaria/domain/Usuario.java | 93 +++++++++ .../br/pro/delfino/drogaria/domain/Venda.java | 61 ++++++ .../drogaria/service/DrogariaService.java | 13 ++ .../drogaria/service/FabricanteService.java | 85 ++++++++ .../drogaria/service/ProdutoService.java | 39 ++++ .../drogaria/util/DrogariaResourceConfig.java | 13 ++ .../drogaria/util/HibernateContexto.java | 18 ++ .../delfino/drogaria/util/HibernateUtil.java | 47 +++++ .../src/main/resources/hibernate.cfg.xml | 51 +++++ .../webapp/WEB-INF/springsecurity.taglib.xml | 32 +++ .../Drogaria/src/main/webapp/WEB-INF/web.xml | 48 +++++ .../src/main/webapp/pages/autenticacao.xhtml | 36 ++++ .../src/main/webapp/pages/cidades.xhtml | 100 +++++++++ .../src/main/webapp/pages/clientes.xhtml | 94 +++++++++ .../src/main/webapp/pages/estados.xhtml | 90 ++++++++ .../src/main/webapp/pages/fabricantes.xhtml | 78 +++++++ .../src/main/webapp/pages/historico.xhtml | 64 ++++++ .../src/main/webapp/pages/pessoas.xhtml | 162 +++++++++++++++ .../src/main/webapp/pages/principal.xhtml | 14 ++ .../src/main/webapp/pages/produtos.xhtml | 141 +++++++++++++ .../main/webapp/pages/produtosListagem.xhtml | 56 +++++ .../src/main/webapp/pages/testeJSF.xhtml | 12 ++ .../main/webapp/pages/testePrimeFaces.xhtml | 14 ++ .../src/main/webapp/pages/usuarios.xhtml | 97 +++++++++ .../src/main/webapp/pages/vendas.xhtml | 156 ++++++++++++++ .../src/main/webapp/reports/estados.jasper | Bin 0 -> 23708 bytes .../src/main/webapp/reports/estados.jrxml | 102 +++++++++ .../src/main/webapp/reports/produtos.jasper | Bin 0 -> 25898 bytes .../src/main/webapp/reports/produtos.jrxml | 130 ++++++++++++ .../src/main/webapp/resources/css/estilos.css | 19 ++ .../main/webapp/resources/images/banner.jpg | Bin 0 -> 227607 bytes .../src/main/webapp/resources/js/scripts.js | 26 +++ .../src/main/webapp/templates/modelo.xhtml | 55 +++++ .../delfino/drogaria/dao/CaixaDAOTest.java | 33 +++ .../delfino/drogaria/dao/CidadeDAOTest.java | 130 ++++++++++++ .../delfino/drogaria/dao/ClienteDAOTest.java | 29 +++ .../delfino/drogaria/dao/EstadoDAOTest.java | 88 ++++++++ .../drogaria/dao/FabricanteDAOTest.java | 63 ++++++ .../drogaria/dao/FuncionarioDAOTest.java | 5 + .../delfino/drogaria/dao/ProdutoDAOTest.java | 29 +++ .../delfino/drogaria/dao/UsuarioDAOTest.java | 47 +++++ .../drogaria/util/HibernateUtilTest.java | 13 ++ 286_ViewParam/Drogaria/.tern-project | 1 + 286_ViewParam/Drogaria/pom.xml | 132 ++++++++++++ .../drogaria/bean/AutenticacaoBean.java | 60 ++++++ .../pro/delfino/drogaria/bean/CidadeBean.java | 119 +++++++++++ .../delfino/drogaria/bean/ClienteBean.java | 91 ++++++++ .../pro/delfino/drogaria/bean/EstadoBean.java | 88 ++++++++ .../delfino/drogaria/bean/FabricanteBean.java | 116 +++++++++++ .../delfino/drogaria/bean/HistoricoBean.java | 89 ++++++++ .../pro/delfino/drogaria/bean/ImagemBean.java | 48 +++++ .../pro/delfino/drogaria/bean/PessoaBean.java | 156 ++++++++++++++ .../delfino/drogaria/bean/ProdutoBean.java | 196 ++++++++++++++++++ .../delfino/drogaria/bean/ProdutoBean2.java | 86 ++++++++ .../delfino/drogaria/bean/UsuarioBean.java | 90 ++++++++ .../pro/delfino/drogaria/bean/VendaBean.java | 186 +++++++++++++++++ .../converter/UpperCaseConverter.java | 28 +++ .../br/pro/delfino/drogaria/dao/CaixaDAO.java | 26 +++ .../pro/delfino/drogaria/dao/CidadeDAO.java | 29 +++ .../pro/delfino/drogaria/dao/ClienteDAO.java | 28 +++ .../pro/delfino/drogaria/dao/EstadoDAO.java | 7 + .../delfino/drogaria/dao/FabricanteDAO.java | 7 + .../delfino/drogaria/dao/FuncionarioDAO.java | 28 +++ .../pro/delfino/drogaria/dao/GenericDAO.java | 140 +++++++++++++ .../delfino/drogaria/dao/HistoricoDAO.java | 7 + .../delfino/drogaria/dao/MovimentacaoDAO.java | 7 + .../pro/delfino/drogaria/dao/PessoaDAO.java | 7 + .../pro/delfino/drogaria/dao/ProdutoDAO.java | 7 + .../pro/delfino/drogaria/dao/UsuarioDAO.java | 33 +++ .../br/pro/delfino/drogaria/dao/VendaDAO.java | 49 +++++ .../br/pro/delfino/drogaria/domain/Caixa.java | 48 +++++ .../pro/delfino/drogaria/domain/Cidade.java | 33 +++ .../pro/delfino/drogaria/domain/Cliente.java | 49 +++++ .../pro/delfino/drogaria/domain/Estado.java | 30 +++ .../delfino/drogaria/domain/Fabricante.java | 19 ++ .../delfino/drogaria/domain/Funcionario.java | 49 +++++ .../drogaria/domain/GenericDomain.java | 54 +++++ .../delfino/drogaria/domain/Historico.java | 49 +++++ .../delfino/drogaria/domain/ItemVenda.java | 58 ++++++ .../delfino/drogaria/domain/Movimentacao.java | 50 +++++ .../pro/delfino/drogaria/domain/Pessoa.java | 143 +++++++++++++ .../pro/delfino/drogaria/domain/Produto.java | 69 ++++++ .../pro/delfino/drogaria/domain/Usuario.java | 93 +++++++++ .../br/pro/delfino/drogaria/domain/Venda.java | 61 ++++++ .../drogaria/service/DrogariaService.java | 13 ++ .../drogaria/service/FabricanteService.java | 85 ++++++++ .../drogaria/service/ProdutoService.java | 39 ++++ .../drogaria/util/DrogariaResourceConfig.java | 13 ++ .../drogaria/util/HibernateContexto.java | 18 ++ .../delfino/drogaria/util/HibernateUtil.java | 47 +++++ .../src/main/resources/hibernate.cfg.xml | 51 +++++ .../webapp/WEB-INF/springsecurity.taglib.xml | 32 +++ .../Drogaria/src/main/webapp/WEB-INF/web.xml | 48 +++++ .../src/main/webapp/pages/autenticacao.xhtml | 36 ++++ .../src/main/webapp/pages/cidades.xhtml | 100 +++++++++ .../src/main/webapp/pages/clientes.xhtml | 94 +++++++++ .../src/main/webapp/pages/estados.xhtml | 90 ++++++++ .../src/main/webapp/pages/fabricantes.xhtml | 78 +++++++ .../src/main/webapp/pages/historico.xhtml | 64 ++++++ .../src/main/webapp/pages/pessoas.xhtml | 162 +++++++++++++++ .../src/main/webapp/pages/principal.xhtml | 14 ++ .../src/main/webapp/pages/produtos.xhtml | 141 +++++++++++++ .../main/webapp/pages/produtosEdicao.xhtml | 67 ++++++ .../main/webapp/pages/produtosListagem.xhtml | 59 ++++++ .../src/main/webapp/pages/testeJSF.xhtml | 12 ++ .../main/webapp/pages/testePrimeFaces.xhtml | 14 ++ .../src/main/webapp/pages/usuarios.xhtml | 97 +++++++++ .../src/main/webapp/pages/vendas.xhtml | 156 ++++++++++++++ .../src/main/webapp/reports/estados.jasper | Bin 0 -> 23708 bytes .../src/main/webapp/reports/estados.jrxml | 102 +++++++++ .../src/main/webapp/reports/produtos.jasper | Bin 0 -> 25898 bytes .../src/main/webapp/reports/produtos.jrxml | 130 ++++++++++++ .../src/main/webapp/resources/css/estilos.css | 19 ++ .../main/webapp/resources/images/banner.jpg | Bin 0 -> 227607 bytes .../src/main/webapp/resources/js/scripts.js | 26 +++ .../src/main/webapp/templates/modelo.xhtml | 55 +++++ .../delfino/drogaria/dao/CaixaDAOTest.java | 33 +++ .../delfino/drogaria/dao/CidadeDAOTest.java | 130 ++++++++++++ .../delfino/drogaria/dao/ClienteDAOTest.java | 29 +++ .../delfino/drogaria/dao/EstadoDAOTest.java | 88 ++++++++ .../drogaria/dao/FabricanteDAOTest.java | 63 ++++++ .../drogaria/dao/FuncionarioDAOTest.java | 5 + .../delfino/drogaria/dao/ProdutoDAOTest.java | 29 +++ .../delfino/drogaria/dao/UsuarioDAOTest.java | 47 +++++ .../drogaria/util/HibernateUtilTest.java | 13 ++ 287_Schedule_Ajustes/Drogaria/.tern-project | 1 + 287_Schedule_Ajustes/Drogaria/pom.xml | 132 ++++++++++++ .../drogaria/bean/AutenticacaoBean.java | 60 ++++++ .../pro/delfino/drogaria/bean/CidadeBean.java | 119 +++++++++++ .../delfino/drogaria/bean/ClienteBean.java | 91 ++++++++ .../pro/delfino/drogaria/bean/EstadoBean.java | 88 ++++++++ .../delfino/drogaria/bean/FabricanteBean.java | 116 +++++++++++ .../delfino/drogaria/bean/HistoricoBean.java | 89 ++++++++ .../pro/delfino/drogaria/bean/ImagemBean.java | 48 +++++ .../pro/delfino/drogaria/bean/PessoaBean.java | 156 ++++++++++++++ .../delfino/drogaria/bean/ProdutoBean.java | 196 ++++++++++++++++++ .../delfino/drogaria/bean/ProdutoBean2.java | 86 ++++++++ .../delfino/drogaria/bean/UsuarioBean.java | 90 ++++++++ .../pro/delfino/drogaria/bean/VendaBean.java | 186 +++++++++++++++++ .../converter/UpperCaseConverter.java | 28 +++ .../br/pro/delfino/drogaria/dao/CaixaDAO.java | 26 +++ .../pro/delfino/drogaria/dao/CidadeDAO.java | 29 +++ .../pro/delfino/drogaria/dao/ClienteDAO.java | 28 +++ .../pro/delfino/drogaria/dao/EstadoDAO.java | 7 + .../delfino/drogaria/dao/FabricanteDAO.java | 7 + .../delfino/drogaria/dao/FuncionarioDAO.java | 28 +++ .../pro/delfino/drogaria/dao/GenericDAO.java | 140 +++++++++++++ .../delfino/drogaria/dao/HistoricoDAO.java | 7 + .../delfino/drogaria/dao/MovimentacaoDAO.java | 7 + .../pro/delfino/drogaria/dao/PessoaDAO.java | 7 + .../pro/delfino/drogaria/dao/ProdutoDAO.java | 7 + .../pro/delfino/drogaria/dao/UsuarioDAO.java | 33 +++ .../br/pro/delfino/drogaria/dao/VendaDAO.java | 49 +++++ .../br/pro/delfino/drogaria/domain/Caixa.java | 62 ++++++ .../pro/delfino/drogaria/domain/Cidade.java | 33 +++ .../pro/delfino/drogaria/domain/Cliente.java | 49 +++++ .../pro/delfino/drogaria/domain/Estado.java | 30 +++ .../delfino/drogaria/domain/Fabricante.java | 19 ++ .../delfino/drogaria/domain/Funcionario.java | 49 +++++ .../drogaria/domain/GenericDomain.java | 54 +++++ .../delfino/drogaria/domain/Historico.java | 49 +++++ .../delfino/drogaria/domain/ItemVenda.java | 58 ++++++ .../delfino/drogaria/domain/Movimentacao.java | 50 +++++ .../pro/delfino/drogaria/domain/Pessoa.java | 143 +++++++++++++ .../pro/delfino/drogaria/domain/Produto.java | 69 ++++++ .../pro/delfino/drogaria/domain/Usuario.java | 93 +++++++++ .../br/pro/delfino/drogaria/domain/Venda.java | 61 ++++++ .../drogaria/service/DrogariaService.java | 13 ++ .../drogaria/service/FabricanteService.java | 85 ++++++++ .../drogaria/service/ProdutoService.java | 39 ++++ .../drogaria/util/DrogariaResourceConfig.java | 13 ++ .../drogaria/util/HibernateContexto.java | 18 ++ .../delfino/drogaria/util/HibernateUtil.java | 47 +++++ .../src/main/resources/hibernate.cfg.xml | 51 +++++ .../webapp/WEB-INF/springsecurity.taglib.xml | 32 +++ .../Drogaria/src/main/webapp/WEB-INF/web.xml | 48 +++++ .../src/main/webapp/pages/autenticacao.xhtml | 36 ++++ .../src/main/webapp/pages/cidades.xhtml | 100 +++++++++ .../src/main/webapp/pages/clientes.xhtml | 94 +++++++++ .../src/main/webapp/pages/estados.xhtml | 90 ++++++++ .../src/main/webapp/pages/fabricantes.xhtml | 78 +++++++ .../src/main/webapp/pages/historico.xhtml | 64 ++++++ .../src/main/webapp/pages/pessoas.xhtml | 162 +++++++++++++++ .../src/main/webapp/pages/principal.xhtml | 14 ++ .../src/main/webapp/pages/produtos.xhtml | 141 +++++++++++++ .../main/webapp/pages/produtosEdicao.xhtml | 67 ++++++ .../main/webapp/pages/produtosListagem.xhtml | 59 ++++++ .../src/main/webapp/pages/testeJSF.xhtml | 12 ++ .../main/webapp/pages/testePrimeFaces.xhtml | 14 ++ .../src/main/webapp/pages/usuarios.xhtml | 97 +++++++++ .../src/main/webapp/pages/vendas.xhtml | 156 ++++++++++++++ .../src/main/webapp/reports/estados.jasper | Bin 0 -> 23708 bytes .../src/main/webapp/reports/estados.jrxml | 102 +++++++++ .../src/main/webapp/reports/produtos.jasper | Bin 0 -> 25898 bytes .../src/main/webapp/reports/produtos.jrxml | 130 ++++++++++++ .../src/main/webapp/resources/css/estilos.css | 19 ++ .../main/webapp/resources/images/banner.jpg | Bin 0 -> 227607 bytes .../src/main/webapp/resources/js/scripts.js | 26 +++ .../src/main/webapp/templates/modelo.xhtml | 55 +++++ .../delfino/drogaria/dao/CaixaDAOTest.java | 33 +++ .../delfino/drogaria/dao/CidadeDAOTest.java | 130 ++++++++++++ .../delfino/drogaria/dao/ClienteDAOTest.java | 29 +++ .../delfino/drogaria/dao/EstadoDAOTest.java | 88 ++++++++ .../drogaria/dao/FabricanteDAOTest.java | 63 ++++++ .../drogaria/dao/FuncionarioDAOTest.java | 5 + .../delfino/drogaria/dao/ProdutoDAOTest.java | 29 +++ .../delfino/drogaria/dao/UsuarioDAOTest.java | 47 +++++ .../drogaria/util/HibernateUtilTest.java | 13 ++ 288_Schedule_Tela/Drogaria/.tern-project | 1 + 288_Schedule_Tela/Drogaria/pom.xml | 132 ++++++++++++ .../drogaria/bean/AutenticacaoBean.java | 60 ++++++ .../pro/delfino/drogaria/bean/CaixaBean.java | 27 +++ .../pro/delfino/drogaria/bean/CidadeBean.java | 119 +++++++++++ .../delfino/drogaria/bean/ClienteBean.java | 91 ++++++++ .../pro/delfino/drogaria/bean/EstadoBean.java | 88 ++++++++ .../delfino/drogaria/bean/FabricanteBean.java | 116 +++++++++++ .../delfino/drogaria/bean/HistoricoBean.java | 89 ++++++++ .../pro/delfino/drogaria/bean/ImagemBean.java | 48 +++++ .../pro/delfino/drogaria/bean/PessoaBean.java | 156 ++++++++++++++ .../delfino/drogaria/bean/ProdutoBean.java | 196 ++++++++++++++++++ .../delfino/drogaria/bean/ProdutoBean2.java | 86 ++++++++ .../delfino/drogaria/bean/UsuarioBean.java | 90 ++++++++ .../pro/delfino/drogaria/bean/VendaBean.java | 186 +++++++++++++++++ .../converter/UpperCaseConverter.java | 28 +++ .../br/pro/delfino/drogaria/dao/CaixaDAO.java | 26 +++ .../pro/delfino/drogaria/dao/CidadeDAO.java | 29 +++ .../pro/delfino/drogaria/dao/ClienteDAO.java | 28 +++ .../pro/delfino/drogaria/dao/EstadoDAO.java | 7 + .../delfino/drogaria/dao/FabricanteDAO.java | 7 + .../delfino/drogaria/dao/FuncionarioDAO.java | 28 +++ .../pro/delfino/drogaria/dao/GenericDAO.java | 140 +++++++++++++ .../delfino/drogaria/dao/HistoricoDAO.java | 7 + .../delfino/drogaria/dao/MovimentacaoDAO.java | 7 + .../pro/delfino/drogaria/dao/PessoaDAO.java | 7 + .../pro/delfino/drogaria/dao/ProdutoDAO.java | 7 + .../pro/delfino/drogaria/dao/UsuarioDAO.java | 33 +++ .../br/pro/delfino/drogaria/dao/VendaDAO.java | 49 +++++ .../br/pro/delfino/drogaria/domain/Caixa.java | 62 ++++++ .../pro/delfino/drogaria/domain/Cidade.java | 33 +++ .../pro/delfino/drogaria/domain/Cliente.java | 49 +++++ .../pro/delfino/drogaria/domain/Estado.java | 30 +++ .../delfino/drogaria/domain/Fabricante.java | 19 ++ .../delfino/drogaria/domain/Funcionario.java | 49 +++++ .../drogaria/domain/GenericDomain.java | 54 +++++ .../delfino/drogaria/domain/Historico.java | 49 +++++ .../delfino/drogaria/domain/ItemVenda.java | 58 ++++++ .../delfino/drogaria/domain/Movimentacao.java | 50 +++++ .../pro/delfino/drogaria/domain/Pessoa.java | 143 +++++++++++++ .../pro/delfino/drogaria/domain/Produto.java | 69 ++++++ .../pro/delfino/drogaria/domain/Usuario.java | 93 +++++++++ .../br/pro/delfino/drogaria/domain/Venda.java | 61 ++++++ .../drogaria/service/DrogariaService.java | 13 ++ .../drogaria/service/FabricanteService.java | 85 ++++++++ .../drogaria/service/ProdutoService.java | 39 ++++ .../drogaria/util/DrogariaResourceConfig.java | 13 ++ .../drogaria/util/HibernateContexto.java | 18 ++ .../delfino/drogaria/util/HibernateUtil.java | 47 +++++ .../src/main/resources/hibernate.cfg.xml | 51 +++++ .../webapp/WEB-INF/springsecurity.taglib.xml | 32 +++ .../Drogaria/src/main/webapp/WEB-INF/web.xml | 48 +++++ .../src/main/webapp/pages/autenticacao.xhtml | 36 ++++ .../src/main/webapp/pages/caixa.xhtml | 39 ++++ .../src/main/webapp/pages/cidades.xhtml | 100 +++++++++ .../src/main/webapp/pages/clientes.xhtml | 94 +++++++++ .../src/main/webapp/pages/estados.xhtml | 90 ++++++++ .../src/main/webapp/pages/fabricantes.xhtml | 78 +++++++ .../src/main/webapp/pages/historico.xhtml | 64 ++++++ .../src/main/webapp/pages/pessoas.xhtml | 162 +++++++++++++++ .../src/main/webapp/pages/principal.xhtml | 14 ++ .../src/main/webapp/pages/produtos.xhtml | 141 +++++++++++++ .../main/webapp/pages/produtosEdicao.xhtml | 67 ++++++ .../main/webapp/pages/produtosListagem.xhtml | 59 ++++++ .../src/main/webapp/pages/testeJSF.xhtml | 12 ++ .../main/webapp/pages/testePrimeFaces.xhtml | 14 ++ .../src/main/webapp/pages/usuarios.xhtml | 97 +++++++++ .../src/main/webapp/pages/vendas.xhtml | 156 ++++++++++++++ .../src/main/webapp/reports/estados.jasper | Bin 0 -> 23708 bytes .../src/main/webapp/reports/estados.jrxml | 102 +++++++++ .../src/main/webapp/reports/produtos.jasper | Bin 0 -> 25898 bytes .../src/main/webapp/reports/produtos.jrxml | 130 ++++++++++++ .../src/main/webapp/resources/css/estilos.css | 19 ++ .../main/webapp/resources/images/banner.jpg | Bin 0 -> 227607 bytes .../src/main/webapp/resources/js/scripts.js | 26 +++ .../src/main/webapp/templates/modelo.xhtml | 55 +++++ .../delfino/drogaria/dao/CaixaDAOTest.java | 33 +++ .../delfino/drogaria/dao/CidadeDAOTest.java | 130 ++++++++++++ .../delfino/drogaria/dao/ClienteDAOTest.java | 29 +++ .../delfino/drogaria/dao/EstadoDAOTest.java | 88 ++++++++ .../drogaria/dao/FabricanteDAOTest.java | 63 ++++++ .../drogaria/dao/FuncionarioDAOTest.java | 5 + .../delfino/drogaria/dao/ProdutoDAOTest.java | 29 +++ .../delfino/drogaria/dao/UsuarioDAOTest.java | 47 +++++ .../drogaria/util/HibernateUtilTest.java | 13 ++ .../Drogaria/.tern-project | 1 + 289_Schedule_Novo_Evento/Drogaria/pom.xml | 132 ++++++++++++ .../drogaria/bean/AutenticacaoBean.java | 60 ++++++ .../pro/delfino/drogaria/bean/CaixaBean.java | 62 ++++++ .../pro/delfino/drogaria/bean/CidadeBean.java | 119 +++++++++++ .../delfino/drogaria/bean/ClienteBean.java | 91 ++++++++ .../pro/delfino/drogaria/bean/EstadoBean.java | 88 ++++++++ .../delfino/drogaria/bean/FabricanteBean.java | 116 +++++++++++ .../delfino/drogaria/bean/HistoricoBean.java | 89 ++++++++ .../pro/delfino/drogaria/bean/ImagemBean.java | 48 +++++ .../pro/delfino/drogaria/bean/PessoaBean.java | 156 ++++++++++++++ .../delfino/drogaria/bean/ProdutoBean.java | 196 ++++++++++++++++++ .../delfino/drogaria/bean/ProdutoBean2.java | 86 ++++++++ .../delfino/drogaria/bean/UsuarioBean.java | 90 ++++++++ .../pro/delfino/drogaria/bean/VendaBean.java | 186 +++++++++++++++++ .../converter/UpperCaseConverter.java | 28 +++ .../br/pro/delfino/drogaria/dao/CaixaDAO.java | 26 +++ .../pro/delfino/drogaria/dao/CidadeDAO.java | 29 +++ .../pro/delfino/drogaria/dao/ClienteDAO.java | 28 +++ .../pro/delfino/drogaria/dao/EstadoDAO.java | 7 + .../delfino/drogaria/dao/FabricanteDAO.java | 7 + .../delfino/drogaria/dao/FuncionarioDAO.java | 28 +++ .../pro/delfino/drogaria/dao/GenericDAO.java | 140 +++++++++++++ .../delfino/drogaria/dao/HistoricoDAO.java | 7 + .../delfino/drogaria/dao/MovimentacaoDAO.java | 7 + .../pro/delfino/drogaria/dao/PessoaDAO.java | 7 + .../pro/delfino/drogaria/dao/ProdutoDAO.java | 7 + .../pro/delfino/drogaria/dao/UsuarioDAO.java | 33 +++ .../br/pro/delfino/drogaria/dao/VendaDAO.java | 49 +++++ .../br/pro/delfino/drogaria/domain/Caixa.java | 62 ++++++ .../pro/delfino/drogaria/domain/Cidade.java | 33 +++ .../pro/delfino/drogaria/domain/Cliente.java | 49 +++++ .../pro/delfino/drogaria/domain/Estado.java | 30 +++ .../delfino/drogaria/domain/Fabricante.java | 19 ++ .../delfino/drogaria/domain/Funcionario.java | 49 +++++ .../drogaria/domain/GenericDomain.java | 54 +++++ .../delfino/drogaria/domain/Historico.java | 49 +++++ .../delfino/drogaria/domain/ItemVenda.java | 58 ++++++ .../delfino/drogaria/domain/Movimentacao.java | 50 +++++ .../pro/delfino/drogaria/domain/Pessoa.java | 143 +++++++++++++ .../pro/delfino/drogaria/domain/Produto.java | 69 ++++++ .../pro/delfino/drogaria/domain/Usuario.java | 93 +++++++++ .../br/pro/delfino/drogaria/domain/Venda.java | 61 ++++++ .../drogaria/service/DrogariaService.java | 13 ++ .../drogaria/service/FabricanteService.java | 85 ++++++++ .../drogaria/service/ProdutoService.java | 39 ++++ .../drogaria/util/DrogariaResourceConfig.java | 13 ++ .../drogaria/util/HibernateContexto.java | 18 ++ .../delfino/drogaria/util/HibernateUtil.java | 47 +++++ .../src/main/resources/hibernate.cfg.xml | 51 +++++ .../webapp/WEB-INF/springsecurity.taglib.xml | 32 +++ .../Drogaria/src/main/webapp/WEB-INF/web.xml | 48 +++++ .../src/main/webapp/pages/autenticacao.xhtml | 36 ++++ .../src/main/webapp/pages/caixa.xhtml | 47 +++++ .../src/main/webapp/pages/cidades.xhtml | 100 +++++++++ .../src/main/webapp/pages/clientes.xhtml | 94 +++++++++ .../src/main/webapp/pages/estados.xhtml | 90 ++++++++ .../src/main/webapp/pages/fabricantes.xhtml | 78 +++++++ .../src/main/webapp/pages/historico.xhtml | 64 ++++++ .../src/main/webapp/pages/pessoas.xhtml | 162 +++++++++++++++ .../src/main/webapp/pages/principal.xhtml | 14 ++ .../src/main/webapp/pages/produtos.xhtml | 141 +++++++++++++ .../main/webapp/pages/produtosEdicao.xhtml | 67 ++++++ .../main/webapp/pages/produtosListagem.xhtml | 59 ++++++ .../src/main/webapp/pages/testeJSF.xhtml | 12 ++ .../main/webapp/pages/testePrimeFaces.xhtml | 14 ++ .../src/main/webapp/pages/usuarios.xhtml | 97 +++++++++ .../src/main/webapp/pages/vendas.xhtml | 156 ++++++++++++++ .../src/main/webapp/reports/estados.jasper | Bin 0 -> 23708 bytes .../src/main/webapp/reports/estados.jrxml | 102 +++++++++ .../src/main/webapp/reports/produtos.jasper | Bin 0 -> 25898 bytes .../src/main/webapp/reports/produtos.jrxml | 130 ++++++++++++ .../src/main/webapp/resources/css/estilos.css | 19 ++ .../main/webapp/resources/images/banner.jpg | Bin 0 -> 227607 bytes .../src/main/webapp/resources/js/scripts.js | 26 +++ .../src/main/webapp/templates/modelo.xhtml | 55 +++++ .../delfino/drogaria/dao/CaixaDAOTest.java | 33 +++ .../delfino/drogaria/dao/CidadeDAOTest.java | 130 ++++++++++++ .../delfino/drogaria/dao/ClienteDAOTest.java | 29 +++ .../delfino/drogaria/dao/EstadoDAOTest.java | 88 ++++++++ .../drogaria/dao/FabricanteDAOTest.java | 63 ++++++ .../drogaria/dao/FuncionarioDAOTest.java | 5 + .../delfino/drogaria/dao/ProdutoDAOTest.java | 29 +++ .../delfino/drogaria/dao/UsuarioDAOTest.java | 47 +++++ .../drogaria/util/HibernateUtilTest.java | 13 ++ .../Drogaria/.tern-project | 1 + 290_Schedule_Salvar_Evento/Drogaria/pom.xml | 132 ++++++++++++ .../drogaria/bean/AutenticacaoBean.java | 60 ++++++ .../pro/delfino/drogaria/bean/CaixaBean.java | 76 +++++++ .../pro/delfino/drogaria/bean/CidadeBean.java | 119 +++++++++++ .../delfino/drogaria/bean/ClienteBean.java | 91 ++++++++ .../pro/delfino/drogaria/bean/EstadoBean.java | 88 ++++++++ .../delfino/drogaria/bean/FabricanteBean.java | 116 +++++++++++ .../delfino/drogaria/bean/HistoricoBean.java | 89 ++++++++ .../pro/delfino/drogaria/bean/ImagemBean.java | 48 +++++ .../pro/delfino/drogaria/bean/PessoaBean.java | 156 ++++++++++++++ .../delfino/drogaria/bean/ProdutoBean.java | 196 ++++++++++++++++++ .../delfino/drogaria/bean/ProdutoBean2.java | 86 ++++++++ .../delfino/drogaria/bean/UsuarioBean.java | 90 ++++++++ .../pro/delfino/drogaria/bean/VendaBean.java | 186 +++++++++++++++++ .../converter/UpperCaseConverter.java | 28 +++ .../br/pro/delfino/drogaria/dao/CaixaDAO.java | 26 +++ .../pro/delfino/drogaria/dao/CidadeDAO.java | 29 +++ .../pro/delfino/drogaria/dao/ClienteDAO.java | 28 +++ .../pro/delfino/drogaria/dao/EstadoDAO.java | 7 + .../delfino/drogaria/dao/FabricanteDAO.java | 7 + .../delfino/drogaria/dao/FuncionarioDAO.java | 28 +++ .../pro/delfino/drogaria/dao/GenericDAO.java | 140 +++++++++++++ .../delfino/drogaria/dao/HistoricoDAO.java | 7 + .../delfino/drogaria/dao/MovimentacaoDAO.java | 7 + .../pro/delfino/drogaria/dao/PessoaDAO.java | 7 + .../pro/delfino/drogaria/dao/ProdutoDAO.java | 7 + .../pro/delfino/drogaria/dao/UsuarioDAO.java | 33 +++ .../br/pro/delfino/drogaria/dao/VendaDAO.java | 49 +++++ .../br/pro/delfino/drogaria/domain/Caixa.java | 62 ++++++ .../pro/delfino/drogaria/domain/Cidade.java | 33 +++ .../pro/delfino/drogaria/domain/Cliente.java | 49 +++++ .../pro/delfino/drogaria/domain/Estado.java | 30 +++ .../delfino/drogaria/domain/Fabricante.java | 19 ++ .../delfino/drogaria/domain/Funcionario.java | 49 +++++ .../drogaria/domain/GenericDomain.java | 54 +++++ .../delfino/drogaria/domain/Historico.java | 49 +++++ .../delfino/drogaria/domain/ItemVenda.java | 58 ++++++ .../delfino/drogaria/domain/Movimentacao.java | 50 +++++ .../pro/delfino/drogaria/domain/Pessoa.java | 143 +++++++++++++ .../pro/delfino/drogaria/domain/Produto.java | 69 ++++++ .../pro/delfino/drogaria/domain/Usuario.java | 93 +++++++++ .../br/pro/delfino/drogaria/domain/Venda.java | 61 ++++++ .../drogaria/service/DrogariaService.java | 13 ++ .../drogaria/service/FabricanteService.java | 85 ++++++++ .../drogaria/service/ProdutoService.java | 39 ++++ .../drogaria/util/DrogariaResourceConfig.java | 13 ++ .../drogaria/util/HibernateContexto.java | 18 ++ .../delfino/drogaria/util/HibernateUtil.java | 47 +++++ .../src/main/resources/hibernate.cfg.xml | 51 +++++ .../webapp/WEB-INF/springsecurity.taglib.xml | 32 +++ .../Drogaria/src/main/webapp/WEB-INF/web.xml | 48 +++++ .../src/main/webapp/pages/autenticacao.xhtml | 36 ++++ .../src/main/webapp/pages/caixa.xhtml | 50 +++++ .../src/main/webapp/pages/cidades.xhtml | 100 +++++++++ .../src/main/webapp/pages/clientes.xhtml | 94 +++++++++ .../src/main/webapp/pages/estados.xhtml | 90 ++++++++ .../src/main/webapp/pages/fabricantes.xhtml | 78 +++++++ .../src/main/webapp/pages/historico.xhtml | 64 ++++++ .../src/main/webapp/pages/pessoas.xhtml | 162 +++++++++++++++ .../src/main/webapp/pages/principal.xhtml | 14 ++ .../src/main/webapp/pages/produtos.xhtml | 141 +++++++++++++ .../main/webapp/pages/produtosEdicao.xhtml | 67 ++++++ .../main/webapp/pages/produtosListagem.xhtml | 59 ++++++ .../src/main/webapp/pages/testeJSF.xhtml | 12 ++ .../main/webapp/pages/testePrimeFaces.xhtml | 14 ++ .../src/main/webapp/pages/usuarios.xhtml | 97 +++++++++ .../src/main/webapp/pages/vendas.xhtml | 156 ++++++++++++++ .../src/main/webapp/reports/estados.jasper | Bin 0 -> 23708 bytes .../src/main/webapp/reports/estados.jrxml | 102 +++++++++ .../src/main/webapp/reports/produtos.jasper | Bin 0 -> 25898 bytes .../src/main/webapp/reports/produtos.jrxml | 130 ++++++++++++ .../src/main/webapp/resources/css/estilos.css | 19 ++ .../main/webapp/resources/images/banner.jpg | Bin 0 -> 227607 bytes .../src/main/webapp/resources/js/scripts.js | 26 +++ .../src/main/webapp/templates/modelo.xhtml | 55 +++++ .../delfino/drogaria/dao/CaixaDAOTest.java | 33 +++ .../delfino/drogaria/dao/CidadeDAOTest.java | 130 ++++++++++++ .../delfino/drogaria/dao/ClienteDAOTest.java | 29 +++ .../delfino/drogaria/dao/EstadoDAOTest.java | 88 ++++++++ .../drogaria/dao/FabricanteDAOTest.java | 63 ++++++ .../drogaria/dao/FuncionarioDAOTest.java | 5 + .../delfino/drogaria/dao/ProdutoDAOTest.java | 29 +++ .../delfino/drogaria/dao/UsuarioDAOTest.java | 47 +++++ .../drogaria/util/HibernateUtilTest.java | 13 ++ .../Drogaria/.tern-project | 1 + 291_PhaseListener_Introducao/Drogaria/pom.xml | 132 ++++++++++++ .../drogaria/bean/AutenticacaoBean.java | 60 ++++++ .../pro/delfino/drogaria/bean/CaixaBean.java | 78 +++++++ .../pro/delfino/drogaria/bean/CidadeBean.java | 119 +++++++++++ .../delfino/drogaria/bean/ClienteBean.java | 91 ++++++++ .../pro/delfino/drogaria/bean/EstadoBean.java | 88 ++++++++ .../delfino/drogaria/bean/FabricanteBean.java | 116 +++++++++++ .../delfino/drogaria/bean/HistoricoBean.java | 89 ++++++++ .../pro/delfino/drogaria/bean/ImagemBean.java | 48 +++++ .../pro/delfino/drogaria/bean/PessoaBean.java | 156 ++++++++++++++ .../delfino/drogaria/bean/ProdutoBean.java | 196 ++++++++++++++++++ .../delfino/drogaria/bean/ProdutoBean2.java | 86 ++++++++ .../delfino/drogaria/bean/UsuarioBean.java | 90 ++++++++ .../pro/delfino/drogaria/bean/VendaBean.java | 186 +++++++++++++++++ .../converter/UpperCaseConverter.java | 28 +++ .../br/pro/delfino/drogaria/dao/CaixaDAO.java | 26 +++ .../pro/delfino/drogaria/dao/CidadeDAO.java | 29 +++ .../pro/delfino/drogaria/dao/ClienteDAO.java | 28 +++ .../pro/delfino/drogaria/dao/EstadoDAO.java | 7 + .../delfino/drogaria/dao/FabricanteDAO.java | 7 + .../delfino/drogaria/dao/FuncionarioDAO.java | 28 +++ .../pro/delfino/drogaria/dao/GenericDAO.java | 140 +++++++++++++ .../delfino/drogaria/dao/HistoricoDAO.java | 7 + .../delfino/drogaria/dao/MovimentacaoDAO.java | 7 + .../pro/delfino/drogaria/dao/PessoaDAO.java | 7 + .../pro/delfino/drogaria/dao/ProdutoDAO.java | 7 + .../pro/delfino/drogaria/dao/UsuarioDAO.java | 33 +++ .../br/pro/delfino/drogaria/dao/VendaDAO.java | 49 +++++ .../br/pro/delfino/drogaria/domain/Caixa.java | 62 ++++++ .../pro/delfino/drogaria/domain/Cidade.java | 33 +++ .../pro/delfino/drogaria/domain/Cliente.java | 49 +++++ .../pro/delfino/drogaria/domain/Estado.java | 30 +++ .../delfino/drogaria/domain/Fabricante.java | 19 ++ .../delfino/drogaria/domain/Funcionario.java | 49 +++++ .../drogaria/domain/GenericDomain.java | 54 +++++ .../delfino/drogaria/domain/Historico.java | 49 +++++ .../delfino/drogaria/domain/ItemVenda.java | 58 ++++++ .../delfino/drogaria/domain/Movimentacao.java | 50 +++++ .../pro/delfino/drogaria/domain/Pessoa.java | 143 +++++++++++++ .../pro/delfino/drogaria/domain/Produto.java | 69 ++++++ .../pro/delfino/drogaria/domain/Usuario.java | 93 +++++++++ .../br/pro/delfino/drogaria/domain/Venda.java | 61 ++++++ .../drogaria/service/DrogariaService.java | 13 ++ .../drogaria/service/FabricanteService.java | 85 ++++++++ .../drogaria/service/ProdutoService.java | 39 ++++ .../drogaria/util/AutenticacaoListener.java | 25 +++ .../drogaria/util/DrogariaResourceConfig.java | 13 ++ .../drogaria/util/HibernateContexto.java | 18 ++ .../delfino/drogaria/util/HibernateUtil.java | 47 +++++ .../src/main/resources/hibernate.cfg.xml | 51 +++++ .../webapp/WEB-INF/.faces-config.xml.jsfdia | 2 + .../src/main/webapp/WEB-INF/faces-config.xml | 12 ++ .../Drogaria/src/main/webapp/WEB-INF/web.xml | 52 +++++ .../src/main/webapp/pages/autenticacao.xhtml | 36 ++++ .../src/main/webapp/pages/caixa.xhtml | 50 +++++ .../src/main/webapp/pages/cidades.xhtml | 100 +++++++++ .../src/main/webapp/pages/clientes.xhtml | 94 +++++++++ .../src/main/webapp/pages/estados.xhtml | 90 ++++++++ .../src/main/webapp/pages/fabricantes.xhtml | 78 +++++++ .../src/main/webapp/pages/historico.xhtml | 64 ++++++ .../src/main/webapp/pages/pessoas.xhtml | 162 +++++++++++++++ .../src/main/webapp/pages/principal.xhtml | 14 ++ .../src/main/webapp/pages/produtos.xhtml | 141 +++++++++++++ .../main/webapp/pages/produtosEdicao.xhtml | 67 ++++++ .../main/webapp/pages/produtosListagem.xhtml | 59 ++++++ .../src/main/webapp/pages/testeJSF.xhtml | 12 ++ .../main/webapp/pages/testePrimeFaces.xhtml | 14 ++ .../src/main/webapp/pages/usuarios.xhtml | 97 +++++++++ .../src/main/webapp/pages/vendas.xhtml | 156 ++++++++++++++ .../src/main/webapp/reports/estados.jasper | Bin 0 -> 23708 bytes .../src/main/webapp/reports/estados.jrxml | 102 +++++++++ .../src/main/webapp/reports/produtos.jasper | Bin 0 -> 25898 bytes .../src/main/webapp/reports/produtos.jrxml | 130 ++++++++++++ .../src/main/webapp/resources/css/estilos.css | 19 ++ .../main/webapp/resources/images/banner.jpg | Bin 0 -> 227607 bytes .../src/main/webapp/resources/js/scripts.js | 26 +++ .../src/main/webapp/templates/modelo.xhtml | 55 +++++ .../delfino/drogaria/dao/CaixaDAOTest.java | 33 +++ .../delfino/drogaria/dao/CidadeDAOTest.java | 130 ++++++++++++ .../delfino/drogaria/dao/ClienteDAOTest.java | 29 +++ .../delfino/drogaria/dao/EstadoDAOTest.java | 88 ++++++++ .../drogaria/dao/FabricanteDAOTest.java | 63 ++++++ .../drogaria/dao/FuncionarioDAOTest.java | 5 + .../delfino/drogaria/dao/ProdutoDAOTest.java | 29 +++ .../delfino/drogaria/dao/UsuarioDAOTest.java | 47 +++++ .../drogaria/util/HibernateUtilTest.java | 13 ++ .../Drogaria/.tern-project | 1 + .../Drogaria/pom.xml | 132 ++++++++++++ .../drogaria/bean/AutenticacaoBean.java | 60 ++++++ .../pro/delfino/drogaria/bean/CaixaBean.java | 78 +++++++ .../pro/delfino/drogaria/bean/CidadeBean.java | 119 +++++++++++ .../delfino/drogaria/bean/ClienteBean.java | 91 ++++++++ .../pro/delfino/drogaria/bean/EstadoBean.java | 88 ++++++++ .../delfino/drogaria/bean/FabricanteBean.java | 116 +++++++++++ .../delfino/drogaria/bean/HistoricoBean.java | 89 ++++++++ .../pro/delfino/drogaria/bean/ImagemBean.java | 48 +++++ .../pro/delfino/drogaria/bean/PessoaBean.java | 156 ++++++++++++++ .../delfino/drogaria/bean/ProdutoBean.java | 196 ++++++++++++++++++ .../delfino/drogaria/bean/ProdutoBean2.java | 86 ++++++++ .../delfino/drogaria/bean/UsuarioBean.java | 90 ++++++++ .../pro/delfino/drogaria/bean/VendaBean.java | 186 +++++++++++++++++ .../converter/UpperCaseConverter.java | 28 +++ .../br/pro/delfino/drogaria/dao/CaixaDAO.java | 26 +++ .../pro/delfino/drogaria/dao/CidadeDAO.java | 29 +++ .../pro/delfino/drogaria/dao/ClienteDAO.java | 28 +++ .../pro/delfino/drogaria/dao/EstadoDAO.java | 7 + .../delfino/drogaria/dao/FabricanteDAO.java | 7 + .../delfino/drogaria/dao/FuncionarioDAO.java | 28 +++ .../pro/delfino/drogaria/dao/GenericDAO.java | 140 +++++++++++++ .../delfino/drogaria/dao/HistoricoDAO.java | 7 + .../delfino/drogaria/dao/MovimentacaoDAO.java | 7 + .../pro/delfino/drogaria/dao/PessoaDAO.java | 7 + .../pro/delfino/drogaria/dao/ProdutoDAO.java | 7 + .../pro/delfino/drogaria/dao/UsuarioDAO.java | 33 +++ .../br/pro/delfino/drogaria/dao/VendaDAO.java | 49 +++++ .../br/pro/delfino/drogaria/domain/Caixa.java | 62 ++++++ .../pro/delfino/drogaria/domain/Cidade.java | 33 +++ .../pro/delfino/drogaria/domain/Cliente.java | 49 +++++ .../pro/delfino/drogaria/domain/Estado.java | 30 +++ .../delfino/drogaria/domain/Fabricante.java | 19 ++ .../delfino/drogaria/domain/Funcionario.java | 49 +++++ .../drogaria/domain/GenericDomain.java | 54 +++++ .../delfino/drogaria/domain/Historico.java | 49 +++++ .../delfino/drogaria/domain/ItemVenda.java | 58 ++++++ .../delfino/drogaria/domain/Movimentacao.java | 50 +++++ .../pro/delfino/drogaria/domain/Pessoa.java | 143 +++++++++++++ .../pro/delfino/drogaria/domain/Produto.java | 69 ++++++ .../pro/delfino/drogaria/domain/Usuario.java | 93 +++++++++ .../br/pro/delfino/drogaria/domain/Venda.java | 61 ++++++ .../drogaria/service/DrogariaService.java | 13 ++ .../drogaria/service/FabricanteService.java | 85 ++++++++ .../drogaria/service/ProdutoService.java | 39 ++++ .../drogaria/util/AutenticacaoListener.java | 46 ++++ .../drogaria/util/DrogariaResourceConfig.java | 13 ++ .../drogaria/util/HibernateContexto.java | 18 ++ .../delfino/drogaria/util/HibernateUtil.java | 47 +++++ .../src/main/resources/hibernate.cfg.xml | 51 +++++ .../webapp/WEB-INF/.faces-config.xml.jsfdia | 2 + .../src/main/webapp/WEB-INF/faces-config.xml | 12 ++ .../Drogaria/src/main/webapp/WEB-INF/web.xml | 52 +++++ .../src/main/webapp/pages/autenticacao.xhtml | 36 ++++ .../src/main/webapp/pages/caixa.xhtml | 50 +++++ .../src/main/webapp/pages/cidades.xhtml | 100 +++++++++ .../src/main/webapp/pages/clientes.xhtml | 94 +++++++++ .../src/main/webapp/pages/estados.xhtml | 90 ++++++++ .../src/main/webapp/pages/fabricantes.xhtml | 78 +++++++ .../src/main/webapp/pages/historico.xhtml | 64 ++++++ .../src/main/webapp/pages/pessoas.xhtml | 162 +++++++++++++++ .../src/main/webapp/pages/principal.xhtml | 14 ++ .../src/main/webapp/pages/produtos.xhtml | 141 +++++++++++++ .../main/webapp/pages/produtosEdicao.xhtml | 67 ++++++ .../main/webapp/pages/produtosListagem.xhtml | 59 ++++++ .../src/main/webapp/pages/testeJSF.xhtml | 12 ++ .../main/webapp/pages/testePrimeFaces.xhtml | 14 ++ .../src/main/webapp/pages/usuarios.xhtml | 97 +++++++++ .../src/main/webapp/pages/vendas.xhtml | 156 ++++++++++++++ .../src/main/webapp/reports/estados.jasper | Bin 0 -> 23708 bytes .../src/main/webapp/reports/estados.jrxml | 102 +++++++++ .../src/main/webapp/reports/produtos.jasper | Bin 0 -> 25898 bytes .../src/main/webapp/reports/produtos.jrxml | 130 ++++++++++++ .../src/main/webapp/resources/css/estilos.css | 19 ++ .../main/webapp/resources/images/banner.jpg | Bin 0 -> 227607 bytes .../src/main/webapp/resources/js/scripts.js | 26 +++ .../src/main/webapp/templates/modelo.xhtml | 55 +++++ .../delfino/drogaria/dao/CaixaDAOTest.java | 33 +++ .../delfino/drogaria/dao/CidadeDAOTest.java | 130 ++++++++++++ .../delfino/drogaria/dao/ClienteDAOTest.java | 29 +++ .../delfino/drogaria/dao/EstadoDAOTest.java | 88 ++++++++ .../drogaria/dao/FabricanteDAOTest.java | 63 ++++++ .../drogaria/dao/FuncionarioDAOTest.java | 5 + .../delfino/drogaria/dao/ProdutoDAOTest.java | 29 +++ .../delfino/drogaria/dao/UsuarioDAOTest.java | 47 +++++ .../drogaria/util/HibernateUtilTest.java | 13 ++ .../Drogaria/.tern-project | 1 + .../Drogaria/pom.xml | 132 ++++++++++++ .../drogaria/bean/AutenticacaoBean.java | 71 +++++++ .../pro/delfino/drogaria/bean/CaixaBean.java | 78 +++++++ .../pro/delfino/drogaria/bean/CidadeBean.java | 119 +++++++++++ .../delfino/drogaria/bean/ClienteBean.java | 91 ++++++++ .../pro/delfino/drogaria/bean/EstadoBean.java | 88 ++++++++ .../delfino/drogaria/bean/FabricanteBean.java | 116 +++++++++++ .../delfino/drogaria/bean/HistoricoBean.java | 89 ++++++++ .../pro/delfino/drogaria/bean/ImagemBean.java | 48 +++++ .../pro/delfino/drogaria/bean/PessoaBean.java | 156 ++++++++++++++ .../delfino/drogaria/bean/ProdutoBean.java | 196 ++++++++++++++++++ .../delfino/drogaria/bean/ProdutoBean2.java | 86 ++++++++ .../delfino/drogaria/bean/UsuarioBean.java | 90 ++++++++ .../pro/delfino/drogaria/bean/VendaBean.java | 186 +++++++++++++++++ .../converter/UpperCaseConverter.java | 28 +++ .../br/pro/delfino/drogaria/dao/CaixaDAO.java | 26 +++ .../pro/delfino/drogaria/dao/CidadeDAO.java | 29 +++ .../pro/delfino/drogaria/dao/ClienteDAO.java | 28 +++ .../pro/delfino/drogaria/dao/EstadoDAO.java | 7 + .../delfino/drogaria/dao/FabricanteDAO.java | 7 + .../delfino/drogaria/dao/FuncionarioDAO.java | 28 +++ .../pro/delfino/drogaria/dao/GenericDAO.java | 140 +++++++++++++ .../delfino/drogaria/dao/HistoricoDAO.java | 7 + .../delfino/drogaria/dao/MovimentacaoDAO.java | 7 + .../pro/delfino/drogaria/dao/PessoaDAO.java | 7 + .../pro/delfino/drogaria/dao/ProdutoDAO.java | 7 + .../pro/delfino/drogaria/dao/UsuarioDAO.java | 33 +++ .../br/pro/delfino/drogaria/dao/VendaDAO.java | 49 +++++ .../br/pro/delfino/drogaria/domain/Caixa.java | 62 ++++++ .../pro/delfino/drogaria/domain/Cidade.java | 33 +++ .../pro/delfino/drogaria/domain/Cliente.java | 49 +++++ .../pro/delfino/drogaria/domain/Estado.java | 30 +++ .../delfino/drogaria/domain/Fabricante.java | 19 ++ .../delfino/drogaria/domain/Funcionario.java | 49 +++++ .../drogaria/domain/GenericDomain.java | 54 +++++ .../delfino/drogaria/domain/Historico.java | 49 +++++ .../delfino/drogaria/domain/ItemVenda.java | 58 ++++++ .../delfino/drogaria/domain/Movimentacao.java | 50 +++++ .../pro/delfino/drogaria/domain/Pessoa.java | 143 +++++++++++++ .../pro/delfino/drogaria/domain/Produto.java | 69 ++++++ .../pro/delfino/drogaria/domain/Usuario.java | 93 +++++++++ .../br/pro/delfino/drogaria/domain/Venda.java | 61 ++++++ .../drogaria/service/DrogariaService.java | 13 ++ .../drogaria/service/FabricanteService.java | 85 ++++++++ .../drogaria/service/ProdutoService.java | 39 ++++ .../drogaria/util/AutenticacaoListener.java | 46 ++++ .../drogaria/util/DrogariaResourceConfig.java | 13 ++ .../drogaria/util/HibernateContexto.java | 18 ++ .../delfino/drogaria/util/HibernateUtil.java | 47 +++++ .../src/main/resources/hibernate.cfg.xml | 51 +++++ .../webapp/WEB-INF/.faces-config.xml.jsfdia | 2 + .../src/main/webapp/WEB-INF/faces-config.xml | 12 ++ .../Drogaria/src/main/webapp/WEB-INF/web.xml | 52 +++++ .../src/main/webapp/pages/autenticacao.xhtml | 36 ++++ .../src/main/webapp/pages/caixa.xhtml | 50 +++++ .../src/main/webapp/pages/cidades.xhtml | 100 +++++++++ .../src/main/webapp/pages/clientes.xhtml | 94 +++++++++ .../src/main/webapp/pages/estados.xhtml | 90 ++++++++ .../src/main/webapp/pages/fabricantes.xhtml | 78 +++++++ .../src/main/webapp/pages/historico.xhtml | 64 ++++++ .../src/main/webapp/pages/pessoas.xhtml | 162 +++++++++++++++ .../src/main/webapp/pages/principal.xhtml | 14 ++ .../src/main/webapp/pages/produtos.xhtml | 141 +++++++++++++ .../main/webapp/pages/produtosEdicao.xhtml | 67 ++++++ .../main/webapp/pages/produtosListagem.xhtml | 59 ++++++ .../src/main/webapp/pages/testeJSF.xhtml | 12 ++ .../main/webapp/pages/testePrimeFaces.xhtml | 14 ++ .../src/main/webapp/pages/usuarios.xhtml | 97 +++++++++ .../src/main/webapp/pages/vendas.xhtml | 156 ++++++++++++++ .../src/main/webapp/reports/estados.jasper | Bin 0 -> 23708 bytes .../src/main/webapp/reports/estados.jrxml | 102 +++++++++ .../src/main/webapp/reports/produtos.jasper | Bin 0 -> 25898 bytes .../src/main/webapp/reports/produtos.jrxml | 130 ++++++++++++ .../src/main/webapp/resources/css/estilos.css | 19 ++ .../main/webapp/resources/images/banner.jpg | Bin 0 -> 227607 bytes .../src/main/webapp/resources/js/scripts.js | 26 +++ .../src/main/webapp/templates/modelo.xhtml | 56 +++++ .../delfino/drogaria/dao/CaixaDAOTest.java | 33 +++ .../delfino/drogaria/dao/CidadeDAOTest.java | 130 ++++++++++++ .../delfino/drogaria/dao/ClienteDAOTest.java | 29 +++ .../delfino/drogaria/dao/EstadoDAOTest.java | 88 ++++++++ .../drogaria/dao/FabricanteDAOTest.java | 63 ++++++ .../drogaria/dao/FuncionarioDAOTest.java | 5 + .../delfino/drogaria/dao/ProdutoDAOTest.java | 29 +++ .../delfino/drogaria/dao/UsuarioDAOTest.java | 47 +++++ .../drogaria/util/HibernateUtilTest.java | 13 ++ 924 files changed, 54919 insertions(+) create mode 100644 282_Jelastic_Criacao_Banco_Dados/Drogaria/.tern-project create mode 100644 282_Jelastic_Criacao_Banco_Dados/Drogaria/pom.xml create mode 100644 282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/AutenticacaoBean.java create mode 100644 282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/CidadeBean.java create mode 100644 282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/ClienteBean.java create mode 100644 282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/EstadoBean.java create mode 100644 282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/FabricanteBean.java create mode 100644 282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/HistoricoBean.java create mode 100644 282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/ImagemBean.java create mode 100644 282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/PessoaBean.java create mode 100644 282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/ProdutoBean.java create mode 100644 282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/UsuarioBean.java create mode 100644 282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/VendaBean.java create mode 100644 282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/java/br/pro/delfino/drogaria/converter/UpperCaseConverter.java create mode 100644 282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/CaixaDAO.java create mode 100644 282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/CidadeDAO.java create mode 100644 282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/ClienteDAO.java create mode 100644 282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/EstadoDAO.java create mode 100644 282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/FabricanteDAO.java create mode 100644 282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/FuncionarioDAO.java create mode 100644 282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/GenericDAO.java create mode 100644 282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/HistoricoDAO.java create mode 100644 282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/MovimentacaoDAO.java create mode 100644 282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/PessoaDAO.java create mode 100644 282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/ProdutoDAO.java create mode 100644 282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/UsuarioDAO.java create mode 100644 282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/VendaDAO.java create mode 100644 282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Caixa.java create mode 100644 282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Cidade.java create mode 100644 282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Cliente.java create mode 100644 282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Estado.java create mode 100644 282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Fabricante.java create mode 100644 282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Funcionario.java create mode 100644 282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/GenericDomain.java create mode 100644 282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Historico.java create mode 100644 282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/ItemVenda.java create mode 100644 282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Movimentacao.java create mode 100644 282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Pessoa.java create mode 100644 282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Produto.java create mode 100644 282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Usuario.java create mode 100644 282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Venda.java create mode 100644 282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/java/br/pro/delfino/drogaria/service/DrogariaService.java create mode 100644 282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/java/br/pro/delfino/drogaria/service/FabricanteService.java create mode 100644 282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/java/br/pro/delfino/drogaria/service/ProdutoService.java create mode 100644 282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/java/br/pro/delfino/drogaria/util/DrogariaResourceConfig.java create mode 100644 282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/java/br/pro/delfino/drogaria/util/HibernateContexto.java create mode 100644 282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/java/br/pro/delfino/drogaria/util/HibernateUtil.java create mode 100644 282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/resources/hibernate.cfg.xml create mode 100644 282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/webapp/WEB-INF/springsecurity.taglib.xml create mode 100644 282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/webapp/WEB-INF/web.xml create mode 100644 282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/webapp/pages/autenticacao.xhtml create mode 100644 282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/webapp/pages/cidades.xhtml create mode 100644 282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/webapp/pages/clientes.xhtml create mode 100644 282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/webapp/pages/estados.xhtml create mode 100644 282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/webapp/pages/fabricantes.xhtml create mode 100644 282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/webapp/pages/historico.xhtml create mode 100644 282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/webapp/pages/pessoas.xhtml create mode 100644 282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/webapp/pages/principal.xhtml create mode 100644 282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/webapp/pages/produtos.xhtml create mode 100644 282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/webapp/pages/testeJSF.xhtml create mode 100644 282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/webapp/pages/testePrimeFaces.xhtml create mode 100644 282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/webapp/pages/usuarios.xhtml create mode 100644 282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/webapp/pages/vendas.xhtml create mode 100644 282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/webapp/reports/estados.jasper create mode 100644 282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/webapp/reports/estados.jrxml create mode 100644 282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/webapp/reports/produtos.jasper create mode 100644 282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/webapp/reports/produtos.jrxml create mode 100644 282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/webapp/resources/css/estilos.css create mode 100644 282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/webapp/resources/images/banner.jpg create mode 100644 282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/webapp/resources/js/scripts.js create mode 100644 282_Jelastic_Criacao_Banco_Dados/Drogaria/src/main/webapp/templates/modelo.xhtml create mode 100644 282_Jelastic_Criacao_Banco_Dados/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/CaixaDAOTest.java create mode 100644 282_Jelastic_Criacao_Banco_Dados/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/CidadeDAOTest.java create mode 100644 282_Jelastic_Criacao_Banco_Dados/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/ClienteDAOTest.java create mode 100644 282_Jelastic_Criacao_Banco_Dados/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/EstadoDAOTest.java create mode 100644 282_Jelastic_Criacao_Banco_Dados/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/FabricanteDAOTest.java create mode 100644 282_Jelastic_Criacao_Banco_Dados/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/FuncionarioDAOTest.java create mode 100644 282_Jelastic_Criacao_Banco_Dados/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/ProdutoDAOTest.java create mode 100644 282_Jelastic_Criacao_Banco_Dados/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/UsuarioDAOTest.java create mode 100644 282_Jelastic_Criacao_Banco_Dados/Drogaria/src/test/java/br/pro/delfino/drogaria/util/HibernateUtilTest.java create mode 100644 284_Autenticacao_ManagedBean_Parte2/Drogaria/.tern-project create mode 100644 284_Autenticacao_ManagedBean_Parte2/Drogaria/pom.xml create mode 100644 284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/AutenticacaoBean.java create mode 100644 284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/CidadeBean.java create mode 100644 284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/ClienteBean.java create mode 100644 284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/EstadoBean.java create mode 100644 284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/FabricanteBean.java create mode 100644 284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/HistoricoBean.java create mode 100644 284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/ImagemBean.java create mode 100644 284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/PessoaBean.java create mode 100644 284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/ProdutoBean.java create mode 100644 284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/UsuarioBean.java create mode 100644 284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/VendaBean.java create mode 100644 284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/java/br/pro/delfino/drogaria/converter/UpperCaseConverter.java create mode 100644 284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/CaixaDAO.java create mode 100644 284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/CidadeDAO.java create mode 100644 284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/ClienteDAO.java create mode 100644 284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/EstadoDAO.java create mode 100644 284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/FabricanteDAO.java create mode 100644 284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/FuncionarioDAO.java create mode 100644 284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/GenericDAO.java create mode 100644 284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/HistoricoDAO.java create mode 100644 284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/MovimentacaoDAO.java create mode 100644 284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/PessoaDAO.java create mode 100644 284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/ProdutoDAO.java create mode 100644 284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/UsuarioDAO.java create mode 100644 284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/VendaDAO.java create mode 100644 284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Caixa.java create mode 100644 284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Cidade.java create mode 100644 284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Cliente.java create mode 100644 284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Estado.java create mode 100644 284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Fabricante.java create mode 100644 284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Funcionario.java create mode 100644 284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/GenericDomain.java create mode 100644 284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Historico.java create mode 100644 284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/ItemVenda.java create mode 100644 284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Movimentacao.java create mode 100644 284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Pessoa.java create mode 100644 284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Produto.java create mode 100644 284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Usuario.java create mode 100644 284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Venda.java create mode 100644 284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/java/br/pro/delfino/drogaria/service/DrogariaService.java create mode 100644 284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/java/br/pro/delfino/drogaria/service/FabricanteService.java create mode 100644 284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/java/br/pro/delfino/drogaria/service/ProdutoService.java create mode 100644 284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/java/br/pro/delfino/drogaria/util/DrogariaResourceConfig.java create mode 100644 284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/java/br/pro/delfino/drogaria/util/HibernateContexto.java create mode 100644 284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/java/br/pro/delfino/drogaria/util/HibernateUtil.java create mode 100644 284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/resources/hibernate.cfg.xml create mode 100644 284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/webapp/WEB-INF/springsecurity.taglib.xml create mode 100644 284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/webapp/WEB-INF/web.xml create mode 100644 284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/webapp/pages/autenticacao.xhtml create mode 100644 284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/webapp/pages/cidades.xhtml create mode 100644 284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/webapp/pages/clientes.xhtml create mode 100644 284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/webapp/pages/estados.xhtml create mode 100644 284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/webapp/pages/fabricantes.xhtml create mode 100644 284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/webapp/pages/historico.xhtml create mode 100644 284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/webapp/pages/pessoas.xhtml create mode 100644 284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/webapp/pages/principal.xhtml create mode 100644 284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/webapp/pages/produtos.xhtml create mode 100644 284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/webapp/pages/testeJSF.xhtml create mode 100644 284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/webapp/pages/testePrimeFaces.xhtml create mode 100644 284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/webapp/pages/usuarios.xhtml create mode 100644 284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/webapp/pages/vendas.xhtml create mode 100644 284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/webapp/reports/estados.jasper create mode 100644 284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/webapp/reports/estados.jrxml create mode 100644 284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/webapp/reports/produtos.jasper create mode 100644 284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/webapp/reports/produtos.jrxml create mode 100644 284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/webapp/resources/css/estilos.css create mode 100644 284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/webapp/resources/images/banner.jpg create mode 100644 284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/webapp/resources/js/scripts.js create mode 100644 284_Autenticacao_ManagedBean_Parte2/Drogaria/src/main/webapp/templates/modelo.xhtml create mode 100644 284_Autenticacao_ManagedBean_Parte2/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/CaixaDAOTest.java create mode 100644 284_Autenticacao_ManagedBean_Parte2/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/CidadeDAOTest.java create mode 100644 284_Autenticacao_ManagedBean_Parte2/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/ClienteDAOTest.java create mode 100644 284_Autenticacao_ManagedBean_Parte2/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/EstadoDAOTest.java create mode 100644 284_Autenticacao_ManagedBean_Parte2/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/FabricanteDAOTest.java create mode 100644 284_Autenticacao_ManagedBean_Parte2/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/FuncionarioDAOTest.java create mode 100644 284_Autenticacao_ManagedBean_Parte2/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/ProdutoDAOTest.java create mode 100644 284_Autenticacao_ManagedBean_Parte2/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/UsuarioDAOTest.java create mode 100644 284_Autenticacao_ManagedBean_Parte2/Drogaria/src/test/java/br/pro/delfino/drogaria/util/HibernateUtilTest.java create mode 100644 285_ViewAction/Drogaria/.tern-project create mode 100644 285_ViewAction/Drogaria/pom.xml create mode 100644 285_ViewAction/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/AutenticacaoBean.java create mode 100644 285_ViewAction/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/CidadeBean.java create mode 100644 285_ViewAction/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/ClienteBean.java create mode 100644 285_ViewAction/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/EstadoBean.java create mode 100644 285_ViewAction/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/FabricanteBean.java create mode 100644 285_ViewAction/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/HistoricoBean.java create mode 100644 285_ViewAction/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/ImagemBean.java create mode 100644 285_ViewAction/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/PessoaBean.java create mode 100644 285_ViewAction/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/ProdutoBean.java create mode 100644 285_ViewAction/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/ProdutoBean2.java create mode 100644 285_ViewAction/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/UsuarioBean.java create mode 100644 285_ViewAction/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/VendaBean.java create mode 100644 285_ViewAction/Drogaria/src/main/java/br/pro/delfino/drogaria/converter/UpperCaseConverter.java create mode 100644 285_ViewAction/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/CaixaDAO.java create mode 100644 285_ViewAction/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/CidadeDAO.java create mode 100644 285_ViewAction/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/ClienteDAO.java create mode 100644 285_ViewAction/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/EstadoDAO.java create mode 100644 285_ViewAction/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/FabricanteDAO.java create mode 100644 285_ViewAction/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/FuncionarioDAO.java create mode 100644 285_ViewAction/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/GenericDAO.java create mode 100644 285_ViewAction/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/HistoricoDAO.java create mode 100644 285_ViewAction/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/MovimentacaoDAO.java create mode 100644 285_ViewAction/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/PessoaDAO.java create mode 100644 285_ViewAction/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/ProdutoDAO.java create mode 100644 285_ViewAction/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/UsuarioDAO.java create mode 100644 285_ViewAction/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/VendaDAO.java create mode 100644 285_ViewAction/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Caixa.java create mode 100644 285_ViewAction/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Cidade.java create mode 100644 285_ViewAction/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Cliente.java create mode 100644 285_ViewAction/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Estado.java create mode 100644 285_ViewAction/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Fabricante.java create mode 100644 285_ViewAction/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Funcionario.java create mode 100644 285_ViewAction/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/GenericDomain.java create mode 100644 285_ViewAction/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Historico.java create mode 100644 285_ViewAction/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/ItemVenda.java create mode 100644 285_ViewAction/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Movimentacao.java create mode 100644 285_ViewAction/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Pessoa.java create mode 100644 285_ViewAction/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Produto.java create mode 100644 285_ViewAction/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Usuario.java create mode 100644 285_ViewAction/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Venda.java create mode 100644 285_ViewAction/Drogaria/src/main/java/br/pro/delfino/drogaria/service/DrogariaService.java create mode 100644 285_ViewAction/Drogaria/src/main/java/br/pro/delfino/drogaria/service/FabricanteService.java create mode 100644 285_ViewAction/Drogaria/src/main/java/br/pro/delfino/drogaria/service/ProdutoService.java create mode 100644 285_ViewAction/Drogaria/src/main/java/br/pro/delfino/drogaria/util/DrogariaResourceConfig.java create mode 100644 285_ViewAction/Drogaria/src/main/java/br/pro/delfino/drogaria/util/HibernateContexto.java create mode 100644 285_ViewAction/Drogaria/src/main/java/br/pro/delfino/drogaria/util/HibernateUtil.java create mode 100644 285_ViewAction/Drogaria/src/main/resources/hibernate.cfg.xml create mode 100644 285_ViewAction/Drogaria/src/main/webapp/WEB-INF/springsecurity.taglib.xml create mode 100644 285_ViewAction/Drogaria/src/main/webapp/WEB-INF/web.xml create mode 100644 285_ViewAction/Drogaria/src/main/webapp/pages/autenticacao.xhtml create mode 100644 285_ViewAction/Drogaria/src/main/webapp/pages/cidades.xhtml create mode 100644 285_ViewAction/Drogaria/src/main/webapp/pages/clientes.xhtml create mode 100644 285_ViewAction/Drogaria/src/main/webapp/pages/estados.xhtml create mode 100644 285_ViewAction/Drogaria/src/main/webapp/pages/fabricantes.xhtml create mode 100644 285_ViewAction/Drogaria/src/main/webapp/pages/historico.xhtml create mode 100644 285_ViewAction/Drogaria/src/main/webapp/pages/pessoas.xhtml create mode 100644 285_ViewAction/Drogaria/src/main/webapp/pages/principal.xhtml create mode 100644 285_ViewAction/Drogaria/src/main/webapp/pages/produtos.xhtml create mode 100644 285_ViewAction/Drogaria/src/main/webapp/pages/produtosListagem.xhtml create mode 100644 285_ViewAction/Drogaria/src/main/webapp/pages/testeJSF.xhtml create mode 100644 285_ViewAction/Drogaria/src/main/webapp/pages/testePrimeFaces.xhtml create mode 100644 285_ViewAction/Drogaria/src/main/webapp/pages/usuarios.xhtml create mode 100644 285_ViewAction/Drogaria/src/main/webapp/pages/vendas.xhtml create mode 100644 285_ViewAction/Drogaria/src/main/webapp/reports/estados.jasper create mode 100644 285_ViewAction/Drogaria/src/main/webapp/reports/estados.jrxml create mode 100644 285_ViewAction/Drogaria/src/main/webapp/reports/produtos.jasper create mode 100644 285_ViewAction/Drogaria/src/main/webapp/reports/produtos.jrxml create mode 100644 285_ViewAction/Drogaria/src/main/webapp/resources/css/estilos.css create mode 100644 285_ViewAction/Drogaria/src/main/webapp/resources/images/banner.jpg create mode 100644 285_ViewAction/Drogaria/src/main/webapp/resources/js/scripts.js create mode 100644 285_ViewAction/Drogaria/src/main/webapp/templates/modelo.xhtml create mode 100644 285_ViewAction/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/CaixaDAOTest.java create mode 100644 285_ViewAction/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/CidadeDAOTest.java create mode 100644 285_ViewAction/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/ClienteDAOTest.java create mode 100644 285_ViewAction/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/EstadoDAOTest.java create mode 100644 285_ViewAction/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/FabricanteDAOTest.java create mode 100644 285_ViewAction/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/FuncionarioDAOTest.java create mode 100644 285_ViewAction/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/ProdutoDAOTest.java create mode 100644 285_ViewAction/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/UsuarioDAOTest.java create mode 100644 285_ViewAction/Drogaria/src/test/java/br/pro/delfino/drogaria/util/HibernateUtilTest.java create mode 100644 286_ViewParam/Drogaria/.tern-project create mode 100644 286_ViewParam/Drogaria/pom.xml create mode 100644 286_ViewParam/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/AutenticacaoBean.java create mode 100644 286_ViewParam/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/CidadeBean.java create mode 100644 286_ViewParam/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/ClienteBean.java create mode 100644 286_ViewParam/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/EstadoBean.java create mode 100644 286_ViewParam/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/FabricanteBean.java create mode 100644 286_ViewParam/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/HistoricoBean.java create mode 100644 286_ViewParam/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/ImagemBean.java create mode 100644 286_ViewParam/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/PessoaBean.java create mode 100644 286_ViewParam/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/ProdutoBean.java create mode 100644 286_ViewParam/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/ProdutoBean2.java create mode 100644 286_ViewParam/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/UsuarioBean.java create mode 100644 286_ViewParam/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/VendaBean.java create mode 100644 286_ViewParam/Drogaria/src/main/java/br/pro/delfino/drogaria/converter/UpperCaseConverter.java create mode 100644 286_ViewParam/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/CaixaDAO.java create mode 100644 286_ViewParam/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/CidadeDAO.java create mode 100644 286_ViewParam/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/ClienteDAO.java create mode 100644 286_ViewParam/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/EstadoDAO.java create mode 100644 286_ViewParam/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/FabricanteDAO.java create mode 100644 286_ViewParam/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/FuncionarioDAO.java create mode 100644 286_ViewParam/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/GenericDAO.java create mode 100644 286_ViewParam/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/HistoricoDAO.java create mode 100644 286_ViewParam/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/MovimentacaoDAO.java create mode 100644 286_ViewParam/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/PessoaDAO.java create mode 100644 286_ViewParam/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/ProdutoDAO.java create mode 100644 286_ViewParam/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/UsuarioDAO.java create mode 100644 286_ViewParam/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/VendaDAO.java create mode 100644 286_ViewParam/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Caixa.java create mode 100644 286_ViewParam/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Cidade.java create mode 100644 286_ViewParam/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Cliente.java create mode 100644 286_ViewParam/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Estado.java create mode 100644 286_ViewParam/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Fabricante.java create mode 100644 286_ViewParam/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Funcionario.java create mode 100644 286_ViewParam/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/GenericDomain.java create mode 100644 286_ViewParam/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Historico.java create mode 100644 286_ViewParam/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/ItemVenda.java create mode 100644 286_ViewParam/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Movimentacao.java create mode 100644 286_ViewParam/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Pessoa.java create mode 100644 286_ViewParam/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Produto.java create mode 100644 286_ViewParam/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Usuario.java create mode 100644 286_ViewParam/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Venda.java create mode 100644 286_ViewParam/Drogaria/src/main/java/br/pro/delfino/drogaria/service/DrogariaService.java create mode 100644 286_ViewParam/Drogaria/src/main/java/br/pro/delfino/drogaria/service/FabricanteService.java create mode 100644 286_ViewParam/Drogaria/src/main/java/br/pro/delfino/drogaria/service/ProdutoService.java create mode 100644 286_ViewParam/Drogaria/src/main/java/br/pro/delfino/drogaria/util/DrogariaResourceConfig.java create mode 100644 286_ViewParam/Drogaria/src/main/java/br/pro/delfino/drogaria/util/HibernateContexto.java create mode 100644 286_ViewParam/Drogaria/src/main/java/br/pro/delfino/drogaria/util/HibernateUtil.java create mode 100644 286_ViewParam/Drogaria/src/main/resources/hibernate.cfg.xml create mode 100644 286_ViewParam/Drogaria/src/main/webapp/WEB-INF/springsecurity.taglib.xml create mode 100644 286_ViewParam/Drogaria/src/main/webapp/WEB-INF/web.xml create mode 100644 286_ViewParam/Drogaria/src/main/webapp/pages/autenticacao.xhtml create mode 100644 286_ViewParam/Drogaria/src/main/webapp/pages/cidades.xhtml create mode 100644 286_ViewParam/Drogaria/src/main/webapp/pages/clientes.xhtml create mode 100644 286_ViewParam/Drogaria/src/main/webapp/pages/estados.xhtml create mode 100644 286_ViewParam/Drogaria/src/main/webapp/pages/fabricantes.xhtml create mode 100644 286_ViewParam/Drogaria/src/main/webapp/pages/historico.xhtml create mode 100644 286_ViewParam/Drogaria/src/main/webapp/pages/pessoas.xhtml create mode 100644 286_ViewParam/Drogaria/src/main/webapp/pages/principal.xhtml create mode 100644 286_ViewParam/Drogaria/src/main/webapp/pages/produtos.xhtml create mode 100644 286_ViewParam/Drogaria/src/main/webapp/pages/produtosEdicao.xhtml create mode 100644 286_ViewParam/Drogaria/src/main/webapp/pages/produtosListagem.xhtml create mode 100644 286_ViewParam/Drogaria/src/main/webapp/pages/testeJSF.xhtml create mode 100644 286_ViewParam/Drogaria/src/main/webapp/pages/testePrimeFaces.xhtml create mode 100644 286_ViewParam/Drogaria/src/main/webapp/pages/usuarios.xhtml create mode 100644 286_ViewParam/Drogaria/src/main/webapp/pages/vendas.xhtml create mode 100644 286_ViewParam/Drogaria/src/main/webapp/reports/estados.jasper create mode 100644 286_ViewParam/Drogaria/src/main/webapp/reports/estados.jrxml create mode 100644 286_ViewParam/Drogaria/src/main/webapp/reports/produtos.jasper create mode 100644 286_ViewParam/Drogaria/src/main/webapp/reports/produtos.jrxml create mode 100644 286_ViewParam/Drogaria/src/main/webapp/resources/css/estilos.css create mode 100644 286_ViewParam/Drogaria/src/main/webapp/resources/images/banner.jpg create mode 100644 286_ViewParam/Drogaria/src/main/webapp/resources/js/scripts.js create mode 100644 286_ViewParam/Drogaria/src/main/webapp/templates/modelo.xhtml create mode 100644 286_ViewParam/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/CaixaDAOTest.java create mode 100644 286_ViewParam/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/CidadeDAOTest.java create mode 100644 286_ViewParam/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/ClienteDAOTest.java create mode 100644 286_ViewParam/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/EstadoDAOTest.java create mode 100644 286_ViewParam/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/FabricanteDAOTest.java create mode 100644 286_ViewParam/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/FuncionarioDAOTest.java create mode 100644 286_ViewParam/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/ProdutoDAOTest.java create mode 100644 286_ViewParam/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/UsuarioDAOTest.java create mode 100644 286_ViewParam/Drogaria/src/test/java/br/pro/delfino/drogaria/util/HibernateUtilTest.java create mode 100644 287_Schedule_Ajustes/Drogaria/.tern-project create mode 100644 287_Schedule_Ajustes/Drogaria/pom.xml create mode 100644 287_Schedule_Ajustes/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/AutenticacaoBean.java create mode 100644 287_Schedule_Ajustes/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/CidadeBean.java create mode 100644 287_Schedule_Ajustes/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/ClienteBean.java create mode 100644 287_Schedule_Ajustes/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/EstadoBean.java create mode 100644 287_Schedule_Ajustes/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/FabricanteBean.java create mode 100644 287_Schedule_Ajustes/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/HistoricoBean.java create mode 100644 287_Schedule_Ajustes/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/ImagemBean.java create mode 100644 287_Schedule_Ajustes/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/PessoaBean.java create mode 100644 287_Schedule_Ajustes/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/ProdutoBean.java create mode 100644 287_Schedule_Ajustes/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/ProdutoBean2.java create mode 100644 287_Schedule_Ajustes/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/UsuarioBean.java create mode 100644 287_Schedule_Ajustes/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/VendaBean.java create mode 100644 287_Schedule_Ajustes/Drogaria/src/main/java/br/pro/delfino/drogaria/converter/UpperCaseConverter.java create mode 100644 287_Schedule_Ajustes/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/CaixaDAO.java create mode 100644 287_Schedule_Ajustes/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/CidadeDAO.java create mode 100644 287_Schedule_Ajustes/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/ClienteDAO.java create mode 100644 287_Schedule_Ajustes/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/EstadoDAO.java create mode 100644 287_Schedule_Ajustes/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/FabricanteDAO.java create mode 100644 287_Schedule_Ajustes/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/FuncionarioDAO.java create mode 100644 287_Schedule_Ajustes/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/GenericDAO.java create mode 100644 287_Schedule_Ajustes/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/HistoricoDAO.java create mode 100644 287_Schedule_Ajustes/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/MovimentacaoDAO.java create mode 100644 287_Schedule_Ajustes/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/PessoaDAO.java create mode 100644 287_Schedule_Ajustes/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/ProdutoDAO.java create mode 100644 287_Schedule_Ajustes/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/UsuarioDAO.java create mode 100644 287_Schedule_Ajustes/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/VendaDAO.java create mode 100644 287_Schedule_Ajustes/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Caixa.java create mode 100644 287_Schedule_Ajustes/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Cidade.java create mode 100644 287_Schedule_Ajustes/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Cliente.java create mode 100644 287_Schedule_Ajustes/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Estado.java create mode 100644 287_Schedule_Ajustes/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Fabricante.java create mode 100644 287_Schedule_Ajustes/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Funcionario.java create mode 100644 287_Schedule_Ajustes/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/GenericDomain.java create mode 100644 287_Schedule_Ajustes/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Historico.java create mode 100644 287_Schedule_Ajustes/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/ItemVenda.java create mode 100644 287_Schedule_Ajustes/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Movimentacao.java create mode 100644 287_Schedule_Ajustes/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Pessoa.java create mode 100644 287_Schedule_Ajustes/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Produto.java create mode 100644 287_Schedule_Ajustes/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Usuario.java create mode 100644 287_Schedule_Ajustes/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Venda.java create mode 100644 287_Schedule_Ajustes/Drogaria/src/main/java/br/pro/delfino/drogaria/service/DrogariaService.java create mode 100644 287_Schedule_Ajustes/Drogaria/src/main/java/br/pro/delfino/drogaria/service/FabricanteService.java create mode 100644 287_Schedule_Ajustes/Drogaria/src/main/java/br/pro/delfino/drogaria/service/ProdutoService.java create mode 100644 287_Schedule_Ajustes/Drogaria/src/main/java/br/pro/delfino/drogaria/util/DrogariaResourceConfig.java create mode 100644 287_Schedule_Ajustes/Drogaria/src/main/java/br/pro/delfino/drogaria/util/HibernateContexto.java create mode 100644 287_Schedule_Ajustes/Drogaria/src/main/java/br/pro/delfino/drogaria/util/HibernateUtil.java create mode 100644 287_Schedule_Ajustes/Drogaria/src/main/resources/hibernate.cfg.xml create mode 100644 287_Schedule_Ajustes/Drogaria/src/main/webapp/WEB-INF/springsecurity.taglib.xml create mode 100644 287_Schedule_Ajustes/Drogaria/src/main/webapp/WEB-INF/web.xml create mode 100644 287_Schedule_Ajustes/Drogaria/src/main/webapp/pages/autenticacao.xhtml create mode 100644 287_Schedule_Ajustes/Drogaria/src/main/webapp/pages/cidades.xhtml create mode 100644 287_Schedule_Ajustes/Drogaria/src/main/webapp/pages/clientes.xhtml create mode 100644 287_Schedule_Ajustes/Drogaria/src/main/webapp/pages/estados.xhtml create mode 100644 287_Schedule_Ajustes/Drogaria/src/main/webapp/pages/fabricantes.xhtml create mode 100644 287_Schedule_Ajustes/Drogaria/src/main/webapp/pages/historico.xhtml create mode 100644 287_Schedule_Ajustes/Drogaria/src/main/webapp/pages/pessoas.xhtml create mode 100644 287_Schedule_Ajustes/Drogaria/src/main/webapp/pages/principal.xhtml create mode 100644 287_Schedule_Ajustes/Drogaria/src/main/webapp/pages/produtos.xhtml create mode 100644 287_Schedule_Ajustes/Drogaria/src/main/webapp/pages/produtosEdicao.xhtml create mode 100644 287_Schedule_Ajustes/Drogaria/src/main/webapp/pages/produtosListagem.xhtml create mode 100644 287_Schedule_Ajustes/Drogaria/src/main/webapp/pages/testeJSF.xhtml create mode 100644 287_Schedule_Ajustes/Drogaria/src/main/webapp/pages/testePrimeFaces.xhtml create mode 100644 287_Schedule_Ajustes/Drogaria/src/main/webapp/pages/usuarios.xhtml create mode 100644 287_Schedule_Ajustes/Drogaria/src/main/webapp/pages/vendas.xhtml create mode 100644 287_Schedule_Ajustes/Drogaria/src/main/webapp/reports/estados.jasper create mode 100644 287_Schedule_Ajustes/Drogaria/src/main/webapp/reports/estados.jrxml create mode 100644 287_Schedule_Ajustes/Drogaria/src/main/webapp/reports/produtos.jasper create mode 100644 287_Schedule_Ajustes/Drogaria/src/main/webapp/reports/produtos.jrxml create mode 100644 287_Schedule_Ajustes/Drogaria/src/main/webapp/resources/css/estilos.css create mode 100644 287_Schedule_Ajustes/Drogaria/src/main/webapp/resources/images/banner.jpg create mode 100644 287_Schedule_Ajustes/Drogaria/src/main/webapp/resources/js/scripts.js create mode 100644 287_Schedule_Ajustes/Drogaria/src/main/webapp/templates/modelo.xhtml create mode 100644 287_Schedule_Ajustes/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/CaixaDAOTest.java create mode 100644 287_Schedule_Ajustes/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/CidadeDAOTest.java create mode 100644 287_Schedule_Ajustes/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/ClienteDAOTest.java create mode 100644 287_Schedule_Ajustes/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/EstadoDAOTest.java create mode 100644 287_Schedule_Ajustes/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/FabricanteDAOTest.java create mode 100644 287_Schedule_Ajustes/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/FuncionarioDAOTest.java create mode 100644 287_Schedule_Ajustes/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/ProdutoDAOTest.java create mode 100644 287_Schedule_Ajustes/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/UsuarioDAOTest.java create mode 100644 287_Schedule_Ajustes/Drogaria/src/test/java/br/pro/delfino/drogaria/util/HibernateUtilTest.java create mode 100644 288_Schedule_Tela/Drogaria/.tern-project create mode 100644 288_Schedule_Tela/Drogaria/pom.xml create mode 100644 288_Schedule_Tela/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/AutenticacaoBean.java create mode 100644 288_Schedule_Tela/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/CaixaBean.java create mode 100644 288_Schedule_Tela/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/CidadeBean.java create mode 100644 288_Schedule_Tela/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/ClienteBean.java create mode 100644 288_Schedule_Tela/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/EstadoBean.java create mode 100644 288_Schedule_Tela/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/FabricanteBean.java create mode 100644 288_Schedule_Tela/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/HistoricoBean.java create mode 100644 288_Schedule_Tela/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/ImagemBean.java create mode 100644 288_Schedule_Tela/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/PessoaBean.java create mode 100644 288_Schedule_Tela/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/ProdutoBean.java create mode 100644 288_Schedule_Tela/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/ProdutoBean2.java create mode 100644 288_Schedule_Tela/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/UsuarioBean.java create mode 100644 288_Schedule_Tela/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/VendaBean.java create mode 100644 288_Schedule_Tela/Drogaria/src/main/java/br/pro/delfino/drogaria/converter/UpperCaseConverter.java create mode 100644 288_Schedule_Tela/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/CaixaDAO.java create mode 100644 288_Schedule_Tela/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/CidadeDAO.java create mode 100644 288_Schedule_Tela/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/ClienteDAO.java create mode 100644 288_Schedule_Tela/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/EstadoDAO.java create mode 100644 288_Schedule_Tela/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/FabricanteDAO.java create mode 100644 288_Schedule_Tela/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/FuncionarioDAO.java create mode 100644 288_Schedule_Tela/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/GenericDAO.java create mode 100644 288_Schedule_Tela/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/HistoricoDAO.java create mode 100644 288_Schedule_Tela/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/MovimentacaoDAO.java create mode 100644 288_Schedule_Tela/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/PessoaDAO.java create mode 100644 288_Schedule_Tela/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/ProdutoDAO.java create mode 100644 288_Schedule_Tela/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/UsuarioDAO.java create mode 100644 288_Schedule_Tela/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/VendaDAO.java create mode 100644 288_Schedule_Tela/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Caixa.java create mode 100644 288_Schedule_Tela/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Cidade.java create mode 100644 288_Schedule_Tela/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Cliente.java create mode 100644 288_Schedule_Tela/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Estado.java create mode 100644 288_Schedule_Tela/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Fabricante.java create mode 100644 288_Schedule_Tela/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Funcionario.java create mode 100644 288_Schedule_Tela/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/GenericDomain.java create mode 100644 288_Schedule_Tela/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Historico.java create mode 100644 288_Schedule_Tela/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/ItemVenda.java create mode 100644 288_Schedule_Tela/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Movimentacao.java create mode 100644 288_Schedule_Tela/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Pessoa.java create mode 100644 288_Schedule_Tela/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Produto.java create mode 100644 288_Schedule_Tela/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Usuario.java create mode 100644 288_Schedule_Tela/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Venda.java create mode 100644 288_Schedule_Tela/Drogaria/src/main/java/br/pro/delfino/drogaria/service/DrogariaService.java create mode 100644 288_Schedule_Tela/Drogaria/src/main/java/br/pro/delfino/drogaria/service/FabricanteService.java create mode 100644 288_Schedule_Tela/Drogaria/src/main/java/br/pro/delfino/drogaria/service/ProdutoService.java create mode 100644 288_Schedule_Tela/Drogaria/src/main/java/br/pro/delfino/drogaria/util/DrogariaResourceConfig.java create mode 100644 288_Schedule_Tela/Drogaria/src/main/java/br/pro/delfino/drogaria/util/HibernateContexto.java create mode 100644 288_Schedule_Tela/Drogaria/src/main/java/br/pro/delfino/drogaria/util/HibernateUtil.java create mode 100644 288_Schedule_Tela/Drogaria/src/main/resources/hibernate.cfg.xml create mode 100644 288_Schedule_Tela/Drogaria/src/main/webapp/WEB-INF/springsecurity.taglib.xml create mode 100644 288_Schedule_Tela/Drogaria/src/main/webapp/WEB-INF/web.xml create mode 100644 288_Schedule_Tela/Drogaria/src/main/webapp/pages/autenticacao.xhtml create mode 100644 288_Schedule_Tela/Drogaria/src/main/webapp/pages/caixa.xhtml create mode 100644 288_Schedule_Tela/Drogaria/src/main/webapp/pages/cidades.xhtml create mode 100644 288_Schedule_Tela/Drogaria/src/main/webapp/pages/clientes.xhtml create mode 100644 288_Schedule_Tela/Drogaria/src/main/webapp/pages/estados.xhtml create mode 100644 288_Schedule_Tela/Drogaria/src/main/webapp/pages/fabricantes.xhtml create mode 100644 288_Schedule_Tela/Drogaria/src/main/webapp/pages/historico.xhtml create mode 100644 288_Schedule_Tela/Drogaria/src/main/webapp/pages/pessoas.xhtml create mode 100644 288_Schedule_Tela/Drogaria/src/main/webapp/pages/principal.xhtml create mode 100644 288_Schedule_Tela/Drogaria/src/main/webapp/pages/produtos.xhtml create mode 100644 288_Schedule_Tela/Drogaria/src/main/webapp/pages/produtosEdicao.xhtml create mode 100644 288_Schedule_Tela/Drogaria/src/main/webapp/pages/produtosListagem.xhtml create mode 100644 288_Schedule_Tela/Drogaria/src/main/webapp/pages/testeJSF.xhtml create mode 100644 288_Schedule_Tela/Drogaria/src/main/webapp/pages/testePrimeFaces.xhtml create mode 100644 288_Schedule_Tela/Drogaria/src/main/webapp/pages/usuarios.xhtml create mode 100644 288_Schedule_Tela/Drogaria/src/main/webapp/pages/vendas.xhtml create mode 100644 288_Schedule_Tela/Drogaria/src/main/webapp/reports/estados.jasper create mode 100644 288_Schedule_Tela/Drogaria/src/main/webapp/reports/estados.jrxml create mode 100644 288_Schedule_Tela/Drogaria/src/main/webapp/reports/produtos.jasper create mode 100644 288_Schedule_Tela/Drogaria/src/main/webapp/reports/produtos.jrxml create mode 100644 288_Schedule_Tela/Drogaria/src/main/webapp/resources/css/estilos.css create mode 100644 288_Schedule_Tela/Drogaria/src/main/webapp/resources/images/banner.jpg create mode 100644 288_Schedule_Tela/Drogaria/src/main/webapp/resources/js/scripts.js create mode 100644 288_Schedule_Tela/Drogaria/src/main/webapp/templates/modelo.xhtml create mode 100644 288_Schedule_Tela/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/CaixaDAOTest.java create mode 100644 288_Schedule_Tela/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/CidadeDAOTest.java create mode 100644 288_Schedule_Tela/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/ClienteDAOTest.java create mode 100644 288_Schedule_Tela/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/EstadoDAOTest.java create mode 100644 288_Schedule_Tela/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/FabricanteDAOTest.java create mode 100644 288_Schedule_Tela/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/FuncionarioDAOTest.java create mode 100644 288_Schedule_Tela/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/ProdutoDAOTest.java create mode 100644 288_Schedule_Tela/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/UsuarioDAOTest.java create mode 100644 288_Schedule_Tela/Drogaria/src/test/java/br/pro/delfino/drogaria/util/HibernateUtilTest.java create mode 100644 289_Schedule_Novo_Evento/Drogaria/.tern-project create mode 100644 289_Schedule_Novo_Evento/Drogaria/pom.xml create mode 100644 289_Schedule_Novo_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/AutenticacaoBean.java create mode 100644 289_Schedule_Novo_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/CaixaBean.java create mode 100644 289_Schedule_Novo_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/CidadeBean.java create mode 100644 289_Schedule_Novo_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/ClienteBean.java create mode 100644 289_Schedule_Novo_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/EstadoBean.java create mode 100644 289_Schedule_Novo_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/FabricanteBean.java create mode 100644 289_Schedule_Novo_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/HistoricoBean.java create mode 100644 289_Schedule_Novo_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/ImagemBean.java create mode 100644 289_Schedule_Novo_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/PessoaBean.java create mode 100644 289_Schedule_Novo_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/ProdutoBean.java create mode 100644 289_Schedule_Novo_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/ProdutoBean2.java create mode 100644 289_Schedule_Novo_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/UsuarioBean.java create mode 100644 289_Schedule_Novo_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/VendaBean.java create mode 100644 289_Schedule_Novo_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/converter/UpperCaseConverter.java create mode 100644 289_Schedule_Novo_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/CaixaDAO.java create mode 100644 289_Schedule_Novo_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/CidadeDAO.java create mode 100644 289_Schedule_Novo_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/ClienteDAO.java create mode 100644 289_Schedule_Novo_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/EstadoDAO.java create mode 100644 289_Schedule_Novo_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/FabricanteDAO.java create mode 100644 289_Schedule_Novo_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/FuncionarioDAO.java create mode 100644 289_Schedule_Novo_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/GenericDAO.java create mode 100644 289_Schedule_Novo_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/HistoricoDAO.java create mode 100644 289_Schedule_Novo_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/MovimentacaoDAO.java create mode 100644 289_Schedule_Novo_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/PessoaDAO.java create mode 100644 289_Schedule_Novo_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/ProdutoDAO.java create mode 100644 289_Schedule_Novo_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/UsuarioDAO.java create mode 100644 289_Schedule_Novo_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/VendaDAO.java create mode 100644 289_Schedule_Novo_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Caixa.java create mode 100644 289_Schedule_Novo_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Cidade.java create mode 100644 289_Schedule_Novo_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Cliente.java create mode 100644 289_Schedule_Novo_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Estado.java create mode 100644 289_Schedule_Novo_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Fabricante.java create mode 100644 289_Schedule_Novo_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Funcionario.java create mode 100644 289_Schedule_Novo_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/GenericDomain.java create mode 100644 289_Schedule_Novo_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Historico.java create mode 100644 289_Schedule_Novo_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/ItemVenda.java create mode 100644 289_Schedule_Novo_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Movimentacao.java create mode 100644 289_Schedule_Novo_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Pessoa.java create mode 100644 289_Schedule_Novo_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Produto.java create mode 100644 289_Schedule_Novo_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Usuario.java create mode 100644 289_Schedule_Novo_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Venda.java create mode 100644 289_Schedule_Novo_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/service/DrogariaService.java create mode 100644 289_Schedule_Novo_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/service/FabricanteService.java create mode 100644 289_Schedule_Novo_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/service/ProdutoService.java create mode 100644 289_Schedule_Novo_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/util/DrogariaResourceConfig.java create mode 100644 289_Schedule_Novo_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/util/HibernateContexto.java create mode 100644 289_Schedule_Novo_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/util/HibernateUtil.java create mode 100644 289_Schedule_Novo_Evento/Drogaria/src/main/resources/hibernate.cfg.xml create mode 100644 289_Schedule_Novo_Evento/Drogaria/src/main/webapp/WEB-INF/springsecurity.taglib.xml create mode 100644 289_Schedule_Novo_Evento/Drogaria/src/main/webapp/WEB-INF/web.xml create mode 100644 289_Schedule_Novo_Evento/Drogaria/src/main/webapp/pages/autenticacao.xhtml create mode 100644 289_Schedule_Novo_Evento/Drogaria/src/main/webapp/pages/caixa.xhtml create mode 100644 289_Schedule_Novo_Evento/Drogaria/src/main/webapp/pages/cidades.xhtml create mode 100644 289_Schedule_Novo_Evento/Drogaria/src/main/webapp/pages/clientes.xhtml create mode 100644 289_Schedule_Novo_Evento/Drogaria/src/main/webapp/pages/estados.xhtml create mode 100644 289_Schedule_Novo_Evento/Drogaria/src/main/webapp/pages/fabricantes.xhtml create mode 100644 289_Schedule_Novo_Evento/Drogaria/src/main/webapp/pages/historico.xhtml create mode 100644 289_Schedule_Novo_Evento/Drogaria/src/main/webapp/pages/pessoas.xhtml create mode 100644 289_Schedule_Novo_Evento/Drogaria/src/main/webapp/pages/principal.xhtml create mode 100644 289_Schedule_Novo_Evento/Drogaria/src/main/webapp/pages/produtos.xhtml create mode 100644 289_Schedule_Novo_Evento/Drogaria/src/main/webapp/pages/produtosEdicao.xhtml create mode 100644 289_Schedule_Novo_Evento/Drogaria/src/main/webapp/pages/produtosListagem.xhtml create mode 100644 289_Schedule_Novo_Evento/Drogaria/src/main/webapp/pages/testeJSF.xhtml create mode 100644 289_Schedule_Novo_Evento/Drogaria/src/main/webapp/pages/testePrimeFaces.xhtml create mode 100644 289_Schedule_Novo_Evento/Drogaria/src/main/webapp/pages/usuarios.xhtml create mode 100644 289_Schedule_Novo_Evento/Drogaria/src/main/webapp/pages/vendas.xhtml create mode 100644 289_Schedule_Novo_Evento/Drogaria/src/main/webapp/reports/estados.jasper create mode 100644 289_Schedule_Novo_Evento/Drogaria/src/main/webapp/reports/estados.jrxml create mode 100644 289_Schedule_Novo_Evento/Drogaria/src/main/webapp/reports/produtos.jasper create mode 100644 289_Schedule_Novo_Evento/Drogaria/src/main/webapp/reports/produtos.jrxml create mode 100644 289_Schedule_Novo_Evento/Drogaria/src/main/webapp/resources/css/estilos.css create mode 100644 289_Schedule_Novo_Evento/Drogaria/src/main/webapp/resources/images/banner.jpg create mode 100644 289_Schedule_Novo_Evento/Drogaria/src/main/webapp/resources/js/scripts.js create mode 100644 289_Schedule_Novo_Evento/Drogaria/src/main/webapp/templates/modelo.xhtml create mode 100644 289_Schedule_Novo_Evento/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/CaixaDAOTest.java create mode 100644 289_Schedule_Novo_Evento/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/CidadeDAOTest.java create mode 100644 289_Schedule_Novo_Evento/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/ClienteDAOTest.java create mode 100644 289_Schedule_Novo_Evento/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/EstadoDAOTest.java create mode 100644 289_Schedule_Novo_Evento/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/FabricanteDAOTest.java create mode 100644 289_Schedule_Novo_Evento/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/FuncionarioDAOTest.java create mode 100644 289_Schedule_Novo_Evento/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/ProdutoDAOTest.java create mode 100644 289_Schedule_Novo_Evento/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/UsuarioDAOTest.java create mode 100644 289_Schedule_Novo_Evento/Drogaria/src/test/java/br/pro/delfino/drogaria/util/HibernateUtilTest.java create mode 100644 290_Schedule_Salvar_Evento/Drogaria/.tern-project create mode 100644 290_Schedule_Salvar_Evento/Drogaria/pom.xml create mode 100644 290_Schedule_Salvar_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/AutenticacaoBean.java create mode 100644 290_Schedule_Salvar_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/CaixaBean.java create mode 100644 290_Schedule_Salvar_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/CidadeBean.java create mode 100644 290_Schedule_Salvar_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/ClienteBean.java create mode 100644 290_Schedule_Salvar_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/EstadoBean.java create mode 100644 290_Schedule_Salvar_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/FabricanteBean.java create mode 100644 290_Schedule_Salvar_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/HistoricoBean.java create mode 100644 290_Schedule_Salvar_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/ImagemBean.java create mode 100644 290_Schedule_Salvar_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/PessoaBean.java create mode 100644 290_Schedule_Salvar_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/ProdutoBean.java create mode 100644 290_Schedule_Salvar_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/ProdutoBean2.java create mode 100644 290_Schedule_Salvar_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/UsuarioBean.java create mode 100644 290_Schedule_Salvar_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/VendaBean.java create mode 100644 290_Schedule_Salvar_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/converter/UpperCaseConverter.java create mode 100644 290_Schedule_Salvar_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/CaixaDAO.java create mode 100644 290_Schedule_Salvar_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/CidadeDAO.java create mode 100644 290_Schedule_Salvar_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/ClienteDAO.java create mode 100644 290_Schedule_Salvar_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/EstadoDAO.java create mode 100644 290_Schedule_Salvar_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/FabricanteDAO.java create mode 100644 290_Schedule_Salvar_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/FuncionarioDAO.java create mode 100644 290_Schedule_Salvar_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/GenericDAO.java create mode 100644 290_Schedule_Salvar_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/HistoricoDAO.java create mode 100644 290_Schedule_Salvar_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/MovimentacaoDAO.java create mode 100644 290_Schedule_Salvar_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/PessoaDAO.java create mode 100644 290_Schedule_Salvar_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/ProdutoDAO.java create mode 100644 290_Schedule_Salvar_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/UsuarioDAO.java create mode 100644 290_Schedule_Salvar_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/VendaDAO.java create mode 100644 290_Schedule_Salvar_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Caixa.java create mode 100644 290_Schedule_Salvar_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Cidade.java create mode 100644 290_Schedule_Salvar_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Cliente.java create mode 100644 290_Schedule_Salvar_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Estado.java create mode 100644 290_Schedule_Salvar_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Fabricante.java create mode 100644 290_Schedule_Salvar_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Funcionario.java create mode 100644 290_Schedule_Salvar_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/GenericDomain.java create mode 100644 290_Schedule_Salvar_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Historico.java create mode 100644 290_Schedule_Salvar_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/ItemVenda.java create mode 100644 290_Schedule_Salvar_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Movimentacao.java create mode 100644 290_Schedule_Salvar_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Pessoa.java create mode 100644 290_Schedule_Salvar_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Produto.java create mode 100644 290_Schedule_Salvar_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Usuario.java create mode 100644 290_Schedule_Salvar_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Venda.java create mode 100644 290_Schedule_Salvar_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/service/DrogariaService.java create mode 100644 290_Schedule_Salvar_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/service/FabricanteService.java create mode 100644 290_Schedule_Salvar_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/service/ProdutoService.java create mode 100644 290_Schedule_Salvar_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/util/DrogariaResourceConfig.java create mode 100644 290_Schedule_Salvar_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/util/HibernateContexto.java create mode 100644 290_Schedule_Salvar_Evento/Drogaria/src/main/java/br/pro/delfino/drogaria/util/HibernateUtil.java create mode 100644 290_Schedule_Salvar_Evento/Drogaria/src/main/resources/hibernate.cfg.xml create mode 100644 290_Schedule_Salvar_Evento/Drogaria/src/main/webapp/WEB-INF/springsecurity.taglib.xml create mode 100644 290_Schedule_Salvar_Evento/Drogaria/src/main/webapp/WEB-INF/web.xml create mode 100644 290_Schedule_Salvar_Evento/Drogaria/src/main/webapp/pages/autenticacao.xhtml create mode 100644 290_Schedule_Salvar_Evento/Drogaria/src/main/webapp/pages/caixa.xhtml create mode 100644 290_Schedule_Salvar_Evento/Drogaria/src/main/webapp/pages/cidades.xhtml create mode 100644 290_Schedule_Salvar_Evento/Drogaria/src/main/webapp/pages/clientes.xhtml create mode 100644 290_Schedule_Salvar_Evento/Drogaria/src/main/webapp/pages/estados.xhtml create mode 100644 290_Schedule_Salvar_Evento/Drogaria/src/main/webapp/pages/fabricantes.xhtml create mode 100644 290_Schedule_Salvar_Evento/Drogaria/src/main/webapp/pages/historico.xhtml create mode 100644 290_Schedule_Salvar_Evento/Drogaria/src/main/webapp/pages/pessoas.xhtml create mode 100644 290_Schedule_Salvar_Evento/Drogaria/src/main/webapp/pages/principal.xhtml create mode 100644 290_Schedule_Salvar_Evento/Drogaria/src/main/webapp/pages/produtos.xhtml create mode 100644 290_Schedule_Salvar_Evento/Drogaria/src/main/webapp/pages/produtosEdicao.xhtml create mode 100644 290_Schedule_Salvar_Evento/Drogaria/src/main/webapp/pages/produtosListagem.xhtml create mode 100644 290_Schedule_Salvar_Evento/Drogaria/src/main/webapp/pages/testeJSF.xhtml create mode 100644 290_Schedule_Salvar_Evento/Drogaria/src/main/webapp/pages/testePrimeFaces.xhtml create mode 100644 290_Schedule_Salvar_Evento/Drogaria/src/main/webapp/pages/usuarios.xhtml create mode 100644 290_Schedule_Salvar_Evento/Drogaria/src/main/webapp/pages/vendas.xhtml create mode 100644 290_Schedule_Salvar_Evento/Drogaria/src/main/webapp/reports/estados.jasper create mode 100644 290_Schedule_Salvar_Evento/Drogaria/src/main/webapp/reports/estados.jrxml create mode 100644 290_Schedule_Salvar_Evento/Drogaria/src/main/webapp/reports/produtos.jasper create mode 100644 290_Schedule_Salvar_Evento/Drogaria/src/main/webapp/reports/produtos.jrxml create mode 100644 290_Schedule_Salvar_Evento/Drogaria/src/main/webapp/resources/css/estilos.css create mode 100644 290_Schedule_Salvar_Evento/Drogaria/src/main/webapp/resources/images/banner.jpg create mode 100644 290_Schedule_Salvar_Evento/Drogaria/src/main/webapp/resources/js/scripts.js create mode 100644 290_Schedule_Salvar_Evento/Drogaria/src/main/webapp/templates/modelo.xhtml create mode 100644 290_Schedule_Salvar_Evento/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/CaixaDAOTest.java create mode 100644 290_Schedule_Salvar_Evento/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/CidadeDAOTest.java create mode 100644 290_Schedule_Salvar_Evento/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/ClienteDAOTest.java create mode 100644 290_Schedule_Salvar_Evento/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/EstadoDAOTest.java create mode 100644 290_Schedule_Salvar_Evento/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/FabricanteDAOTest.java create mode 100644 290_Schedule_Salvar_Evento/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/FuncionarioDAOTest.java create mode 100644 290_Schedule_Salvar_Evento/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/ProdutoDAOTest.java create mode 100644 290_Schedule_Salvar_Evento/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/UsuarioDAOTest.java create mode 100644 290_Schedule_Salvar_Evento/Drogaria/src/test/java/br/pro/delfino/drogaria/util/HibernateUtilTest.java create mode 100644 291_PhaseListener_Introducao/Drogaria/.tern-project create mode 100644 291_PhaseListener_Introducao/Drogaria/pom.xml create mode 100644 291_PhaseListener_Introducao/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/AutenticacaoBean.java create mode 100644 291_PhaseListener_Introducao/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/CaixaBean.java create mode 100644 291_PhaseListener_Introducao/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/CidadeBean.java create mode 100644 291_PhaseListener_Introducao/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/ClienteBean.java create mode 100644 291_PhaseListener_Introducao/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/EstadoBean.java create mode 100644 291_PhaseListener_Introducao/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/FabricanteBean.java create mode 100644 291_PhaseListener_Introducao/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/HistoricoBean.java create mode 100644 291_PhaseListener_Introducao/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/ImagemBean.java create mode 100644 291_PhaseListener_Introducao/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/PessoaBean.java create mode 100644 291_PhaseListener_Introducao/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/ProdutoBean.java create mode 100644 291_PhaseListener_Introducao/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/ProdutoBean2.java create mode 100644 291_PhaseListener_Introducao/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/UsuarioBean.java create mode 100644 291_PhaseListener_Introducao/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/VendaBean.java create mode 100644 291_PhaseListener_Introducao/Drogaria/src/main/java/br/pro/delfino/drogaria/converter/UpperCaseConverter.java create mode 100644 291_PhaseListener_Introducao/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/CaixaDAO.java create mode 100644 291_PhaseListener_Introducao/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/CidadeDAO.java create mode 100644 291_PhaseListener_Introducao/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/ClienteDAO.java create mode 100644 291_PhaseListener_Introducao/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/EstadoDAO.java create mode 100644 291_PhaseListener_Introducao/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/FabricanteDAO.java create mode 100644 291_PhaseListener_Introducao/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/FuncionarioDAO.java create mode 100644 291_PhaseListener_Introducao/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/GenericDAO.java create mode 100644 291_PhaseListener_Introducao/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/HistoricoDAO.java create mode 100644 291_PhaseListener_Introducao/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/MovimentacaoDAO.java create mode 100644 291_PhaseListener_Introducao/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/PessoaDAO.java create mode 100644 291_PhaseListener_Introducao/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/ProdutoDAO.java create mode 100644 291_PhaseListener_Introducao/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/UsuarioDAO.java create mode 100644 291_PhaseListener_Introducao/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/VendaDAO.java create mode 100644 291_PhaseListener_Introducao/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Caixa.java create mode 100644 291_PhaseListener_Introducao/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Cidade.java create mode 100644 291_PhaseListener_Introducao/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Cliente.java create mode 100644 291_PhaseListener_Introducao/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Estado.java create mode 100644 291_PhaseListener_Introducao/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Fabricante.java create mode 100644 291_PhaseListener_Introducao/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Funcionario.java create mode 100644 291_PhaseListener_Introducao/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/GenericDomain.java create mode 100644 291_PhaseListener_Introducao/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Historico.java create mode 100644 291_PhaseListener_Introducao/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/ItemVenda.java create mode 100644 291_PhaseListener_Introducao/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Movimentacao.java create mode 100644 291_PhaseListener_Introducao/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Pessoa.java create mode 100644 291_PhaseListener_Introducao/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Produto.java create mode 100644 291_PhaseListener_Introducao/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Usuario.java create mode 100644 291_PhaseListener_Introducao/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Venda.java create mode 100644 291_PhaseListener_Introducao/Drogaria/src/main/java/br/pro/delfino/drogaria/service/DrogariaService.java create mode 100644 291_PhaseListener_Introducao/Drogaria/src/main/java/br/pro/delfino/drogaria/service/FabricanteService.java create mode 100644 291_PhaseListener_Introducao/Drogaria/src/main/java/br/pro/delfino/drogaria/service/ProdutoService.java create mode 100644 291_PhaseListener_Introducao/Drogaria/src/main/java/br/pro/delfino/drogaria/util/AutenticacaoListener.java create mode 100644 291_PhaseListener_Introducao/Drogaria/src/main/java/br/pro/delfino/drogaria/util/DrogariaResourceConfig.java create mode 100644 291_PhaseListener_Introducao/Drogaria/src/main/java/br/pro/delfino/drogaria/util/HibernateContexto.java create mode 100644 291_PhaseListener_Introducao/Drogaria/src/main/java/br/pro/delfino/drogaria/util/HibernateUtil.java create mode 100644 291_PhaseListener_Introducao/Drogaria/src/main/resources/hibernate.cfg.xml create mode 100644 291_PhaseListener_Introducao/Drogaria/src/main/webapp/WEB-INF/.faces-config.xml.jsfdia create mode 100644 291_PhaseListener_Introducao/Drogaria/src/main/webapp/WEB-INF/faces-config.xml create mode 100644 291_PhaseListener_Introducao/Drogaria/src/main/webapp/WEB-INF/web.xml create mode 100644 291_PhaseListener_Introducao/Drogaria/src/main/webapp/pages/autenticacao.xhtml create mode 100644 291_PhaseListener_Introducao/Drogaria/src/main/webapp/pages/caixa.xhtml create mode 100644 291_PhaseListener_Introducao/Drogaria/src/main/webapp/pages/cidades.xhtml create mode 100644 291_PhaseListener_Introducao/Drogaria/src/main/webapp/pages/clientes.xhtml create mode 100644 291_PhaseListener_Introducao/Drogaria/src/main/webapp/pages/estados.xhtml create mode 100644 291_PhaseListener_Introducao/Drogaria/src/main/webapp/pages/fabricantes.xhtml create mode 100644 291_PhaseListener_Introducao/Drogaria/src/main/webapp/pages/historico.xhtml create mode 100644 291_PhaseListener_Introducao/Drogaria/src/main/webapp/pages/pessoas.xhtml create mode 100644 291_PhaseListener_Introducao/Drogaria/src/main/webapp/pages/principal.xhtml create mode 100644 291_PhaseListener_Introducao/Drogaria/src/main/webapp/pages/produtos.xhtml create mode 100644 291_PhaseListener_Introducao/Drogaria/src/main/webapp/pages/produtosEdicao.xhtml create mode 100644 291_PhaseListener_Introducao/Drogaria/src/main/webapp/pages/produtosListagem.xhtml create mode 100644 291_PhaseListener_Introducao/Drogaria/src/main/webapp/pages/testeJSF.xhtml create mode 100644 291_PhaseListener_Introducao/Drogaria/src/main/webapp/pages/testePrimeFaces.xhtml create mode 100644 291_PhaseListener_Introducao/Drogaria/src/main/webapp/pages/usuarios.xhtml create mode 100644 291_PhaseListener_Introducao/Drogaria/src/main/webapp/pages/vendas.xhtml create mode 100644 291_PhaseListener_Introducao/Drogaria/src/main/webapp/reports/estados.jasper create mode 100644 291_PhaseListener_Introducao/Drogaria/src/main/webapp/reports/estados.jrxml create mode 100644 291_PhaseListener_Introducao/Drogaria/src/main/webapp/reports/produtos.jasper create mode 100644 291_PhaseListener_Introducao/Drogaria/src/main/webapp/reports/produtos.jrxml create mode 100644 291_PhaseListener_Introducao/Drogaria/src/main/webapp/resources/css/estilos.css create mode 100644 291_PhaseListener_Introducao/Drogaria/src/main/webapp/resources/images/banner.jpg create mode 100644 291_PhaseListener_Introducao/Drogaria/src/main/webapp/resources/js/scripts.js create mode 100644 291_PhaseListener_Introducao/Drogaria/src/main/webapp/templates/modelo.xhtml create mode 100644 291_PhaseListener_Introducao/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/CaixaDAOTest.java create mode 100644 291_PhaseListener_Introducao/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/CidadeDAOTest.java create mode 100644 291_PhaseListener_Introducao/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/ClienteDAOTest.java create mode 100644 291_PhaseListener_Introducao/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/EstadoDAOTest.java create mode 100644 291_PhaseListener_Introducao/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/FabricanteDAOTest.java create mode 100644 291_PhaseListener_Introducao/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/FuncionarioDAOTest.java create mode 100644 291_PhaseListener_Introducao/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/ProdutoDAOTest.java create mode 100644 291_PhaseListener_Introducao/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/UsuarioDAOTest.java create mode 100644 291_PhaseListener_Introducao/Drogaria/src/test/java/br/pro/delfino/drogaria/util/HibernateUtilTest.java create mode 100644 292_PhaseListener_Controle_Acesso/Drogaria/.tern-project create mode 100644 292_PhaseListener_Controle_Acesso/Drogaria/pom.xml create mode 100644 292_PhaseListener_Controle_Acesso/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/AutenticacaoBean.java create mode 100644 292_PhaseListener_Controle_Acesso/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/CaixaBean.java create mode 100644 292_PhaseListener_Controle_Acesso/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/CidadeBean.java create mode 100644 292_PhaseListener_Controle_Acesso/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/ClienteBean.java create mode 100644 292_PhaseListener_Controle_Acesso/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/EstadoBean.java create mode 100644 292_PhaseListener_Controle_Acesso/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/FabricanteBean.java create mode 100644 292_PhaseListener_Controle_Acesso/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/HistoricoBean.java create mode 100644 292_PhaseListener_Controle_Acesso/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/ImagemBean.java create mode 100644 292_PhaseListener_Controle_Acesso/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/PessoaBean.java create mode 100644 292_PhaseListener_Controle_Acesso/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/ProdutoBean.java create mode 100644 292_PhaseListener_Controle_Acesso/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/ProdutoBean2.java create mode 100644 292_PhaseListener_Controle_Acesso/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/UsuarioBean.java create mode 100644 292_PhaseListener_Controle_Acesso/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/VendaBean.java create mode 100644 292_PhaseListener_Controle_Acesso/Drogaria/src/main/java/br/pro/delfino/drogaria/converter/UpperCaseConverter.java create mode 100644 292_PhaseListener_Controle_Acesso/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/CaixaDAO.java create mode 100644 292_PhaseListener_Controle_Acesso/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/CidadeDAO.java create mode 100644 292_PhaseListener_Controle_Acesso/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/ClienteDAO.java create mode 100644 292_PhaseListener_Controle_Acesso/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/EstadoDAO.java create mode 100644 292_PhaseListener_Controle_Acesso/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/FabricanteDAO.java create mode 100644 292_PhaseListener_Controle_Acesso/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/FuncionarioDAO.java create mode 100644 292_PhaseListener_Controle_Acesso/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/GenericDAO.java create mode 100644 292_PhaseListener_Controle_Acesso/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/HistoricoDAO.java create mode 100644 292_PhaseListener_Controle_Acesso/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/MovimentacaoDAO.java create mode 100644 292_PhaseListener_Controle_Acesso/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/PessoaDAO.java create mode 100644 292_PhaseListener_Controle_Acesso/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/ProdutoDAO.java create mode 100644 292_PhaseListener_Controle_Acesso/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/UsuarioDAO.java create mode 100644 292_PhaseListener_Controle_Acesso/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/VendaDAO.java create mode 100644 292_PhaseListener_Controle_Acesso/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Caixa.java create mode 100644 292_PhaseListener_Controle_Acesso/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Cidade.java create mode 100644 292_PhaseListener_Controle_Acesso/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Cliente.java create mode 100644 292_PhaseListener_Controle_Acesso/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Estado.java create mode 100644 292_PhaseListener_Controle_Acesso/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Fabricante.java create mode 100644 292_PhaseListener_Controle_Acesso/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Funcionario.java create mode 100644 292_PhaseListener_Controle_Acesso/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/GenericDomain.java create mode 100644 292_PhaseListener_Controle_Acesso/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Historico.java create mode 100644 292_PhaseListener_Controle_Acesso/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/ItemVenda.java create mode 100644 292_PhaseListener_Controle_Acesso/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Movimentacao.java create mode 100644 292_PhaseListener_Controle_Acesso/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Pessoa.java create mode 100644 292_PhaseListener_Controle_Acesso/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Produto.java create mode 100644 292_PhaseListener_Controle_Acesso/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Usuario.java create mode 100644 292_PhaseListener_Controle_Acesso/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Venda.java create mode 100644 292_PhaseListener_Controle_Acesso/Drogaria/src/main/java/br/pro/delfino/drogaria/service/DrogariaService.java create mode 100644 292_PhaseListener_Controle_Acesso/Drogaria/src/main/java/br/pro/delfino/drogaria/service/FabricanteService.java create mode 100644 292_PhaseListener_Controle_Acesso/Drogaria/src/main/java/br/pro/delfino/drogaria/service/ProdutoService.java create mode 100644 292_PhaseListener_Controle_Acesso/Drogaria/src/main/java/br/pro/delfino/drogaria/util/AutenticacaoListener.java create mode 100644 292_PhaseListener_Controle_Acesso/Drogaria/src/main/java/br/pro/delfino/drogaria/util/DrogariaResourceConfig.java create mode 100644 292_PhaseListener_Controle_Acesso/Drogaria/src/main/java/br/pro/delfino/drogaria/util/HibernateContexto.java create mode 100644 292_PhaseListener_Controle_Acesso/Drogaria/src/main/java/br/pro/delfino/drogaria/util/HibernateUtil.java create mode 100644 292_PhaseListener_Controle_Acesso/Drogaria/src/main/resources/hibernate.cfg.xml create mode 100644 292_PhaseListener_Controle_Acesso/Drogaria/src/main/webapp/WEB-INF/.faces-config.xml.jsfdia create mode 100644 292_PhaseListener_Controle_Acesso/Drogaria/src/main/webapp/WEB-INF/faces-config.xml create mode 100644 292_PhaseListener_Controle_Acesso/Drogaria/src/main/webapp/WEB-INF/web.xml create mode 100644 292_PhaseListener_Controle_Acesso/Drogaria/src/main/webapp/pages/autenticacao.xhtml create mode 100644 292_PhaseListener_Controle_Acesso/Drogaria/src/main/webapp/pages/caixa.xhtml create mode 100644 292_PhaseListener_Controle_Acesso/Drogaria/src/main/webapp/pages/cidades.xhtml create mode 100644 292_PhaseListener_Controle_Acesso/Drogaria/src/main/webapp/pages/clientes.xhtml create mode 100644 292_PhaseListener_Controle_Acesso/Drogaria/src/main/webapp/pages/estados.xhtml create mode 100644 292_PhaseListener_Controle_Acesso/Drogaria/src/main/webapp/pages/fabricantes.xhtml create mode 100644 292_PhaseListener_Controle_Acesso/Drogaria/src/main/webapp/pages/historico.xhtml create mode 100644 292_PhaseListener_Controle_Acesso/Drogaria/src/main/webapp/pages/pessoas.xhtml create mode 100644 292_PhaseListener_Controle_Acesso/Drogaria/src/main/webapp/pages/principal.xhtml create mode 100644 292_PhaseListener_Controle_Acesso/Drogaria/src/main/webapp/pages/produtos.xhtml create mode 100644 292_PhaseListener_Controle_Acesso/Drogaria/src/main/webapp/pages/produtosEdicao.xhtml create mode 100644 292_PhaseListener_Controle_Acesso/Drogaria/src/main/webapp/pages/produtosListagem.xhtml create mode 100644 292_PhaseListener_Controle_Acesso/Drogaria/src/main/webapp/pages/testeJSF.xhtml create mode 100644 292_PhaseListener_Controle_Acesso/Drogaria/src/main/webapp/pages/testePrimeFaces.xhtml create mode 100644 292_PhaseListener_Controle_Acesso/Drogaria/src/main/webapp/pages/usuarios.xhtml create mode 100644 292_PhaseListener_Controle_Acesso/Drogaria/src/main/webapp/pages/vendas.xhtml create mode 100644 292_PhaseListener_Controle_Acesso/Drogaria/src/main/webapp/reports/estados.jasper create mode 100644 292_PhaseListener_Controle_Acesso/Drogaria/src/main/webapp/reports/estados.jrxml create mode 100644 292_PhaseListener_Controle_Acesso/Drogaria/src/main/webapp/reports/produtos.jasper create mode 100644 292_PhaseListener_Controle_Acesso/Drogaria/src/main/webapp/reports/produtos.jrxml create mode 100644 292_PhaseListener_Controle_Acesso/Drogaria/src/main/webapp/resources/css/estilos.css create mode 100644 292_PhaseListener_Controle_Acesso/Drogaria/src/main/webapp/resources/images/banner.jpg create mode 100644 292_PhaseListener_Controle_Acesso/Drogaria/src/main/webapp/resources/js/scripts.js create mode 100644 292_PhaseListener_Controle_Acesso/Drogaria/src/main/webapp/templates/modelo.xhtml create mode 100644 292_PhaseListener_Controle_Acesso/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/CaixaDAOTest.java create mode 100644 292_PhaseListener_Controle_Acesso/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/CidadeDAOTest.java create mode 100644 292_PhaseListener_Controle_Acesso/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/ClienteDAOTest.java create mode 100644 292_PhaseListener_Controle_Acesso/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/EstadoDAOTest.java create mode 100644 292_PhaseListener_Controle_Acesso/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/FabricanteDAOTest.java create mode 100644 292_PhaseListener_Controle_Acesso/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/FuncionarioDAOTest.java create mode 100644 292_PhaseListener_Controle_Acesso/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/ProdutoDAOTest.java create mode 100644 292_PhaseListener_Controle_Acesso/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/UsuarioDAOTest.java create mode 100644 292_PhaseListener_Controle_Acesso/Drogaria/src/test/java/br/pro/delfino/drogaria/util/HibernateUtilTest.java create mode 100644 293_Permissoes_Ocultamento_Componentes/Drogaria/.tern-project create mode 100644 293_Permissoes_Ocultamento_Componentes/Drogaria/pom.xml create mode 100644 293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/AutenticacaoBean.java create mode 100644 293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/CaixaBean.java create mode 100644 293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/CidadeBean.java create mode 100644 293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/ClienteBean.java create mode 100644 293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/EstadoBean.java create mode 100644 293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/FabricanteBean.java create mode 100644 293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/HistoricoBean.java create mode 100644 293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/ImagemBean.java create mode 100644 293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/PessoaBean.java create mode 100644 293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/ProdutoBean.java create mode 100644 293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/ProdutoBean2.java create mode 100644 293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/UsuarioBean.java create mode 100644 293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/java/br/pro/delfino/drogaria/bean/VendaBean.java create mode 100644 293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/java/br/pro/delfino/drogaria/converter/UpperCaseConverter.java create mode 100644 293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/CaixaDAO.java create mode 100644 293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/CidadeDAO.java create mode 100644 293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/ClienteDAO.java create mode 100644 293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/EstadoDAO.java create mode 100644 293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/FabricanteDAO.java create mode 100644 293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/FuncionarioDAO.java create mode 100644 293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/GenericDAO.java create mode 100644 293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/HistoricoDAO.java create mode 100644 293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/MovimentacaoDAO.java create mode 100644 293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/PessoaDAO.java create mode 100644 293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/ProdutoDAO.java create mode 100644 293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/UsuarioDAO.java create mode 100644 293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/java/br/pro/delfino/drogaria/dao/VendaDAO.java create mode 100644 293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Caixa.java create mode 100644 293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Cidade.java create mode 100644 293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Cliente.java create mode 100644 293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Estado.java create mode 100644 293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Fabricante.java create mode 100644 293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Funcionario.java create mode 100644 293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/GenericDomain.java create mode 100644 293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Historico.java create mode 100644 293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/ItemVenda.java create mode 100644 293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Movimentacao.java create mode 100644 293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Pessoa.java create mode 100644 293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Produto.java create mode 100644 293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Usuario.java create mode 100644 293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/java/br/pro/delfino/drogaria/domain/Venda.java create mode 100644 293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/java/br/pro/delfino/drogaria/service/DrogariaService.java create mode 100644 293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/java/br/pro/delfino/drogaria/service/FabricanteService.java create mode 100644 293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/java/br/pro/delfino/drogaria/service/ProdutoService.java create mode 100644 293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/java/br/pro/delfino/drogaria/util/AutenticacaoListener.java create mode 100644 293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/java/br/pro/delfino/drogaria/util/DrogariaResourceConfig.java create mode 100644 293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/java/br/pro/delfino/drogaria/util/HibernateContexto.java create mode 100644 293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/java/br/pro/delfino/drogaria/util/HibernateUtil.java create mode 100644 293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/resources/hibernate.cfg.xml create mode 100644 293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/webapp/WEB-INF/.faces-config.xml.jsfdia create mode 100644 293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/webapp/WEB-INF/faces-config.xml create mode 100644 293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/webapp/WEB-INF/web.xml create mode 100644 293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/webapp/pages/autenticacao.xhtml create mode 100644 293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/webapp/pages/caixa.xhtml create mode 100644 293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/webapp/pages/cidades.xhtml create mode 100644 293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/webapp/pages/clientes.xhtml create mode 100644 293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/webapp/pages/estados.xhtml create mode 100644 293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/webapp/pages/fabricantes.xhtml create mode 100644 293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/webapp/pages/historico.xhtml create mode 100644 293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/webapp/pages/pessoas.xhtml create mode 100644 293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/webapp/pages/principal.xhtml create mode 100644 293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/webapp/pages/produtos.xhtml create mode 100644 293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/webapp/pages/produtosEdicao.xhtml create mode 100644 293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/webapp/pages/produtosListagem.xhtml create mode 100644 293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/webapp/pages/testeJSF.xhtml create mode 100644 293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/webapp/pages/testePrimeFaces.xhtml create mode 100644 293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/webapp/pages/usuarios.xhtml create mode 100644 293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/webapp/pages/vendas.xhtml create mode 100644 293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/webapp/reports/estados.jasper create mode 100644 293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/webapp/reports/estados.jrxml create mode 100644 293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/webapp/reports/produtos.jasper create mode 100644 293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/webapp/reports/produtos.jrxml create mode 100644 293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/webapp/resources/css/estilos.css create mode 100644 293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/webapp/resources/images/banner.jpg create mode 100644 293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/webapp/resources/js/scripts.js create mode 100644 293_Permissoes_Ocultamento_Componentes/Drogaria/src/main/webapp/templates/modelo.xhtml create mode 100644 293_Permissoes_Ocultamento_Componentes/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/CaixaDAOTest.java create mode 100644 293_Permissoes_Ocultamento_Componentes/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/CidadeDAOTest.java create mode 100644 293_Permissoes_Ocultamento_Componentes/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/ClienteDAOTest.java create mode 100644 293_Permissoes_Ocultamento_Componentes/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/EstadoDAOTest.java create mode 100644 293_Permissoes_Ocultamento_Componentes/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/FabricanteDAOTest.java create mode 100644 293_Permissoes_Ocultamento_Componentes/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/FuncionarioDAOTest.java create mode 100644 293_Permissoes_Ocultamento_Componentes/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/ProdutoDAOTest.java create mode 100644 293_Permissoes_Ocultamento_Componentes/Drogaria/src/test/java/br/pro/delfino/drogaria/dao/UsuarioDAOTest.java create mode 100644 293_Permissoes_Ocultamento_Componentes/Drogaria/src/test/java/br/pro/delfino/drogaria/util/HibernateUtilTest.java 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 0000000000000000000000000000000000000000..96a12780f8f042286bf380ac44bdf3c342d0288c GIT binary patch literal 23708 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 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..ad55e5f457022a1692f455e10e1670fe2007138b GIT binary patch literal 25898 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 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..f58cc2169a48a11d3e007d415076ac87fd2f4395 GIT binary patch literal 227607 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%0DZ|UUm}(Bly;hP9;I!kxu6nB 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 + + \ 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 0000000000000000000000000000000000000000..96a12780f8f042286bf380ac44bdf3c342d0288c GIT binary patch literal 23708 zcmds9eRNw#mA}t%Y}r;E$4=5VNn6t|@@dCOnkG#eD%)}+SC(8!P8z4wmE~t!i7cs4 zPq7oAP)a|5b}1|^l#iCumM*1T=obMBENpkT(51`5IdJxr!&3Gv-=%PtJxk%7?e6c+ z%=?m+CuLdqgPi!iH*aR{+_`h--aGf+r$>KDOG^f=&+BGSX}ae~x>VE+LoXH#v(%&K zXR>*{XIQ*Uh?gY(z5ZVsXi1dXGKINfHm47!&9q6Yqes%m(!JS2Z&Ek1>0I_idNQZ) ziP8$yES8?rljZ5@?1D+1vT-h*pXp7SMm9f#hRak#V<49IOF~ zCChVjY2$cIpGR|joVx8-2ealZzuT{;r*tEfpR#(jXG^K9nbTFD2({+)X;UKFPi+Mw ztLH&*jEkzGfRLS;1=cNG5IFXu0z@_A20#OSgBw^=Z7~Z)3tId9te%e*cm-3(i+Yq= zC)1guGX}^oWzq#v(7v}c-Rt3tUdb1|O!oW~)@`|@)?n7qGmMr=+kHEl7^yc=&f6Wr z`SKj#1SK3v2VVY0`<*0`cz2irQ$V+*n`Dc>DK8j7O|`?t zXa~}{GHABVceY|#;|_PKRTV7i!BsIWv%MN?xx=k$sJ_}mjoKWpMrtcbYBML-g{)de zZZAL_rlt~e2N>(3T8w4!M{`N;a50m^)MDy$#a!BC7`?S%NRgFNJ+RhGP2Tv5C|%yY zsR(m%ZNeP%>}fHxg(A_rn$=ktjT6LNvY5-7pE8g6k(tfrrVKsLoU{tl(p@c0+U$!H zNa||6XQ2pA=wj90!$PSiWEkn=OpJvazkT*S&!s=QgtQ1Xma->wW-_ArM!wn%M_Lj8 zZZN3FZ&pl*9uFZH2>CaMfEd0*xD1jcE9p#1hq)vE@#1JvYBceN2V&!9n;*I^SPVri zivw)E-%f+(nk=yT=b=`^Sd%3fD6s7;&Q8ypz2Xh?zBGvX-JMpr--(6{Z9O)ctQbvC zO~F7ismo>0Me?RTqZ43BQDUeOsQhy-_OUg~3{z4(A zr}IpoY$<}tWivdhEud<)G&(gMo}1LCrt~TGayjHAEaanlY8D%PW>&op@@wd-DIQb3 zYs;3#@>ud5%y#uk*p8kxUC!2|eB)lxHh!(vllx+Mni)=i0sLFbo`}kZm{J?}QFb$f z0q1qNUa2*z!;oN*3XVlg7}7_}MTQC)*Ibmmr*MVsYouq4baB=M>ey92X6vZcl<_Ts z;Q35}*;qm5S3_RLl?Jqjj2*(JUQEZJc<&`-z$i$AT~TD2RaWHa^+i~)Y(ha$v|tYAF9dN@`7}^8bd%~n$^@Fl|32=~U)+m_=XR%A!vKgmUss`qo4$E#z5T-OvYt(x-Sq8-^ zAr2x=!<<1SIwkbE!ZDp0nOpQjdmZhkV6jlj@+pZmK8|xG6E;U?mP-*@I?pG}2x$xW zI}U4uPh%Mt*~~eRyDQy?7+5dIve@n>`L7X9L9U~Z)eFq;u?u*FvoIviDY|>eB}et+ zYG*Xg6{dt>!LDxMXT>6$YOm`ES}V?I!&ZeP7t)IXH%IAA*DKZ+34K~en~bG6R=A0# z2Cd_aIqD*{8oZj3$w+iXX_ak%3X5uB7S;xv@wHBhqBW@LH9i^W%EN5b3XAl(W2XY- z_F5+cWth5pVSo-7uP7qaAxNP-ECy3FXe^h(W|j>gj+$feiNMrThlF#iBLXSAo=Aw@ z6+Ed6*q##>ov$IpQmdzO0i^9B?KXx5TdQj*a`i+a91W!+2f`DnIR1|+_*?yqBLTl+ zZdJgy#^C;u)*(zcX+{b=mS_CMdzSq6gL60c!e}0*Ae3^+OlD{Lvu0_S+U5#&X`%Rz zyWjG_i*3V+HU!{FWhA7DZ;miPy-%N^@f*e);r^6MY}-riro40~^gmLB87GbC7t z(<)YmjyG<3^sckp-v83O8`xY9T@E4(Xe*p{%2arv+j!e|KJxol0B_uaR}^-&LZDvZ z$g&6u-7z8CDor_F6{!9eW#3_+lK<{z(aWx&!osM|HVw?kg#otNFcc(Ht+NLD*{#vL zsujY9i9E|(xk&FXDcUvFH7_4Fo!*NTViT)K1!F?nnmd6n8?c74VP;#b@V=VKQ=%S>I z04ltZJeQ5&jG_+zYTcZH8QHCsXku<>U?cWrFK<6zIpm@d$Q_lue7*^cc&oc5QCr) z=L^r9$`e2@`U-ZE&UEYe2Zrc`)|WQBz0kGXcEbr9JG&2y4PkV9&@xMPUuPpny$qV^$s~k;&8lb^Q18U)e-*@nV!XZL$#XHOF;~9h{g)rJxDw4ogRoK(+&5xjA!>$YgP7HWTTI%Q z30a$3Tw8_9Wj9%I@KikxRjIJBJZ#Ns!a~uxo3s=fHkWox4WY&u({s6h{dT_c-8wwl zaF~`(!d_>Kt(JKu0vBix2IMG0&GukA6Edi5sHUfmmC2aMUEjaq<=daX`C_5jfubfB zshTsX-c8Bpp`omvb2(a9`AK=iuqF$IqkLqJ>c{k4Keg*@h={mRDm#ax$MRX2XzVLE znnDmvH~VRs^9EJo45KV84pv!*8=OMY`3xK|Y^ghDEw3T0=;h8Z!Z7C7yWq=lUi0Wm zt<>Sn4tuaxx}_DqM&%(^!=7cM9ul}M!s`sX0mn`%s$r+QstwEwLZco#eZNIQ7E7WR zq|rJXmVJ(?7%xg|>^3R5gUoDkQ40rQuS?vbGh9o2qU6e0IVS>Ca3Qri>&Xq-87$ra zPgREF#Ki1`Zy41pRIy@wp%!1yyBzH6dmd1mo1s_Avs=FQ;>$mI^_r)~_kGFu^7j3^ zETO?Wo!eXT%$5(Qlw|@PaVb}kWwN%4EOS?QWSP6dBg<5Ug`q9W$~KPngCdTQK;k^) zYdDJY%3@}g^2>7~S`v#NJPoVHSvU!c-OP;AX$o>6~37eE%&Fka8p+0a-cH+@Wv&Yxc?q#vEB`(9Sxo-U?U_0UG+@ zX9v%F-0j6BP}X@UYkLX#LGYYWjngYNx9V1n)9<~s?ZobDfB(+=GdKV47d@e${NFkK z4hAnS@2bM-vbGARyDL1L?ym4~x~i}!U~~Gr)HGc;FQ+qtZxd8|I|$xd=JL&Wl1lDY z5P4~db-W8ev3LrFj|Jh=?&&Cg6}xuUdWD}J94GkTM{pSJr!(duDieCCP&P99NEY$M z{7ecwf^9O*nibomX4F@xU~G<#>1+-{)ZsrSLKh&-a4@bONS4>g3BVubYz{~FY^=3q z-72Sw?+MZ5>&v=vytV`DDsIL*9x7E3rytoLG7Jp`(O$|J*&@QyrjxV)RPDEzY)w>? z7KlCE69Fhe$GUo2je(!=TQQ*lrR7)}Nk&L80+0>0D0M)!1&np4U;<^3?5pj`WQALW zi-ct&xm+X2LCH!!a!|5T!`>e}7u)zBMN9f|fN^u3(oaBe_Q6t|gQj%3F7Piip|E@o ze^vERp1zz%G*gLDpz506FzZLVlyCga4hzvCsOl)! z^Oz_ih7fwT;;tmLwI+_9cQrk=_SbNZGpRih9*rkb69e&BDtvWHE`_B020x~ji7C*WRYtdiBx@?9`@ z=3}WEcFQ~ixUs4`qtb)$3Wt8N@IVU5if))P3!`*>t_Qf}Wv-K_dxz>i61p059gBGu zz~xp}5qeMGPStlXlnPBG<70_|uzPI(`G_>Tq|hB6pcX>Ofkb396%Bh3>h9<<-ON8YdC;G=?gI)kLDV%&l z4{BX%jsww9GC2{AhX%tcokhZ4<%mq7(xU}V#q)qzqd<%$q7(Z=OrbTu#f)-cPQZ(Tu>m67B`bPg2PnUVq1LLDb>Y&(o;y!(~SkFOo@e9-Tmp( zEM)l7<`=*E?CR^jwS*dm;LrefN^U}ivpEYJ6_NR=h2k477rJxFd;oXOIctFG(pr#+ zK4=tX*y8JEig$X2@j^96IYdD zCuT~AwnY|3wv8;r21Dkd6Pfu~a_iREk>S~BYNl`e;8o^G>gbL`N5XxrhqjI9#;+Lb zi_c$n8BeBO(@mJ%0)Lsa=Q^rys%6cJzSb$-n;k4%loEiC3F88A`F(W%PrtC^LCc2G zFo$}>DGnHCB8^qf-7xUX!cje+)cJUW>}M0^9q-6qkvWMtJBxWFjDZNEAx!$N!>$(6 zu7km+nRFx>jzTkbPpLKTk)~S@AL}=_wp6|r2hrA{M0}*OM{7I*vDn>zsIo$U>JB9b z*q~Vg-ex;fY>0td-*o$mdqY2c`OfLzzx3LFMP^_x%CmQVc9CE(t~yGDVliPSunJ- zd8Fy2bJY!P_o=E?(9S(0K1fSys@c>LK22C%)J#s_{Wkv!r*csyBzMx=xxUhIgx!5+UZ0mXg-G>PcIx`R4ZIiI zpvA%yv9XbUsK>eziaj)~f>M(-NchO}ff!IM`SsxWuig6ACzHSX^qa1{;1oW5%xG6ldN~>9o{wX{Cr^-B+;fX|w9Ic4t$eH{BJMtEuZuK2`zwwLbzLm{icj3c*KYI0PLWZyvckh-vYV`M2irV7+`%@h z0^@oY{x-(M^N%sQ2`8k44(t8dCyi{OdrI#PO9yoY?RkFZVt4u;BLt_2%y#iLFq@am zx%`j6tzsBR!wtX{gClS#T9?4C_;6A}^T2EDht~)b6VqMH9rd4-BXdaCkOOdJdy8MN z@Bby~1@XdY`owXZp$hr1VHAuMEN1_lms5Xf#neUG{vYsd6+=Kq+G(WKaE}r)LG;QT z8P^9+b$?IAz&2s_&i7VgLDa`lduoTv98KtSR7adYM$Qi7YyOE+aPSG%7zdFD(wSKi z%M$rF_SaR63UX;r|9dO$*i%m`Plt;`)k(9ClX~1?Yqby+-%|a7UppZ*46nObZHolX z8-->apLZv1C<@Cz**8y&^){rZ!pAH=m2w!@q}{bS-qOlWH!%Sub6@OdH@e(CSMYai z+03F(nU?wqKg3j#l#o*-Z{cS}Z2ts))(^dKO6M$QK)#rc7<*LQ>5L|B%#pj4F(9p&~vhZ|rkcHoZyR)qTljIA(gphf)jNRcl@33D)@a z!#KwlvkQ7|L0JDP#rE;b_I>?V#tZuj+X6rP_Ivj~$>)8A!l-3laPJ4LZ(*eBQ7W1- zc2ZvgRZe5qo;Pr5FCw`36mc&7?8DDKQ0P9WPx4G)WWnWmuwWeJEM&dc@>2Jfj7%^8 zdPDELK8XNkFPujrl2+=?vhFMOBC8eOQuG`t&cGuf%<Td0JX=>E8mjgBXG+MHL!vT#N2k@bBD=nc7LAsDG zYJnNDDM(AHiJ!IvsaZbt1}Pw)`hwIVpSB07RX$xDq&E3|yJ})X8?q9QHB(t5 zkr38vp&F!lS^#(80~d`hQlpE&bA0j$GC}ria7CKct7bZZIoG-Q#LW16kpR6}qs19q z0cb-~xgr628}Rc;&j7t0uhb5Z;ypm`fTB>ZY`GqwTU>7~fgYgSoVT_l574`ux3&lm z(Cyfcp3!aD9iYDeVbz!(p&g(*vHPqVkF*ZZ`v-WJ)+0eTeEts-Ru^w*fq;viyxJ_Gjg zNY(&7p^+zq7NDoF4IOD3pwFU(SB?gBcK_q&EwG~NBULs9AcPk(Ix#NMInZAbo;$ST^POzR9QR2BNhWC#_`Ub;m13bJ^AXiwe;HAZp4H>qemCS|& zqv(*qkUubF&n84`s0mLEtcS!MT1ecXgTx&gNZg@+#2wm4+@X8K9hyhnp?Aa`T1VWW zbHp7QN8F)r#2wm3+@Wj49hyemp=ZP$T1MQVW5gXAM%)Fc*~^!Ge7T%2{d^hZ%Mf4o^JSPXQNG0ZGRl_(Us8NIz?ZA}GR~K4_;M{@uH(z( zopdqXg>f~~ zXFuS4-^r|8-_=V8Ya_{sYHl-f~B zsM6-o00}8VCLt^s!3Mes1h^IG-$wiCc1+<8@XC8JjrV~E?#5I;Ksov_rt=Yy=VRz` zKfMDybO(I`;@}ZX?Ng}vG^Y0%`Z)ONF?t$LpQmT&s~G9)e-4Cv-a|-HT13d_LC9}_ zkpB!qehY;B4hZ>O5b{M3@_QiU4?xJ5K*)awA%6ry{tSftISBa*2>B}z@;4yle}a&& zf{?!hA^#hMd<_;;1I!mbU%c?=K*%~cQtN^PZ58d+&Z4lkhW2ac&{f*Gl+wJ5Y?$i2VFb~mV+7%$=l^|pi hg#0IPJ$^+AaqFtyIsB}LpS#ueRkDjbqdbbn{{pKkwcP*! literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..ad55e5f457022a1692f455e10e1670fe2007138b GIT binary patch literal 25898 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 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..f58cc2169a48a11d3e007d415076ac87fd2f4395 GIT binary patch literal 227607 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%0DZ|UUm}(Bly;hP9;I!kxu6nB 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 + + \ 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 0000000000000000000000000000000000000000..96a12780f8f042286bf380ac44bdf3c342d0288c GIT binary patch literal 23708 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 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..ad55e5f457022a1692f455e10e1670fe2007138b GIT binary patch literal 25898 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 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..f58cc2169a48a11d3e007d415076ac87fd2f4395 GIT binary patch literal 227607 zcmZ6yWmH>#&^3xX6o*pWT3m{|ySux)ySr=gV#VEE0>$0k9g4e#-29*Cz3*M?en?Kv zhh$A=<~Mt0_CC={3X-Tu1V|7N5UA2pVk!_2(0$;~bqG-4_nuGEZSV!sRYg(+qIR0_ z415D)DJ(Ax0nw0%{9z0WzDIPD(sqS_KpXh)1v%naZUzAXDv=fwR`W8r$c6R7k=&@i zf72~9kkS1;n*6v`TYB8Yl*muzhpgP7{UKW?K)@)6**dYbBE zt`kECS|AvAaEjm$gaeQYvF~L@aWkTfUQaL;8fK_c_CWKay$ND$Qy?<2lnd8r<1j%y zdb|Nv_lQ)cPr=X4QH2T4*b9OW!9@D>YzkyR3pw%uW}}HCZh4&9Qfipm?PY;gvQP?C z@dpoiRf4Ug#uk8)6^NePA)}vUohF7_=0o&htx)RfNa%V}jeOjzgZC+jZS_iXXOW!S zh}n4m{+O)q*h1EoXZTIq&zs+1DGyScuLfsrAG7i06Fb|Nv9WTWDe~f6YP9lWC;mr_ zFC#19HPoBkmxD}q0QBNY!OO72)i`kj;=6OwiKqWqj-ii}9gXR6HaMI;cHgPPuoBXs zSP7}_4AeJ!BO_Z#(@Fl%tQsGAGoI&R7SHKUqpK=+NSN$E@xvTH^+6_!0Or~2&3k<_8r^|GLUEN0R5&o=k4*tZmtO-+cghOC+gwg(}Ok>XWr!tF` z9o>Idwd$CU9{neds13X=8`8_33a&#J1wx9YZn{R7gzw-+_=;z0inexuZcijUbb7Tv zMQ-=RrGjf2g}lAFY9w$2Y{hYhsmz9K#Br|-(0*m8D`FP1AxF6zGE2)!;h5+rEe*Mg zg1t-)_Odr>aBZQYBYxI&kF(jGHeJrw&$Jg;#0Oih=KnFh%w{(%>D9R=GheRdhTIp< z?Buzw@57{uXpIWE9tC-{LJ^w?_}2Ks2!#_gnL}l!9?q>|es3wEp&r%uoTB~;_{Qp( zp7c7EBY8E_q9U4XyVnLn0v$||{pa++w3i$5NoaljAaOHcburw4Ku$CMWgA%BJ+2h|UnNe`8T zOhZqw7yF{`{H)%Vk{ArWHQuX>cm#luCYf5-ll5on;_0iqIqC=w%#gI`8i%MR=@4BD z(2~@HnfkkrUt-DMB?7rv0p9m~6eI4CzcVX;g0M~j_>BwK@f2N~pDv@l(-XmWjZU;= z|2L6a$bAR*kAzfwk523)s|wRgEO`~n-$rgn^mwjZAZF*$`Ni7u=jJ^R%YsC z8TOt%lY&=4F&P~6QQSJzwO3j)UO*u1F`n*aA3MD-{lO!;Zzj-ZGE`qbY3N8NnSqgv zjv8u?Gd?gKGe; zGM72yn~Pb19^D_IP}~*nnuf7X(zTyPpQ!oD2C6m!ZH$?9{e)}IKK~_$c&nHF=(Hx{ z+AEOmKTq$;ul*#ArKyYeuCGFF^wRk+0nCQPNZ&+rX;m#TwAIP(%4#TvdRP@3=$NTZ znPqRq9@}1WG1@-Q`=24~(wb!8t7!A*#2TpaiO@yQNhRq?hFp?2Rd*?j2waPhDul2{ zAXw~jRkYBrAxff4j77Q9N-4DEVIn=@N{8fDOQc$DMoi=fRq>q(t{LJ_G%mf}EnsXB z4j{Can`w2V3fQ74;ixNvNeXQ~(3MYzc8VF#K#t)0xf60?kjNwhQtM-cY%F-j9IPWn zt|V`~(f!{)U?Xm$UrSLRRULsD&FqV&f_b_#RA~Ocp?5VKzH>3#rYEC&^7+8k=Mo!W z!&AtLU4~-NJj^g{h%VqrhAGaWarr4N+8J)rI=dJ3I+LR$Zi)T3{_)1rT7O8QWEj;h75Y+$0Z7M6p8KK=3@}LW7&-n8+&qu z@2`ejQgO4PVpwyj#Pd&yKG;{6No078Ul%^LIQK?m;^=3E=s(b*-i78HQ`nQ!aq!^D zxgkwsqK|u)cZ=vXWSag;NsPk`nkZL8NF9~13t6z0MVqa5VolYvJlwOi=(+5>u?cX_t}zyu zkOJSHYa;UI11)%`5JxNomMo4lH=dfDi%bnYge}vlhC`$%9@B}SW=`D3-GrcMNtE_j z*7blb!flvCx+Y%fzM-2%fkMTnNj}A zsy>X8rXMk$S-V^oqWIITSxC%wR11zI8wLr~?Jff@>E+%+Lw;umj$zHvtY$+2{5MO3 zKlvgGAlLL$)P9KsVO8#0WRs-2=vVstx4(YcuEngZga0PGC9uxvE67vHZ~~-Je@xftG-)r{C3v&j zD@;KtMMKYz7>1fLu_s%{fs4=t22jR@*;Nd(3UP8>LJ&R>jvj*|U{fX;;&f9Z z*JPa3q$ze!sJ`x?Op1W&=w`UDjV2b|*+Qb>M8cR2lxgFLG}t7j^23#D*ggKu)6@A& z)f!E8G8X!6P*K{}_$L25Aa~BVD0V|4big9iG${2Qv&Pw5Hh+x~t;%1g zmYIh^)0*R}UIwo(l*FWjZlb#faTO82CYL7Uf-Mmr=eqE} zmcgPa^2BAqE?*{3mo>BIFPJDS&1AvN^5*)f2qQ4zWc?DUe-2ZmShE{q%;*okB2B*F zlou8=l^sLk+?ON*Fy_%llW^W2`!rJ(-ZPNdNPz_N;igh~WY!EmHKkc9xmf6{p)ul02+%-lBCGH{axWMFT`tLRL=HoocnvB={5 zF&jk5%xXqJK}M%RS4TUW!ZMMB$VST3Y&OFhjBBqtuV$1=gLAShhN;FqgT$uvJ-D`r zANuZ6oni~Juem+;54m7d^%{S_M+7@+N(csQCsIsGU$3nR{6O~)Lnwh5S7<5BBqZpW zUv9 z#6y9r)nZ8;w+iY5U2>(<*G3;55e+#J4I#|`vWX4+Em3+UENzyba`Ch76v3GLi*A3i zWvIF9Pq1ZDr4Af03%eNy=iFN~071C8-w2`BUrSKGs@`2z=Pm?{X0fuHz8x-pO-;2_ zP{?HGzIq?K{rR2BpOeP?-{8X-)=z359{YL^bUHlUIo~?I`E(FOzI3A59&Jxe^iS!Vo{Yb_-(2jSuP^j_Bqd5p8fGjr z5b?IUJ>5HB?H_DzO>|^@FOAG_<#aq@>}AZ=QJ?E5LH4`YLv8nXbUNERUL4snF3-7a zn~va47%uVf*gfYZ?Dn+U3iUpd4u1m_-U9U0{p{t>wWx zGKLF3ct<)*PC6U>D@#<+w&ytDLoY-NHwmdP1e~V#C6A*Co;9Nv9m`nLAH|%K9>f5S z!Wn}|Oy0%fAG0P|%s>4qsLmG)CU5sz6Y>hY4`ZAzZZBiNI+~02jkn86(weH%#r}+oVk*aiO zYO?2do(Birk($T)?eD{)j*7^8C!~e%^Qj7DRKKOAc~Y~TSQ*YT;=%^9q$8U!6H2KG zW#f6%vu|W&E|_R;O?=q6kEK*D_6EyE5$7T?$%h`COys<6KGNgq)*l=k4@#7qIjlCi z2sXM91)lVHEd!joW^}BxTiU+!cAn~Voo)DXIGV4t$LFg1!k>FQjklszay*II!vAUM zsf-V8tm#qL^_}qWnA%w5bab>_LlaonZfnqNZPoO`r}+}PTiftF`{HvGK)fDY8^NOB z(X`cr%j;X$_KdXHA=WfZ88W3-`BS|TJ4U|vRa3-6%pk!{sDy&?SeC?G3VA#UrwTke zwvg+7q$Twhy{`N+?nSJ)$yX{6x2YvdDS%)xi-z6TB1S)niJH4e#IdSiOoD70d|}dn zBv&%rO}G9D9(Vq$YOvqQ=tvJbmi}7Zv+gKJ$v^`15*{?lf49QTV}Ao0BWBVDq7EoQ&b3=HhIl#5nck4)fN z6=N7C+vZ5DR3HKLpkP+kNuT6xo!yMMPN8>$pi+VPEs(|nCxW}(p*#keBigB zOhF-9dK*nIuA=++152J6)g-c%>riwjMU9~ZRQN{PxfJWz5k@u?d%nDl$`5%;G8m=5 zaKeDiX%^$d%-o3#eOcM6A3MILD_1{X!@u9%DPrRh(a>)i{sy$Q7gW>NwbKLI>D$^V z>#DgdH4Ub>H>>XmfB$u}7S>QURxno9P}jx$;s<$-xJBx!&`CW$#?#4fy=8`>*va|L?55!^S##q#l&Y{0eP~Mfvddy z=OZ-=R{f zbxifxqEtzHw2?I3ZuiT#-nr2Jj(2;iFnb*_Fegr7B>ZQ@GM(P>L2}D6Xn^Acq<8J!So+~=o@7_eK^@+ z!{`A|I0$-12dE%zA@qSUl7H2o=2S=Qk}Ag94cVheeEQLA`Wf7f_XX4@EN5YZy(UUttu7R0dB7 zNl1S_-VxYp|ASbDyOfy0?zrZZ3{u^XM=#YU6e$r>Zb(w@V7sfT7^tK{gcxBSM(bI$LroL z-(ADCye)BGPn=)Z;|x1lZDrL)p4!sd*4ol%j952yPL|f&4p>y;-s0h~;^7_Pu->q* z+_0}5uik5~-rU|D+TI;&9o%2J*R;9UvO2hvQq_I|NEyd%gr2{^dwiJaT`R(Qyw&U4 zF5P^lHtxfljrg&+M~UYzJAS!%7%Iri|8n{{lV`s}vi_L+dAW1Gqi_hmZWAjF@j`C^ z_{(EJ*)KCjlY;PV@6Ub9*H4cDfVTI@p5KC(M-S#-MvnD=OF8N~k~|wT=*~P@wTzz< z$eg*_yI=*pm9y0<@> zx=>w=nr<}CZ@bzsHDL7UG1NSLL$NoJeF8WWlW@G6pisL<3(cu1$eIdt`eXTQO~_Lc z$5stQbH#-U#LdtcDx1t^f;w#eCmFeF{zEq~Fr$1KB_v34G2_EI?Ogpyx?^A;)dstd z2Yo{=mxB6_9_s1iqK{5JQdo?qkBt7id=80bMPRrVeoSa8Fc%S&vQZc_zFd8GhQh0G!i*xpdC#a!ahj`y%0(sxTYDSfh8?h?sq6|Yv zhBg*0DV7p(Qk{oWVNon6L})HekRUUOy+V3C!a~4ux-!^}bspH!spu`DZ(6Q26+w33HW`(5aL5*nK}SJCCspli zvaDIy`*8_5?!!2Y)7n2R1!x(&n=GG?fbY{p0)EGXx2a`{M10;RC&?5;zRyIPfu}dU zqVLZnoBq2(XTd^;Um?XSwpYm=4baue{WX~Yh~VmeN4Z9Tc=@fW)9X<1RYvvft|lBsrgoG`(j(L62!s_}>(0NgXU%EmY8XtAEGFiWB|G|8 zswPUd9|=nvGHLna4}^KI`@J8FWW;3gRC4%ES*D5C7DlL_{G_GyM| zjo57(PLfwGKX`&nRDslMmyl;5ud1Uej`^0vx>F7AHamvZD6k4MOda%C#Yj@gkRDu< zb@+~u90;zp2oe?T0@A{?=G72gtvMvYV+nO|?b+QVYRrs{ zD&Efc^vSiIVp_e3?z~zF@XWyqcWXK&ZosA)p;bUV|7Jdl8^}FInIVqg9m0~m zP^(g|xw=szpW{OD9ZSEzJUFkXsn}=glisWljpUck<*4;J})n~q5wi} zH#^WC#ZhF!m4KhsOz^Y54e;mt*;Z3h17#muSgOXNd2 zXR~fkA-@3O`sIP}mLTz>y4*SHRl-JPq&w(3>I(FA?fnv?M}S}x7}}o;`uQhxXw?H3 zYh5?)^5x74FwDQMWZ&K0!!P;zQtfn~fJL}~BSKJ;Msqjey_7%*I)PpHYZ@&PN-kFyML?^4;n^7bPr`pl!GR{~x zM4&V}FW(~3nWH6md1UZSIWSPvChRT)+C8XR1`FeSNKo)tUk5Zf+C7DGrH<~x-g?`N zUj6gK$driP27euJ-hVsrrS3OxyXQ)|a*)Ej`^@*tZ(W;EP z3)*c&#=NxbwGPuV@UIXGc%2^3ff0Bp>1sna;9o}SKm>~Y-#<6Hprtd zuoRpo9u<$u-o!uF090-$TR2P}+M=Io$qyVHj8H!W4MQhsQVjTLv8L8W-hz}gJ?Ie%s4Pk*t8B?uD#{1IHM zz1!AmDdaK!xi?ySuag`OfvDZEB7u9o&DZD!R51XfZT08N0(n&msCkrc7$u7wKuDIx z8K%6+QFNK;WBgpYgfsFi*dB28uLYT^OO}7V`D(N0`3rJD-rYdA`M0(!ZtvsC_-~Sl z#650T7in}EF0psNySF6d2z(zdq7N(;eslZZ4ekwODCS1E-G;o{ueTVqS`0mOG)W|U zQ`ggRyBK6TVf-DR5Z~z8Y`fE-FRjgTNXXR;x|tL0dcLCF(w=W@VUotO4QY)eq;1RM zI?VkF1aUN7>#Dv31pmBmHg=;ttOg7zf{5pUTWdx1rD!kD#gHWO-wXneGo|5WIP`dd z_5t(bwj=3VJhzY4dya{h4s&fsk*2=1fxppj4zu5f#Ys?~-o5PVJcl2>EM4*gQO-YJ z`?jmbpD(?`;szr8`HSCmO?|ZF{u#5h%m|J=R&Z8(h6?N3`?PtUE;lNEn;A-AB-45K z()iwVm~ns6@B&D@X#N;T)}Id4G22t#Pb1R7tqp`WW1qebt?v8d!GVPy>fQyil61~POkAnwX!ph1i2 zc9RGU!1n^y)qLbVo`Tm9%>uid|UfsyH;P#?~Wpjn8NLK zIQQp@10j$9zr)vsGN#<#*B1pT88u|0xz7BZ{@4*k176>c{jpF0VY?4-{`Tic=}g|X zuNVk;5-7c$buhcm@I&C@F7({e!2m%qdbwk*5iL7&GVDN8fuzgN26Q&?u0Rwc6~CA3 z7QZyLA^|H-NK;1rCGffH6SwK@!&PMlP8H6c$JNoRk+eeLLPRa#ZLQgdPd{LlyNqBu>gQ_b~nLQnpKiR31bYcs}w zWc{||vI zu0a9R{oeGhBE}8XAi-s7HGb-uxg#E^`;ct=(a6{CDgrs-Z9Q zu|%X(%GpBhqqzmE)7l<3nUgP)-9;{8krM<)VYaq}i}J#0axf=epCkdDOm-QMvi4+< z&@NT;4@EF0%nQOGx(vQ(Jw>=6KZmAQOUzGZms8|pU@9Me&E0^m@!U{EuPDRQcrEXHS~;fbE55o$!N?b-qt|y$$HMVjWWa$=SNoHLrpwhR`@^ouP>pZ- zzRytZy(c56+gbgcjNe0_Ct&wU+yC2h%N*nh@fMHYx!u3KzZ%e82-^z$-_f{T4nD48 zCBGO7Y6cv6bqVvwUv6D)_&UnQ%JX^*dJhjW0Z5+4{>)t~o*nc$1T4qfzLRK9&x|!^ zb6qrP4+t7E*Y0EGL7$2ta;mqcGX`+D^_%wdm!1DQrt03FsYYsZ16F&R;uxnr#cYZ&uSj1p~_BnI7 zcP&r&IbGaOqHuA)^itbNb_wtPpnb8AS<5nt{d&abOaFOI0gmwh1>e_vAzAR*Mbvix z7$N_8)=9dMlL75QMXN0z96-i&!*XVheH;a4e;lJe8m4;K0{hmX77wWsx}#A5sde}T z+v=VWVnzKQh-*-R_KI1uPsr~x zZQ3<4tb-HkYeVxa=wskcR!pyv4^1)tIEgWyslmvVSsF4qPasNJ7q z^oX>b1w260)d!MpSdo4L4cCFkiS;i5qZOpIizmeH2_ zw=^mCGEwU^$16lxoU)m+P27M;Awf^=dnU)vB0l@7x}PRFg1u=hM3{bRgXtDciR8(f zKL@ISxTDi6;L`v9ol-D;=*v5t12^)}Nm2EM((G|0A6MJ|1FYt-K+GCZySIVL6-F#+ zc1=lRSuSB%@4(yY0lw_j!?c=9^q=ndqPJo!Ki=g7~rB zRcD{!aNY|0(tM4d`{@kBIq}Jz3N>; zyKTk_PWs?>SBdu1!G>Vm$3}ND34Qj<*rs#L>yCX*d&|RQLxgFhKa2gMW^7qtyV*Ez zEC4vOIp;V-VBKV*0O7O$wfVN_HdOG#VG+qH&ngNARDr*K?vlgsJ!UM*{a64 zPP{g`Jur&(9@xp{eo8$%5Xj^{F1n8N7iePQ?UmiRvOo6q1`9w86E56<|F?G%!Bsd9 z0>@SQ^ZRTI`Tc=T@|k>1lngc67F}o7WdGr!R%jG>%9_-l+a#OXx)Yz)#`{kO0rq}u zE++wn^PRa9vZ5sJbdXAG&_h>)Fr zglUkg7RFf{GR2w{JMl9HsG8b0{mQ*EL1QU-mja*c_fkaTIlkUkEYf zdScq&R6)$Rf;@-54F8*iI3e;?tHYYkt6g4;c0TNarw(WBkqNB6 z5slMpDGmC6fnRM2rkGSV^#^J#w@tCqNlB_-gbs8u)=T)ja~yT{K`>Xk{GT38{`kVSb}uWi?E`K0~2 zvfh|;?4Ox1u85Ig^ZX>w*SPe&<~=?9m)2^l_<5=OG;!SB<27kXCK%9Y=d$y6uwde( zOhT-bKj5(0;uap6`qO@{-BUxMrp>EysgYz^uwx7G<6vQoq9%RH+wtlpkTK`uI=<<% z>C89w8m>)?p9!7pde)vqkp%b|A`LR&I|JBS0PXvw06^s`hwCh?h9eZ8Ljg~dp4%;k z7&un4k%u^@uF&H1rC_1QyY}(MOQDoN2*q zF%}Tazb$)CX^aF4M9Jv!CXL0;H-zUPQ95!S1Da(r0m?^r*sJ*aRdZT`XlExwtPN;|4n zwqpH54@Nmm%Q-#%wu;N!T!|kNr>rb&eR@aG}`wm%=wG%ss+yRz)$C{Y31})nqXZsHG^Mzl`aS;U_up6FB8p zD8nelMQCIu5iK)+%qLaa;H=Hk{Edm)akbxkg&HwUq5{2Pm5$nfX{1x91VL2%N|ifTv1VAz=s>C+R8gH5$*?U^ z)HoyiVYlG4fod0(u3$21$DUhfcK<8etwkW3O`|4$Ir~E^r_Tyg&YG|Y_CCS9rQu=$ z+hwq(SXoC(d@wSy}`c#j2qrQ9HKv-TJ%f?|n%N!RLpGE?LBOC73Se)~bm6s4ccC(EJmZC9E>=+KrdVjPEuecl?{|#^2!aGDx-rIr!X2L?}$i1vA<2Lgkx2d%TYYHRKxCx}D~V=(fgx z3jXG;9r|=fkeFyXy*@TL#TI5a} zHVL}>I?Wy+u~|&XxIDGt3ZlGjtY2^EalRI?|ff=5(aFP)*rgH~uPB@?CYPi)$4oNoK!m zpRI*7rS`ZHtoVwVR_@0^#mcn9`67fq+O&sM6Gm=}s&|oP<99^OvQ8NyPkqV;Wk}-$ z+b@kQ$f_sC)Y)sK*&lbFCnNDrm&~t1Gc4ViYh=y#J@%4|nUKJkgc!#PUpRcZVy0{fQJ>RCM9wm8qUR!(b_4rOY zI_X_pv>mP+w|5(-Pa7Be&1-WO)R^A0h+8KJ;~)v_p~#9W2cPH(mh**EtSKQWu_%+o zW+6W1-1*@-RyEnS&)rL~6{DbhBdY zsnr(7G#^i2aRE%!22&;L^=IjFom4qCQ$rYjY|-)r%H{Hs=#oO_Q{u^Pl;SbgKSbf1xKPW+ytqu&)na0#Ra6^noZv9aY@n$BNMRy{&Z&DR zugYsrK@`GxEMF3KX%9Hey6QG-6%0sO&?(j|VAwtm!Z9@DQvH=e@}Q2JcQ`-}}e6G-aM$HStAZT9Aip+L>+IX<6Y0Tf*CV*vksw z{&Ui$Ip6a7CbcIZO#x5F2Gb5gKxGQ9-ph64Hb>)!sx3W*$2Pp@MJ-nIK=TK;fn| zQy>j30=-5_j7B+TwK@$$l-f5QWob#8aw8nX9r)k)0Y~`6zm$pW?7#l8!I0C1Yn*Cx zmWMjCVByekLI_19*BY?bs4!Z~BeOQwxwIZ2i!?2Q_#uv9OeCgtRY2gVyu6{{PcY7ojH6aa z_-*{Q5DKrf1Xw}6apveTYj{-ve$pa4EJ=g(=%%T<<<+F7^AoPK0}z48$t8BaMgC(1 zT~;2+I77jxN0y=-W}b4E@awQiFfI`u^Rtn1?0G_S!S8>Zsbfjutvg?uUKsE0f($N4 zT;!nQF$6^}wMtsqGDMxsm)CPOBA{$dX^l~E-E>hy07O_Oq^e(84drp@+Wpcv(i-K> z?1oC};dA=btE0tmu|V`msWNBt%&Ub}>^gSb15+EMv+8gVP*Y7~gzqlFaD$0|-ec0< z=!|=bKa!2aSfy*JS8>D`%74zkor_>nz*LkQ=|;9FBs^pNncF%)omPK1oC}SKEK|(& z^t`7TWfVy>T0HF!g`HJ;Ophs6|?T)HeEut)Mf$}=7IEL*lYyGkZyPaR zA91Jab$D!nKtrV2r6$d~oxr$KczAz)<5k`&;W~i7?O5D1o}72!URWYt9MGm8!T2p{ zyT=!Fx<;*bKMnMtvTm;($^rpEpnLG}Fi!v`&#mt3^AzgB;vh;~OD#c08ZX zaj{Y^po&c2-;3QZ(~`)h!%ebS64TL(;L}_AA989)EJd0+G|1OioOOp!d4VrW74EEA zu>B3qVQH<-^-KFl*L%yw@yT3oj_r5BYXN(nM=(}ep0p;dwV6(k+3O}e+jCF19ThzF zZgqLJUG6Ql#BQ_+Oix^1P*|HbB7w3vQ;dZR7HHH7DijJAX(*G$Dhpd-#cOL{ge=3o zMChOlkf(_xQ~wA_*83sMM7luzqG?=)8VjS2!)wLwfM7sn%q#t?{)CnnQ;P5Rof?U4 zLOfV#VKqqAZWV=&V=G%$BS_`I!lFT*z!9N1Yc8T`DJUBY3c)QdJC?n|1AAys!*cVF z93%z`&fh(ISXXQouUV|RlpP5b$B5i9bP0wa3!jmQ=;AS_WND+l^Y;jVmJEXNT*Bs-7G}$rFvO-+W!XJ|3RdOG8bz@9CjB z-ht;=^`jajGN&rlY-7uQaWS_inetF}7|(`%NRpv)2WYcS$dFynGEk_Q$Y4P%6PDH5 z-Tw%1V!x%r_`p* zP>mDKF;1Bh=9{gBlU&43Nuy>hqaLA>WoMdIY?UX)7F(1(Sf0~2LXYbZ{mU6G+dfRa zIU>4M#jGzrxdh2Xm2D&z$iG`HquO9SwRol>X7aO&PeY1oF`Cxg?A~IHFje%YHZ8fV zcz?+5RWcF}LVy(}=V#8F7hlmdCh1g)sAh{$Q?^n#x=a$}q~$qx?Bf$IuTIam#m-OM zjJM!v`H)j-7ie!o!EJURRrm4v=p1ekYg_gyQs}7&O2etUv<8 z9oRi^Rzx)Y=)nc}cKGIzv;hd+0)4%>eI`u|9BKoR*G_R3=EZaTJFhDPtc`1hvzo#5 z2O;dgiN+tn?PG7Y{yjo^?oxJ3Mdz?s-}yVUTqqM zhRiV6@u$(Jz8TRp2;lMy*`2bsxQ|syU?d%*+|f|SbEE|hb7irm<0RjiXZn_9-upl? zWTkh&^l?)kXKwr?O;3I*WZWI@;DKhvt~)NsTeUfO;+ zHqAf_{SFKC_X0uUGh5yC#6%`49sP?x*CrCYJ_$GNCHjv4h*xJA5SCBcjYu=8-)J+` zw(vc_*DK&=wD91&zwgPmz1CRKc+B5_HKp z;+l5{)dl_L{Y&t9Bey(9An3KTf-wizk^E*!B5xw z3!e$gN)9Fzv1iV0fyPeyI>JJd#B{(<`$2$Efu_RybvDVi4mU8rih5a>r}VYEP{8zU z+IowBaFsTXJu0#^Vf5p%C0VX50sOopSfRtLY35q2fQ_lXGItNd6TkPfIThBcT3DjX?AvQ==q^Lmttf< zf)wPXCi$Z^8e6fBAw-gGk3gCyRC=Vr4oa4?-i%LlkoDzyvS2is-u@p3nMX{YKh7Xp`d&5q z--SIw4!d&E{yb=QC@V|^hX|egiuvIXF6%J))=gY~BGJ^{ebQN@X3}bBYMMmzcBzEe z-43S&STe|l1hUf~P@eQ?hum7mgyFCR4+Q_-h(dx^>M)F;Kqa~Re<8EK7{8L{eVP5c zEW9V=F7|EsiSUQg2D=w|NXcF-L@BisZ4yN=X?iu|WM4=>;Z-Opk{ikuULW<3OcFRnAVjWg7gO@z6bMg*8h9V2MXt z6Twp9oED&N*z?`RuP(yWS3BXNkYG6te_5FQkN&-~{kH^%=c!YLcnQxI!nu*!{GB8X z2f>Z6f2I6mS~!LzqSOzbu4@Q*l8QpVZVC~P&j!=O_W?z*`?KD@2%5H%|CwDL)JqU| z$KC1wuCQ_#4#lAA?tEGQ=LE?Oy##T;MTmJKQbn#fMM|mC1)((V*po&b9^VH~KJ9js zF_baUyx-vq509nx+J$M$_qZoX_H}-gj!25nB zi!$oUU%1A22$$F(^xe>d=gnNLYTzGSBQ`>T$KN8$)n^gLD<1>44j(8?!*VRYa~1wR z@?7vELsXC+N><|%AJ~d6o?zX*h+OQ(Ah5hsi{r;B2eHl`)O07KPFEYv)GXxbU%J@Z zmci$A39cV%c2uYz;UJ!_$`qoc9Z?|eZw{>X3c&kPD>}*^GScd{T9?@2ybOhu6 zc{|H?RRsrlQuqkQT^qI_?MRSDXI_E>ALHYhWUXqplznLk`1%fg&27-w&kCqIDFfASGGRoF6UqqC)4 z=tWtrX}-tL3B!IZRSmbriAIUu$Wqg4B=Zt}h~AG9)5)q)Ii~y7A%i61jbDa*ku>M~3DtFj+gW#DUdN*{@W2c65k$4?9Un4 z>Z_aI#K{=_`mRXqY>Ms5H-o`DQXFl8+ zhh~qrld4j;_%CvzX$vl@xt0ow0)aG#liC(b-HPe*_Jp0q{he!X?y=Bx*YdoLIiJqM zp0M1A2+G2Apaz>eUNXU+CXWc3v^0md>vwo&qx0&lC{n{9dJ|ZOI!(2R$xSJwA*>|SO7Q#_%6(c%^$bF^%*l;a z@;icCcSHg^Bo<2?PoB#6c`;V;;@S3V4Jg^~tZs0~&u}l1X|>q5K6rH**-^f_o|8k* zE2N*S^O7{gy*~nC%*|X&z&c9?I%rM>kVSDyHea}aVuf^31y?Z2icJO=@AJRae&zzp z1r{LSqg69C`ZCAwTsN?CBqP;7C+>XH%L5Rs44&0=bYxeZjo- zj@Q+v?Vk0xr$_y&d&KWO!jok|QVEdtyHKSPbT<}Q>*xxrg@yfv z^6ozzeBrttS4>o8iXUi-1tR9c?y_s(jH?o0krRugl`JzMlH&`lZ@1!=NlW>dYDvU! z*;tay+mL?)aO1vu+9r(1&uMM;myy9=e0AfF+Ur{u%I)_d!@BUULMy9}_;+kZKVC3R zUa0k8EoJN|UbRh~wBe0zwFyt4a$_o8&>wN2){etB6akykU#xCNze!rr0q&*;vJ+Gf zI4-1Qh-AxEaWb`1)`}0xdo5WG#$<;o;lw4Dn$gJDr{Z^p$Kx<1KuG; zMT$EActU%CC4R5^{{hTEGryp@XwaOq)t|E0AG0@>YlS_$a71rBp|d@2w7;ygzo5~d z7qk})hV!=i3p(vBPJfFt{Gw*g*xLUhXm2>V-Q?{a@D6uahx3H?7gm45&iRCc%Q3Cp zMb6=l-s7U+bW!heM(1===KwB#-pTQjqvL6ip1G!rUVui@T_>H6uxc~&UN2_5c;cDF>?-l(((O7Dcy+Msk- zlxc^u^eEeivRzS*BPyVu|&=pLIJDCNW!s}{CzRug@*Gg129>DM&Zel; z5*5ORJWyUol-~8qa+jp8Uj^tt2-AEO$F@i!RXA9yg=9h(PvOqrQH&uLKL8=WQ-2L) zp-KX(C5VX$BpV0ztj1lz;G>xNhad%aky-<~ zUar+$hzvn@EZwawUHeit_?<3?!o0NuNZ75Uipvpq)k_Z!md4ir1O zN9$=Ho)HJrz%>MV{b=d7H6y>90285^aklN;vk#SCcyjCH{mVIr%WOM%q?G4hKzHW{ ztaj+uQs2?zyY-7MqWigL_Stsx-ByrRSaHXF)q=)bW`D41O1GTo9q4Y4)No?<)K$M6 z4taEs3t9d4s%f7DEqH(ROm6Fn0Q6u&Np6#2g9Zm|Pk8d!5V-oIH8bmNoA<%W?;N(Q z-SOyQm-wg#i)OyNZNWdb{`mgt**esTg(D;8zp-C`WgoM)?wBJeiTcwu3s^ z4d|*L?8gu5M2+wR_+fr5Zh`i*9@DA$_zvvw_8q#n{?^BLo!&c)agU(gA{mD`P8-iL zKpe})a+nyFlZavkiAYux!3n_{E=*wXFGdKU%VE4`hej978xm+^5~WX|G*PT37?fAQ z9jtLb3R43=?j-YUwTqjgu@EzX0^_e?wrLrE9UG*@TQq+(Kc41d7}z>~urHWnc9`rr zP=nc_6+#6;e4-IQDQG4?xb2+h!g$Wqi4+6N!iHdTVhcB3?+T4A=keqaZC-#*T|p&s-IAN8nKhHe>Y?Q?%cp$R>S*$J$87#Z^v4V8r-|R_aX;l z7;Q*V=u#D$I0CoC!><85jPDIht{)7y4J;o;YNAO#oO=Gd^WZk1Ch((~%duq7_~xN{ zTE+_n`ni}3H2wpDNuWiC4ug9sl8qo3_@(k#p;T~F<#LK=NR=x1AoRSl+&vH z0()4eD^sX1Ik+CDH3wQKk6IHaN&Y0m9VMt^3gU_lbJ>zQt!9o<3>feQPJ4^g-m>AY zv|vs*Ck`s8eKc3jXvzuhgi>>kG#*uIk27}r6zmDD{c&D@h-CIz+1z$=xh&`|@xpml zIK^@YS*Cn^_a zTROhi+WEbH9U4p>MlGJA&)(AGc*3BH@)780&&qxF_e-oQcQ!-&6lkX!mC<;eJ2|w6 zK>Mtp9B730H$l79C|iwk^=MBAl;d}Pu_39$7u%S(V)#Z$lmfSFsx`@kA%U=qrR}3x zy9E6BTGd4;+3;)hQBGon=OXr^!+)DI>li2YuKPnU57tsNH?JpTh-O?9Nu4EoPG|Kg zJQuGg;ti@)4U@rgS+qWr(x=h-bXu29@&yE4s-#PlP)Tc&Sbd1zA;@4CE9jCZJm2$ z=M7Yub-2{n&T~^{LJ4~0yk=4TjkDifJAK5l(g5_tCpEOuqUm!^9STRtm=*fo_MhGh zUHs0*Il71~Yaid9b#SlulAq^f=0@LtVDw*8f7K74ZJXb4%g;WMJ9eNa-7=CJES*!& zf6?24i@xw*HthW2NQ6B7H!<_)P1w0B2_d_Htu3~!theQ-zwP+pAE7fo-9Cw3HoVu^ z?(^EVif5e*EVX&y5HvVkU6CE`*9K1JS3 z^RqgO#C5U@jpsp~(>eI4$>208f-YXCiPdA`beeb_A0sdrEgP?) zlLg$tBadS8DF*idG2f-y_CM3~=;SLQx$mzboz(*3w0S&yQT!B($>xgr&qZ2RhAdpy ziX_J}WW_{MDP6kCK2>d>$ZDem?GBy&Pp)2mox2MI`&o`0WHYLd!@%|}dwaL*?cSxk z*T4?#hPCZ5q;2Z~9a{G6+_Jl0%if(@_UhEKOPAK|dbITJ>)WA+_lUOc^IToF3r;bV zT_l6Y3`pR`=TI?Xtt##hRD7lmDuS8I;(YT1*GgP=Q3OF~c7Jg^3pAzIiEexhBs_hO9i=UO^xkwJYTu3AZ*hIFH z17LAjHj2jj3tnz2DS*mDG1x29=pVQ_95fpDpT---n})fttDxifPQWx4M+A*qnp0JH z=>23B?#~^`2x1=<+#%Z}*2!uf)HxA9r^v;afQeX=gH7+?sbHRnVpORrEYQgW9m4ZV z9JP~uZ2Na~?A*<@eRq$x-F-TA_4V^>)1zbiUhO;fY1gG!yDmLCbneliV{gdm(5`!j zcJ2H++4t^cGj!l56GvK&>ff`2=K@D#2=g3)mKw`nTcCju)1!ovJ%c)nh#zb6LV=dn zXr5^jXiQZP8#95%W0Vj~ghHK0FuMf9ah=0?!Qm34xz4l4t(u(^=#x6O#K!W3i^HuB z9e1(90bYNY(_e7#xZ~6Aikr_tPPdQMo^x95*IZ3i!^_U z9!Q8S`hGqTY))?a?!sD8bVtv-Fft!?9_Q(Si?^uBYr z*P|0&clIhT=Y4vw^y`Pk-&7Pge^6}opxEX?iQ;~#;z6ku+S%f9Zlil?jVm)~l17mQ1_Ug;RA=3wLoW8_vMg*`)-;LKW0#{!ph*)i}N3tTA&|RJb7^M z5llU}b9e8~GH-W}T_we)rvoed_wLi9i{F!qM|dFUC#dq_1OLri#*Q3u<-$eusKV9R zWy+LEcW>W$^ypz$MrQl=ZBtTGDk>h_zklD$$J5Qj{l=~9u$s*5j5h7sM&@Ldq9^w2 z7Jsp6?mHW1j=g+v3A&{SU-Q<2iQRT(u0)70i2N{S<@>R#-|=5ShHV;sq&y6v%{Q** zA{2c8zTSWBS8M0h-?pgXmL+cCfvfM|>zJ1G^~(8Q1h4uebX5cY6(g>nT8z+FKhJ3} zZ&u5Mmdn~h_9zVG{O?>4L4oFfE78l^Sen8_{qC78?H zuR-R=wIW+wLNZPnvSJeABYoyMFLCH}hBY-UgE3PXG;UzVZOjaVpDYx(M1f1t2=M|R zD`=tx0e}lIUx6R?%2w*(0#6|^8EQZSz5-4I&IADmZfgq^?7kM)q~kc;Z6k%{#czijHSo!RYl`%_U$X4hwl$tappQ_^1m3+2B0O0Hr>kC+azDg)i3VBK% z%ou#v)Od{hcqGtF9Lt9bnn)i1y%aXF(~>W5&hNCuXJZn9duEHx$sormgaBtU>;rf_ zOeatpkm+>TVTF)uqsdYVNfaI%Dv`u)RN&GnM|nDRq6~i6;E>kI?ZZ3+eOX}Ke@OpbaG$h zRw?0eCPS8-Go>yAYezLpT8tMh`=nU+q=c&|YJv{h zpmOR_E`f3#QF@!xbA?dn_acO^;wT%qBZLzR1RBIHjyA@EfpI#~bVUz-;{q)M<&pKD7(+r-?d{d(4q?DFnl)4 zi)#bS?HNc^see0C6zY5hk*lOan>0^!bY7rRuW0FYB*-7#yNMp&nL2Uw^=p?9s=R&s zHXi<2?8xy1UAu7Uryu5AI&%&^1f{M_PfQNq5sWI)-Rn2SAv^LivI4hkgNe%f53^I# zx31raOID(br_XL&z4pqv3wYMUiinWV#Mn4g`Q*|42iGrOS-*PC?vp1|?%#IUzNSg+ z+JA5QzHNC%x1)vi0v3E0v7$-v%7M3!eVw}Xt+-WhC9JjBGVk+EKkH()4?9^t`j@>k zPakca81dQ49~wrkYY@Nj-OWEW+p=uz#S{9((DzsU_)+BAcfwcxW6hkFC(G>iq<`$c z?1{yc2p$j*y>T>}leNUbJG!^1tEc$n%4 zINTe-T#oC4Y;g&hH%rKhNz@c*;3W<%4qb3X>hR}MFIA%)5~kmt7xyuZM2 zKTjCCBZN@g|5tUiU&r&78MQkQ9JHvx6dQR3DU{0O6x z&rwx@9op1rlB3k-DfBrCBS>>1Wd}P6X(~9h!WP^#OQB1LjVkeAd1-1;SknMdG#>p4 zZi#c$xM2lW4m+8umPSFLQ%L-{QLt7Uq|?SRcsEL|G`m}1fiALP(^R-a2neOvJ`LVn zY^5!>(t|X|Q+RM|5H{Er*mI#3PGNJf5)f-B06E1ipr!+j*5+En9@?g6i{Z z{M>$WwhiL&xG1UB0u9>&fd*%Ty9=2>gPO{0Rzxyp8KUKiNcIfDL7J9f5m94g?3Vx= z4&`v535Op}9B~kj?Sk9(LkR{CGp-~umE>W;aF#b-R0}t0-D9KU1(H6ZQXk~_0}hT? zK%m1TZjKn0Zg9LaW+Iw3Hx1pyy)H)vOH3a4Eyf^jx7|wvcoq@t*Z*}gz zTS=c`j8|ym6-sxB(443Br&;|$g3Yl}CQ=N(bE-iss58e)A5DWkvO)TW`)8|Az6&Z9 zDvFyw+1un{+1F3Xnms9Mf%2Q9az$m{CurB#4@;X|$Y}ETpzpoIBO*3*?b(5DSpOfN ze)xWq=9(tp&CT1@Yu5R_W`6H9@ARHk#}AbqKT&n~$hyr(R;|IOKWN~ipu0C|;q?A{ zA2n|9j}9Img{-ne7f0XO>w2S5c_X_KDz-s8H7HkuJ6o5ypkmeI(&mp#Y%20el<$PH z+h15@3~~M-LensTCQ{*^n6OVH?UQK(+@8jl5`mmV-|MSKNGTeEg_5V zPpPhA>q0Kcms+z&bspi3i9DaKsa*z!ckUn2b68}LA(4K4VmtLr=-556eYd#w-J?77 zifG?AtV8c`ziwfEox(f&MRe*I(VfYY7wO$5+PhVZN9$O3-&og{an9ax z&c1O@o{4U539c@QE-neq&WTP=i4Km*c6KSYcBy)Ox=x?2)ujvCOpXUcIj&J3*9KJW z&qFfun&f~4R0C@OImjSr(a2LN+?g9fWFkQT32L>h&G?OzMbj}>mhlvs>fjK-2|rrf zY;D`FeAzN|^Cs@k{NMphRNT6ODl0&ZA3wq4K#POc$+-VKAYU9D+9cl3@VN3hTt+DH z&Lt{%#ea9q{UCAqX8}KbzJ30`V-~-ayz+zarNBR8ms%t&wTNH-ubAZ@hc5p-c=_8q zetIWp{zrieJ`7&;-{{2_3Ck>!m;Wt!#lJ%ry%W6nzafkN9=_BfdZ|UsQj3VCe~VZQ zYxsM@5{slI7Eue|3z+-mra6{d=TO_{@IgN~E*sf>ScmB?T>^Fb6jl>2uyF#J!QwH9 zUWKOz_x}LWjRC$_WVl>jlcUiBc{+W8!B}ALm}YcHwslOlcS>?}PH}Qia`i}Z^Gxvc zigELd_V9}G^osKGjqq(5-m+ChtJbl;ZPGkDrg{0rw)Bf=*EyoSUrhThDQ&u9I`!Pq zwq4}l{{FqYZf)N-xl51YmVQZUJvgrH@_7lSOA-&9S4ZBUK>tz5!u6X4j}uB8k{E3w zL&gbIm`=CQ&80(^c5Ht?)v&Ji1KJO7=d#F6yV-$@&~mAip+I2^##w4f6>5y2q;bua zd4#4&rOB|S6DTf@=i(`KHbd_d_%c$Jq-Yw)C{pYl0|_>Q(}7J!s`(Vokj@zJpC1Wr zhDu1Wrm{&*KC4TyCX%ex#RmH%f=}a&X`CJI@k|;LY5N4$F@|*rCG=@_o;#Y5aY}8j z))@>kTjv-}@{tQqD zi~$D2I*n!YU!pCaI|n z?w4Zk=r3s2Q9_``Ih=Bhqa4#UhE$5gL#^A;g{%(hwFsqUqK=AVtYcV3C{M1m*A8#v z?A+h?vnd_Fnb^K-7uR_%wmWzuTx%fE354mVdc8o>6jfZzo5?M<1QC@d}(_c|>cSzk;HGf)3UC=um*4yoK zc0<#qqaWrT?c2YwO((Q`T}kJjL3)S$ZoO{&IB)mpkrh8LNzpkLJNZ=3`2KM3KKG|i z+3VYKudVX|gJUtJtsFh!)|4shIXb;(ceKs_m(df8yY?#|JQl?y-<~}`(benDx6{!2 zEw_92FK6_pSli2t-4)XIlG<>QGJ;PZQVY4(s$}vN1Uf|5@W2lQ%5_5}+DAo}Xiu|8 zCEuXZ7O2n)==Gj;r?)LzzHR0C4$$27KaE}g{k7X?%I+UDYWHq^*T$9}YL#7+1|Pc$ z?=PFiT`KMOn(5RUMWmoJ*U{N4=;TFo z>I4CnEHANYI_29oM#O zxv^>UwRIb=u3CF#>B@^gFFQYf@x`C!AD=M(3Y@h!9 z$lpnzVH3$b6-nAel8ShNhsd~1MQva;n_WChzx&})YDTq2-$S>rRo=Q*arY+fqk&Al zqMuDG(31z~u`I1XkHM93qcr~SrKzd=$1Q|nA6|2cSo>Mf+=g*WtpgX>ge>_aZt;gn zOTUa<(ja2VCoxOv#V!Rtjau3y1oL6|{CZJ8eHyXwlc+`S#sB5XM}4ttzj_PV+6_w+i_ zven^s?SJXr?{L2%M+Xc$K6KQnQRB{x|MtwJX=f%+zrASj?Vp$4S+?Tds@3<`uYb5{ z%j2#7mD>VQOe%^`M;VzYF9#JCprT?_ScZyrqNBf{{d>^a!|37>boCUvc=p=5Et@Dj z8npT4QwzB5TyDuP=dbS25Q=3H`%R-Yy%|T5#3>_n{6aT}Hr-pPhIFtT_d6oR*KqUV;yQ`ooZ#1 zuO_oOCXQ!T5z55`xrW!QquDh|VkO*~)9zshABm%oZDVLkn`XCFQTN-NNZZ4UVw}Cs;`^$!%k}bq@H&A`5708O{7` zsaR>F3UhGYs3u`UfhsbV)dsgvWa{i;wNVteqDfO+OvA6T)6XMpRteNfwN0o_2(Y#c zYSL_vlSiT85ZhFpqjAbKx^HVit!Qk$k|0;;`Jar;EVbqGW-UT(=wy{PTE%bCX=k-) zyj-OWRMDv|xMH3A`pu zMMrbmD8Ud+2wR$}H#SzTY-knCYPQ>`gPOG1#oJ~!Qx%b#6p9ZPG~n(lc+Co0x6+c^ zYRzxAR_$okJh&!Fpb(Gg! zWVP3n>>WybozR_AYcATll@R<9?^eh^=)6 zbI;&0_m{1{_0yt5Lq}cvb~^fT;qBgo_Rxk?to=pC{t9V#No_n&*`8)>5304fRs;yN zI690BQ+q9b)>Q-!1`w)ic<6fu<#?hZ!;=CVw9~S(s4;F5E>JwkXo~jf9u+F@A#r%K=yi3}|% z@2}w{0&VW8e>k{n+Vc?q0Qx+h{=v6avPn(0l_o)9*zVwq@=DO%2dLr^e%oC|1-f?! z-MNWwTtb)5pwq|E(IaU85mbHv?c0sYOVO^vCxzJ$bJFglCfrVlxfL6AB_!zTj=)RX zww>Fs@$|~o$CfNRy5Q$ybAP<}!>lVare2)#?YZ$|PmUP=%b-C=`}R57yVs#^T@H5X ze4u@MxTP%fbT4#r1c%Nu7+|l=|9D+HreSMqBK|47Cb=YU{){8!WSYhn5QpeWAsM)! zk_bAUpnwDwDUQbf8xcOUskSsn3;i& zAH~Pw-fi^Y4to3m>#-=zwWgI1(4z|U2o7s?T2Y$UXEOfZG23UlZl2j? z@ublcM$YKl>$|pX7kPMW)8oH2?Nww2MAzY_z7{xWp*$&usFj-PUQ%FG+H=H8sU;P(8VZ!G|U zUVdl!>icUqJl?VmZ4XAl;V2>!C8s{jO21W-eXG2%;^0nnWFIlu&ptxe zZlSAp(N$D=^F&PaPg-M)pf|sKYDMP9wNfK|{gn^}`nSU*&|DfrW>VH^tWAuT{n^dF zbq`;~(00v6chU~=9p2t@b-?-X+k(EP_2m8vI(|Yf3-~r#cUOXh;AJ-Cy&V(Gc0H5kn*8pb`2O_Hey_u zpWjLkm+v`p0Yh)Lv)$ofAJ)G0svaG7d^;j;%&`1#C*+PAkvVKg?0`NiJ)IZZ>Q-p@ zV4ZCQr%NSh6WqKa82xr$7tpzN%-Dg6Bl>T3c1+Yc zW$9cuTM_HE`pFc%v3IY;N#ph|owsNH%%UkH_e~rb>+KpQFi9FsWD5oS>^XvctTmlL z>cSagPLF=&lcps0>>c3h2KNJ@He@MpS7^=UliF}A)bBu+cEJYhsXCDR6KIR z&LLxp`wva)++&-A^CE&=r_qEv+C_3qs+vq!vhjp|gU)%hZ!4GH-9Dc<;G6M1J9qV% zkPQEXwRZR!(QSXmJcCG5a@VSwLo*4YbyFK zslCTIT%qmGYn_U0=zIN!qQKC*lcuBCq>B@$-TC3C(w_ZS6U^SBBaTg(oYA}I<0Z?Y z)cRv>dZ6#;AL!f_1iIAVaEP{<;I&i%pId1@X=?v*WB1P+x2fN> zL;YrLzG&uI?;FkMmi$*L0jO`S{iK=g`(HWy=X31`R))`Mw@($VK4{qLv&Nm9w&>Qh zv3t`mtmsDXZus8oddcvL(pHbMN!;bSq!B9k8n#|hLOv`eEArTo>Vi@mvQCn_mJ`S~a}8)c@W)MOMN_c$u@QE2F+;E)Fafe*F@ z+}*h4_L>dXm#x0MXxYViKVP2v)7fvaI-edj^7yc!M+OWy*t_?^?%fV_>9V&&yS;7O z?DF+3^YAQkcFMK0&DQI)wOZIKxgx(5S^fQTussueKKXQ<5Xck-I?eR5Vz`=2ud%HX z=r}bA4xRX$5lg7ISvQW-s#Ek_BB4yOQh@sB;Es=)K!ROOvWoUhm9RKY}}+V?WPZD{loC?(?;~2GNQ+{5#6Va>Nb5;kEx^jPXb1CpFX_HcSE~R z$8>|~8JMoqhCz8K+1?Rx1)wk95rU_h?ygYe>-|$_h|zb4t#J&^y zcU|PudZXSgT<;#wI%X1v5*zJ7EAF5bU23Dsv9ZagWQtrXe{F|;u0R9%ycRpOy(2jE zK@YE^J}pnSX?LQN-;wUU5A+^*r2o+4Lr0w*J>lZSDHo@FcWK7=_ZKdGuz2~yWveRJ ztVf%+p>2UEFa(8!q4)%pmh_+??Llb{+Fgit??PpJ(XRby-#&Eh{Jlr#Z=stPD$YEq zxOOTjX;aJgF@n+j3aSIo_;IZ~8@v8`$inrT1?)MQVNzLjHffbf+r(?=#jYUGt!#$0 z2Z1&WZZ)Qj-D)Q~)Syh_Z89k;SEWmDs?WFUxLoh@qnCH#(xvFgQFQSpI(!P9yMQiS zLT4{N_79D6Y_+917c01I=50}SD!Oq7T{wo0??ac*po^!`*^{`%q#$=!zaE<@74E!C zD*{-XNINb>Aj1W1jF0bykj?1MX>{=@I(h(|ynuc=ht6I=MFlq#!h^;R{N7$z=3w0H zXdm6TN9Cbnbmt;Eegs{-gw9_;Cr_Zmd(h#X`3q)l?bK!sNS@9<*5I_#+9r4S0Ce&Q zE_3KGx_$v&JdEz0M0by)O9xP9bgYx(n$N$AwPv&JJeRgmF12;ovufFsl3aA|7j(D; zT|S6zokS_|`F`Ct+mIVI+HHfnpreK8U_nHmE`d5@l-^;9TD`fA@2TKGbmlm^c?sP( zhtB_k&L2i+j-t?jFiMp!2#Gf8R3%fWb;NIpwxrX2+M~2|bnOxN3)ijrt7_u~!Qq(J9?h78 z#!cGOvfcej)6o1Sx5iCHOI97}*$-{lissJS*`+I5x%$$85tWl>KAAmtSEr6>_RKOz zhXWeJF9II21C1PWX<+{tC%Xe9hTmJbXm8&k`E9zK8#Up=h_TnlPC&uo_lA!|-_N<< zsoOC|f05E(r;OJL!zDs@o-&@`jO7%cslZ)0Buh5uMFM>k1Ud@@+F%lB%gUmLsIk>rnp!%4*x2!-=02Y`@9=4(PM>_yzW$eOn>A^t zv}xJs8^)>yW7$Ie)mK)Ze4?yh->z}vj?Jw*H6(05wj@7nZv5Q3<%f;ifAD3S`VHG! zS$Ti*-lv|1CQ++9-`PFnPNChSye4SZ7byEJRMPBmiSkjg;&GlDkE55<>cS#@sMCj$ zAkd^PRppwY@<<~b@L&$SB96Dl0}q>xJ@nd$!++xOEUR-&xBK!C_J9cn)C!N;Bt2M!b{f16{5BKjul@A_0xP5wWdGe}tNweo=&77I@-Q=7Z6SAj{%bhf~ zc-+|CqsHv(KkQ(iA%}VmKG0*}{%-yE`}N(|vG@Lty$`hSb)ap}1FgF6Z`p01PnW%3 zo%gtR-09J7SKE#y?b;W&ZCBi?O_6V_LNDI}Pp?7`&m2d`TziKcTe}>CZH`WtrO{+^ z_+h@+aN<`&6llqzVGW`{r>f~>f(Cn*nxEsyszzv;^}a#k)anSOe~2wz25HQ}6NfKnT% zsA5Mo{wi&vZ-*5|hlM^Ki@iLy*|}|V@}A}H{6kyspFO=-xOp#g_g?Dmv)IE2(v_}0 zYh1inyLqj4^H}TZvBt%Ht+OYv#>r!~v&Sk|@0G6JP++aI&qha|E%rYCc0PedpCG{% zR=dR8^QTsxi#%O6+B+w5PDN^`-D;;j3cFp_x;<9hK1*t^67#a`!Co^eOUgS=_R9S(|n{+jZF4v2$6+ z&iQRSQEa}m^v`6nleFyI!IHY9w@ZwP;_l_KMeAt9*{U==? zF!ju+86}gy3;k*4rK3C1?F;DEweuUcFIQ-j8Kdk9dI_dWQd4*SC(th^nc?C&CW#}n zN$V`yCW+&hJ3F-P)Oew@X0J$pjMaIaJZ*$3zzVQx|KSYlUui; zvu9C$Asok|X>)fkTz+i*=6m7MM`kbB$T_TQ!6w-H_}jaq+;nvP^o7LmqGj_=Z(Va? z{mN^rm)%{la0=BECBvv_hDO-1$Uj&6cmA1zzB=+Mlcj(#`q)Y4T~lA_Vw zOX%v!k_EGusVILX7o%}p&v2;|hM{X`(9XRF=KXwV<*I#amL1=*{<#0jV=LzFpEhk4n&6s#*(Ok4;?Zq)8qSVR+rK(V4 zjI$<^SzS0OY_w7znLZO;IE_vpM0c;`EctOdO9VMN2eweB(fTk;^_r&5m+IJ?!CTRl zv)3bni>H5A{{4bu%Qjz$NI{2=qWiZ`7H7=v+5UT@074J$8&7C=aE?DYdi8AInIG8i zgGr<7PZ-ppo6q;|uO`sZG#+;kh@$Yj5=Ep;b3}oDB`nNWS{I($a}9xx;>-k^=dY;A z`=oHwn!T>loKtJg>KxIiaeEz{;Y2TU^}Nw<=;;pK(ND|J;+1Gq0Gj(#zQOMHz#(Yq zIy7&|mBB-cJ=`ir4m;-RbV{Q=)WYVNf*yFD_XY=%~^83XaCck zx*cuR7R{J-#>)rwA9&N*{T#(#BZS+8_Lf?6h2YOI+T*--56xyM@k4}?C7bgyfzI|s zMS4_ViFP-8RPt5j&SnowTcCrQ(`i=dLa)R5-P?J-_vIIFHEiZwzj^16tvh{a-T4da z9*vcKn_Km0^tE@R&-rFwG;8qTf5_$^*m7U!nEH%OW3{E)s*&caFX_)4S%2EZ<|~D5 z1BLhdjlDl=+OfWMw@(`SSgPFWz57mkwO{{&h>7RRd*+m+>_{36mBK91lw)0!o| zUN=kf@Vhv!Ue4dJZJ2^vEI6!Y4Qp9$9Z#>-&>J<3KgWv0`Xms5Hkr^Q6S@>aldjg| zk+76_^r9?Ejl!;A&bDTSW8jiJ{5^3%mo@gns>T*v&0ibvYw70o5xr;%Tg-~2_oCl zCe6w^jU+;Btim}m!cHG%tJ}`8+X*U+;NvMxbPFQ3xjL?yJdJNo#wOiCwe5TrS3AxDj$vdrc)c-F zXMn&9=TebUzfWzq&&E)0t=(5AZRPerIu6IA#Gt3fOqz_OtvpJ1aY zXr#?=q>F8#Tcy@ab#=JBGaKE%j&5GB+#VIgxuh_9*%kD1WQtrXe|3kJh3hvul&S+K}ex9q8bKa?;SbUm~VY9L1A! z9F21Yb|FbFS1Cgb`t5`|R>R|7yp$@DCDL_VtU^)1J4D+$Ux*Jxw+;vXIAJuSUTrO` z|AzXpp(3bDceJ+v-9Ei%)q-VCcAHskLg#Mi?6He^SxX&!mRakUx6m%-9e(!fbT}al z9Qr|GOuR>%aD_HPsRM(I9XAA>KYC%)w(ki2cWQnPEi5Eykb zqSr9|4!`#3aQTCz!jV%|z!7hYMQMRmq|MpX&4X?OV@ z6dB1=F@#OJ+WN4DKgaWz2@q)RF{!<)5-up{)3oM-liOZFSHkHII=CLTci+t#j|h&p zeL9{ox|}vR?X)3J=pC-Rw7TrPdH#u$7>(8D*2d;4}O6$6}aA0ow zpsgD_jT$02*)_AaQhn2iYiMcvrIphMO`RJsoxkRK{p%~&rcC>{>NRTc#amNG=uQ+3 zxPQ3Son6h)k!DYJHbkY3Q0X^M3L4?pxa7KA{Fx1NdMBD|kw_TQl^z*N-!!!w9)$x7 zwBr9mfzC9&-B$)wJkLYy*ihq1yB7eqouM)K)7)xbFSN4=zXI>(od-ej8(G&FrG2WE zK25=;sqnxQ_{m}dk7gB5Gf^B9g`ZMop@xpbU-Sr&)^J@naS$JL7+29++SH71X}#FwYePE1#@XOM^>*(fIt@#&k^WkC2kVN z?ad~E7G31G7HIqsAxp+8TO?XF%~LCOvUD*;WfQ7oS{co%f@$jj!aA5z#!>jC=vghO zjHb#AHIYK8!LVg17*#4w)JzjG;wzff$rMggs+US9)ae9HVVxOjoMx%jDV9w$DC;a| zK8075E7S)lCX%s?ci=L4s(=QVe1^$kMc90XDrCt*R$aiUAuVNzGKMN)seGQw&`~J{ z21wU2xdNBZVe)t`OD|*^glsLJ!*kdR@c`sZ8p{G1ESFDm#ROBPVoFFR4}4L8GBp(W z<%yUG626CAyfySdglUSg$XeyT?@<;+wKz#3Drpc`{89E)qrZNm*dTA(| z3Alw8E<$69y|f{fGQiz(Fh!Qk z7>O?JJGXuLOtN{9peuB1nPKZ1ud|KR>SML~6hW89YZ7Q`GeuO!MWM4NqDGG#ZDqOK z!C|f5xLso#As7OiE1+^Lp?003tvwSIJ^`fr7&Wtb>P=nRp-YF*;iA=kt=ICp z&AcJDZ!dK5!nIXfXIb(KRN6?7HbHuaK!Ocu)*?&LK@^HpDpPd2AT762OU<|A!bkN* zCk`Fkx_yks_C`W7D0{-t;o$4R4lY|*VKvPx*0A3h*{hM;(S%H8))ssTp9-lUA+-h18udvzKLQ&d66-V()9Blh^@YN0MQh&mLCS!Vc>gpvEXwv|c zf2csie|1kyo2hbWNF#CcGZtvE1v*BpNLMQk3z~Dh=CYawfvzO9_tcszoc6q4zpI7i zMJJd28tp+l#{$j>H)lyr={-8Pd`g$x!sfV#XSNNI-Ar>x=Uqgq58Jcll+~_gP0kbg za|**b(s;m{*+~dTT)lVMd#0&$xoTs&LP#R$OhMS=>{O&w-PG7#wW99P{7oCx9Tj@F#cys@t?zZGqM`JUUA*(3QKte6X|OxvZw>TEColUyif*vgtotu*QFV z>i)US@c(|(@%^T)8rXPz(_HxcqtDb$-kmvuJDA=7;pst-&vd>K9}})zIAfQ zrC)~ZFPYG{yKVh1KmFGS?>Axe4Jh}2e&g^~cXK*V97X+fNDTe-e1FCLZDw{ z&wwnHSM#a@jR_>FZEf42y?fD}JLuS{+iSN+vaSUR+g(=L5*w~i$rP%nVkKFoAR&gP z32eMhgip}mmo+2{Tnf*n3OoQ4@Ubd~<3OXqm9rTGkVWf7vMGHwt<9nEOXhM34FFOr zQC$sVs=p4N7W2)^h{eQrAJ#-%gM_pQEH2rzD9|ABAkbo;3J_>OYJLVlb5m4Aib_f` z<`OJJDkBvWTeU@Mlp&JTDsUap#7u=Ut+^$TY;7Hx!L4NSU?I=_Xw zz=}*&C=%7yHAy0DYLZCWBoNkdghC{i#K1&?T9KkwrmCI-A5+w-RJBc}(khoz=Gw6- zs^)vFtPfFCf}%+ZugWKs#VSl8esOfwOYd??n6@b(taC~00?MX{FhMEv7-fc_O4X`T zHAI?*$mWS$76TK>JdwnxGD%etN$%z}JGHu8ttLgoCJ1z@z~*y&DJzsxTmghZicAMP zr0IMLz)jJ$rsl>e2`B(wE>c(n)3Q%7U+THkz2u7!mwnM1%y(YCEx5tpciZ)9npa2$>95$nxS%X*TXbj=O)Dz^7RrO=huVf|icc(HT5jMDhC+n!To% zUqsqE&2_iCw=V}hx`gguxe*w$nYRaNGp$NoVXf&i7hPSDuJOMp5Ta#4`was1Q4)SK zhs#ruIRqEW+bwYQ^zPBQ#jqZY#`F>fcNyNscbSu8h)#!JQ^n|jG=pJzi?5T1cSY9^ zqoTykp7y~S{kF!|$($jP)u+!fq=Zl#GK0})s@W`SHQdndVg>w{u_nzySN1AxL#((fQQOgjbBS|ie6M1XNw+jB zr!yr=+p(Y>u@O7Dx`rS$;K^Hg>_bUtyMN2by~$5NNxgh^Bg(YCI0Z4{gRI-$~H zbpBG#m`QV*ka6~{vUKiAG;RY5g2SOOl(jIHHn)ve+b(x=L6=XU^GCOK?yy$P20_)+ zr7M0|ws6mSm)5HV=aqzRr45S_W~oZ+T`jCjEERDSy~M%Tw}Y2)V8;gI`!*llv#X!i_wM!^b+!>S zI5d7gA|88=!?p$jEq39+Ic#-1FM|=~7z|cI%&7?|?kiytO3)!Bjr(^~Ot`57^~+PS ztF^Q}5NNRrM+iyAuuQBusW@O{E*XW>ELBbtWd^%= zJNN9)19tVDT+nNLTCX8l0|yih?OD{ne}0$AM+VK>-^X`PH~Q3ImlFd!?&>;d?||v) zT}Nj38J_$qm1^4O{(9$(Yr@gJRMXcwAFPc{f`YR-L zg=H_Z{3S-XLL1LeH2AoA^UoB9_ZrwXXx{0oW_>>S(p#a@e*B(= zxBlypCGBsO_rJTx@nN~*PI2=)x%x-NUXONr-P`4Gr<}cU*kf1G;2E=Bzp$~e_{5?C z=lliH`JFG@H&YM#q><-`Uvu@oZf-?{ds8@o= zsJ^&Z7v}s)DAhbx$->&&o9UHl98t)OVkP!#yxtUeHpb#b?=U6 z0Ef;dh**x_;MNlDIf5QmqC595uGfgGGCi7Iu1`YCayRD9P-x{Webp-xpOVOk_vS%tZFBq?hhkUKv$8^V8k*a zCYzUd>cJv~Y+@B} z=kPE*0-ZS5|l)WjS50vhEkcXQl*jV6iSW%j=}0zlFVNJ zRp{EOvW1I&CJn)sb|EUqg<8Wf#_DM3dUW~N#UJK`3l5Q5mk93;==e!=7*IGShNh!PI)bFa)pWFq1;Cy~Wd$Vb1;BVk zKx@UEnq^>?h*<2oSb#l)I*WiGi^zuRFeie=L++Ugw8^2(1zM>-EEuprD~0=n?y*`A z0$t9ljySUCShBoD^8-#!$A%9@hxS$M-gz~r;Cz0;nZ1Rl4rCwO7k9KY>1fu@t7UsH z6>UD1Gy8hk+ABq2N7B=d=9eAWU2t??_TfFrhl`Sq0je{h-WsU&=sVFWu+O*!QippAjw}HMVWg#Jjm=?}p#FHu~lR zJ!`RUj_cX{0Z$J3po5BsCGR~c`5YB!QJ&l59R0m)n|lRc-r8w>?MRosr9;L|wfV}% z;=M0F{I~)AQ9VtAPxZ|j(=BWiUpB7)pLZ-UWO6xuz#gMn>(?X^P;&jq+&2FjsW_40u2FIG~>FY zz$*zfAPRKN6vC^?n4d|Z^2<}J5?OAuODnYJ7=CB;{fcv&wgl<4*@P-zZJo?gFc&1a zK&=5i!ha^F!J&zCmP*6WnGDtxaHB#sHWgfB(V))Qp0UT^3e41APU4=jkY>|bu?1Sn zF;BBe5NNF=&>5_N+ptZ$Dhf0R93VP07HFuLO@1I5vkY;rSfhg_U{Sz*MV=$j;;76r zATw1-q$yRYswz^{DpON5#x$05RiiQ>HZZ3t@e8^kg$2cRnmVUqV8U#jreX>zSuG@~ zwU7d-D*XOiFliuFDYjwbMdCU6Q>xMeWl9l!nNk1?FH++T znN$)ZIWgF?xg3iET}&||<{Di`fd*BTA-1K^~Eb5#;(&}I0Dt+e_~h8&Yv zGoZy893Cw@i-l{!WY46*ge^|7LksvSU}&&sz_cw63d4V$-8ZEA;-P}=L zCVBt@ef4^9-1?^iEe>x|1^$t-J!8yg!CjCvEgk}?r1VjSc(?Q0k%{}X{AT>d0u6Vw za5@#Js8TCFQ*G<7cbn$x?cJ*tF{GvS@Yc5deFwF5U+Cx<$r+l6KNt|P{;DBI7$hsmapPcRYHJTv(nuQ9Y2l^9p32E zI*2wzG*dx+ioSH@oyodP|mS7#&FJl3!`04Fo$Q( zKv$2KuUfc{wq4kS`q|U_VSXCAc`kR#_@5g#k0JH(jBSYCVXjegz<&)owLf;h6S3TK%imSNP+^Q)r=_6(lB=Bek|EDAm-F8BU!Rk zrY07zWY0jAK%3q(QZ3N<4KAS+70a=4YIT;1IKmt7i&U^cYaiIKw+ZGHr@ri{zrtyE zD(KS_CfrDiUa@UnpC!Y6W_0xW(a&vpFJW0X<Y1Dw~7(5&yGSk{tS-iQBr zsQvuWUdu-s7IC`%ekiFDzZZXyo!$qn3>tGhcmUF@ALYlRJl?vx9G!322{X zW${O-xIW5bD>DsGvISJgqY|>Bn7f+p^7z28)a}mQeg9@q|IL~H%8O{`LpHLv`ll=R z9}nAlytRd!jYZOY9;Mr(dY4%_tk;1+7Z5h0Kxc#Wm;^eH#D7wU z8W$?;bPm_M;)~)$IS@Sn*PYdWFNTQ}j!wp~xW$_1Qh3JH--DH=%~Mc^0!ApLgENsMy^? zM0`9;LKJHeQJ~HGV~9M}YbXPYi1sXV=;~r1(0r1~o<)I9Q}XG`rvm-#dQ<@HlKHMm z$kbUzBE{f0-itAT!ZMwz;L;Rah7AuUovPrIR6N*oyc+*C6K;6mP9~4kg6tL(x+1l< z*aSEzwr3J6axSgOWwm*Xwvg6>0h_v&bEdvA@Y`zO2tq!jFbzL7wr7$PQ^PEb7nboQxRn`F8Qa7Ph1@v7$1um+IJDj79_T@w(GH~`8ny1NM- z{s=1}X~~I;@t#ysz?$z52K4&50xcm5w|S1V^Dm<6v@`){YzEJ!32Y{Zr=Om*rdin> z&WF@&7L&_TIUHqbEQd_|r3y#`+~MR>##|cT=fI7qscjf`40mBSt&NA3Ku!q>P&q6E z8_m_~qG%?<-2>%knFRXswcwa_yfcK{9D)KlgWpr!N%6OZ9Es{*`oA zp7Gr`&TroWjRPq`6(~Ta4FLw%89v@^d$tq?`BFn$IrsG$+S+}wlT$cvgf)o0-s4F= z+29nev)`mO#`WxTJva!RIfZUtg*&24sqx7(rmXbv*d!Pdbxv^G9L?Du-mo6syN-?@ z!UNJ>I)_gEg7%i7w4_*DU4ouV)Uk0|CR#&9YRE8w0)dXSX4cuzhc~T5H!ocbizu1= z{mr>6uP$6snV*dAoIrlXQGwHEWdu}P&vAF1*K=B)NE8#h)$M2xptsD zBXFr-%Xv1+IHjS0a}THO=TrQaQG?OFtLVmUw5J^1xq!~@Lg!1-q0I9?Oh|b>pW$vOmmWptVA(En_c{)Z*h3m)&PL)g%=?ouBYu2;cA3fag02-%GEcEtS z&Fh00VTVGwnWN*!kK7l!6XFJ2lmH4kf4=+^yva2E`73CG8 zgZuCpe0xg*hV=Vh%lkVyMlwR0HBo9!=PTJrR?iN3}Sj^`wzE@j(r?Z&u{I5wa?@ZDC z_q!(lnA^Z&Q8SChw8bJ1iv?}|^`p-x)7?JyQ@fA$4v1e~QJlEX*6s8+#5omn&0sjq zfuc@Q+m{7G$dvdsF=)dlnZf^|pijA)*UZLYEu>M&8Dx45=Odyiv* ze(*>X=p0fl3Um?&i(`St>Pd-z0fn=vqU{%3O?9d8vg=Q{Js$f~km}QvjvN_4vo~Z;HKm92J0*!}1H~o1B zG#W@zVu4Ns)Eo#j*mDl0&82bcG5{tm_8J#86n-=yj}`J*xZB}CTQT^S27Xu$e(++j zXPl2y?9kYNaT_ztg*Awan}L-JA1Sa^6JUg(dXVPPaI%rrK8lZ{bTlCq&oprw@~is( z0_KgorjtYjZp>hZO}j1RR)fC+-eI;xOc_q3h=u*fIe;k20G!^S+9v75m}@j(+6~OB z3bcsntKpkH(UMK)b5$k)KauG?ud-*Dh8)u@ti|~ZQ9$FqC8m2zxI@r^M#F(K*>jaZ zo63v3imxy6dNCL1Je?kDz(@~Il$U`8`u3%(LDB13M+mv1{#G3+Ge3SVvSKe6XyCVY zXjy~w8wU3h;bjs2^^jE`)o|%7HuXFR2&7@V!Fi6CSC_87PW^n01ATmZ`HXJmw$#xf zoY&*`t+2R5T^gfF;S33!F^JNvQZZ{CU6aO7I25=IH@n`yg07w4y=>7MTe~ebOcrTO zHoBkm--d2oPG7cg2{a5gH*zz^^J4f$3-s6VC}Hde8sI-d}*n zab$b=u=Xx*HVls0mMm$YnY#zYGRRDc!_3Sa$IQ&kwwRe&BWc8vnH@9RaqQUjotl;> zitJ>adw2Jv|MUEwR;#DEt53bB`qZgyjAj4Y)j;Iv*fHd8L2U<7Ma|W`$HYiJ|tQ_SOpqgs5-HomsIJ3KS{f942;n+0N=3@J&Q^AW^ zb?rN^!WkY+&sg-ri|aplW5YYoWqtZ`@q5oE4+>jkFs_yCTO&uHq-?b7z|J`f=E#<` z{)4wtY@&b}I!>nJcmj+hRMRP}x`J00j2wwhfIqNrTGXHgq8ej|Bhj-JXg(}F`1 zKYH&_atzKP4d=GExnb7yRlF^pu$NheZZK=9ufK-&G@h?7TKUF{sgFNj@Wd;d#y!3M zjhAmURiLB0(_ejYVqd>4JUouzZ!A*H+C}Kf@f&S5C_M+2xd5Fpnx8&gyLirwAp2}H znM?|$CaxiXt1$}ctOC#L#W91`*T&rc#dH1Mf9j1P1Ls?Vms=bgWLvCYgOdjrD1#BQ zxORX};#dsOESJiNxN+LkiLfI>d*QgFygzl6{?oqz=v&*U^+x4i*Utc*!s5fgLL9Zt z^Xak#kEDd6b$~ui$QN1p1V>)9iKj*8gps`v7~I4T+P`}1x~y$~{>bUGAng7XL3b}! z{y5*_voy+Q%}YKj-}vLg7ydXU{BKkH^%-NT?BiO_>}{83uxRaBJd}UOUE{0aCA5F*oYT%XlzC8ddeX;kKNqdiu%8 z`yYO&N0-3<_n7C=OM>oxP4!|z?(J?>PM^?a!b)fs;*d+>Ty z*XxymKb8kvuIl@P%lCY_-`Tw0sLY7Ujn`_)8{31?o^dytp7^P9G^!ni_KiK)5Pq_C z?4|v$Tx@>kT&W#Z^+g5$L^ZH-2Y@bb2j~RBkU>lNv{J}`9l`zd^{iOG8=yVy(B6Ob zylGx_T%prXzpVm6Zr9DG;!f%a!5yUo?tf1BOS-44T&F1j5dOUW%PBxc1w#WOcLeC~ z*RGGTT6BQU5jps^gw;RXV}QnR?2Xq1h8D2^e1V}WS;j?kH8e~an8)Hyb5@xwXzcn-I_cm(rc z(b8Ew(n=PM^G4@Vcq=`2S>FRJ*H_TjxmEg4AXp8A0h*SwDJ(BQ7n+4ag45;MEt5+z z*|aWv+*{QVn!UP7&vZJ^dIc~I@|+C5Sh!?8bOeWDlTr~40Ilf&T`H)0ptBy$49}$< z-GufwT42o@AWpc+9_Iu%46}SSiy5?rlRN;5NmNHY{i%5Yt6eukjd6|+c#a}hDlw%3 zT_WoJ4lzu7q?2NMGivAQ&8H9G>uHwOzjit|fe}X;e_XOlQpLW3=z&FGr&)xWiZue6=xWjRw#QuB^ zzm)e^DC(60qZe{FBf4q1hLK&YTEVOM@rfYpCxC0wzAKL};d!U<9^j3DnIcK7P%SCk zzW`|Pmwxf=Zc4wyx;n1oUHIDo{U24waFKtzbb$W1s8jW!E04op@N#*!7+z9Vi?xKz ziR}N{*g+$n9ys{fflod$;ESlRr9sYkSIvkhE1A5&Qe=$EBojr+mZ?As;!?lc*ZdQ`TAlx>5?o9m0AAKgtUz*8T6thLPBuZ+gpyqiX zzWrp{`^+c>Mr|8oJG5aPI&r9e^{SW`U#)uez0zl1+WOeg35sbd>%U26$`yMlsU-yP zsY6GjGe>{e)wt!QSLSNLF+;{|9XGCR+e&o)z~zd})R&%1GFnP~Z54*lXp=SJjn@I? z_iWnwmF$?nNps9}G$W={ViBX2*&^1nmbsd9@A~!V#PM_KsdK|3wgrVJOLnl*0L@^~ z(kQCX1fGVJOQ;)YWy7e)(Y^y{=f0(bN30NRiJCLR=E%@&>5OA@fU-ewMh_TP_{Q5m zB*x>hV~!k38#FeBk0{ZGtsu0$ahuWQ!|2pL+%SLm2x@LYCy%1j2hmSQ(X}J>s~0RA z7!hp^i_t=7TP%k+twrDOtC%urt2Qvk7By=`RP5x>E>`8ih3{XyV4A_0Kno?LE zMj?ZhmpUA84<8Wm{7Byqp5)&c_u-((WfsR;#j#bgC32Q@TJ?n3i2%@WQ93{;aXcuE z1>ZmdfKC;#Ix+OG>DN%(yQGua0s4;V8FYJqP7s6)Mb2Uv0O;M4?U-Z*fIiPkhXvCq zCwG!(j`=ZHjs3TaV-9akov?NBpC%3PSr+cIK=PSt`tx+@uEj%r7Qf&#W!&FpJ@NOi zdGqXtU(EDhx+iSw(Q%*W50xgHx_xE1XFUD)sls1oX@8jI^qCRtGdtX8e$+o^4F1Q5 zwt(J>~8arKl_DsF-CRkJJ8>6 zq<>GtlDQ#29Dn6xUC^Z(`Fafv+7-ygLNy@sQ!rR&=* zm)nBR*AKqn9&@ew@hg=hPFIASZW?r;>9IZaPo3TM>Pc5PYBpUfzaIfTdjR@oC&G4s zP85xqjI0B6A&0YEwWpQkl};@C+w!8b7m>Z}d+V>>pYBjaJPxA0t%^AuCUL7uZr2k0 z8`Iw_PfOu#bn~m!D@1N4tS=>T2I(v^%E2Vh9BTMW=0F-Rw&Vv#SD z*gP4xD3^$A700@1ww}UM7mFJafq{UD>q&D1h$0$6G}%OxFok)2Nyn+1Apw$ro;{6) zxPh}$kg7cL(zD*s*nSQyU=yY;4>w~0G<&!ic%ohI4uXHHaTqJB!vydOW@t||$W2tm zK#9XDFhI)y&_ETy%{n@R(md3w!!cm%tpM#M4v>eEe-`}PN&0iI5_k|0uqVI+2l?pD-ui*?Av{U+JPgf)iWMxF0etj=Z#zTt zVyy?DYdI|M)#=jdxg$fj>n7TI0ovo#;WBm$BL6J?C$DN)v5poSXaS~mo~fJhVDYa^ z;h-MR0T*~!0-H2Y@DuDx#*{3`@c6(Bg;xoV<=G1VghQk}01caX0lHk#l37m(M>{~D zIJ+%nl^BvOSO9b3Wrvqhmk!4r=RsZ|?zEbBxp&P@(!H|(oI3IJzg?Zo`~O;_RHEp}VJtw{*}M!ku++>~;o%6Z(WGU|;4!FiJ8Ipxb;J{ESz8>dro&z0)LOBB zH5E}zN5ltOmiRI;Lr0xVj76u8UthXD#WHA(ue?5FFgm{P(xIm2E$jELUw3p{bn}wM zhqrBN+`P(_wjN#F_hWPEx@X6&7wv0FWhN(Ih>b?4zc2j!^Oe5RCZlCuaL9*Ne$8vo zpwmZCV@>q1p$Se$D#L>d1WM)P)i&#wgCd@MY^d|4#|Aw!YJ7P38r8N%vd0RxbXLoz zl{`uYWiw(&fCf5+Z9!gu_A<22$KHAUUyu&UzqVYTzf~BZZ>8rX0Y_fnR$hRHn$io< zo=wC|S0m*dGLLFn-(?$(ZBX@A4&L?NjNnZZ&{Lwzk2K;%Z z<$=j+?R%>-=HdEVavI+n*-L zKGUo|3qpLBM)<58;4cy(@_ar?=CDFXO7;pT5%d5wPSDHC`oaXQ$Ic1kWWxiHVUaX{ls@1N$gzNQ# zi`GQgiNE#iE#2cg@*eZ3zXc3>#4z~LzRsRKD208vC@bn{o9#rU3AJ!PR`_47GN8R7 zM~l>&XlG^gu!^`bMO#OeMn6-R`a(nMu==b4wZ%iq@|4B|N{w z^;vPjr^zXARhE64x+VBPxq|lDuDLk?=nY{w||}*Q@tS(*YVV z7yi9-d1BN&A;r264aj>_`jTJ!wUdekoD||Vy2a}0>SP~v0pRK%l=Y9xcQVy`4&9+( zW!S3ncG4psZV?7(Kx7QiP5X3!KDus0tj($ebgsnf0FA#3dx!@%feisu;9valS7vh+ z5YA9m#nBBE-AK~F&;Zi~5)VIl`Ykc=FaFAm(`;eD#l&-SNyjPhkS87kf6xaI(Fx4W zOCa2_%+t=N3-bz#qgOiubVqdV$jx5q01fNh6#jY+H>ZpiiV41m#9i*dc;(`r3cLeo_f0I>B7k_JozqIPopnx`t`0*K;k`vUo zSIayQ2J{ThQmN#*&jJJVT*uLkEM3ph7@&E;M-ICs3=4Nyr)qsU{z>3<#>J@Ti8Sae z&!fi#3_h4g6(UY7jm1Nu!VXXSI-YXkmA+g2&;gwV{c!E+IK0K%i|HPy^_+u8I;P_W zZ(wT=$$?j|g(e1H!-R zXinkw>5c#mFNF@!WwM$`vkBpzq3JvTeJ(n6wG;{ft^2MW&m8^*pSI(_dSgGR<3e5f za__$#_5T30SDmU4U0#4Lp>ao)EGcMYe>^Pw>!{F$p+Q?L_H;qb<3vE` zJb_Iy_N!EtCfQ!uk1OuMxB?yJTx2>Qxj~7TN=PMde}H!EMhPh~w$N>6Da8?qvI@|N zQ+e-yGD~$X60I8~M}icTM8Nsj%V{g_M*MT9TeXt5B$<@Ow6bgC8g%MV>C723WP1YV zEMbFE{m9HfQ>|*Lk(DZ5DUz+*td@;WjlFib^=zYSS;(LyBD9qnQsEc0m3NeU`T@Fp z2yL%S8#XGjpWI9gOzSGNy!9zM@cpTkn-*KbTY$5Qbf#Ft=h^Mc zUw9hrY(nRbw=A5$+!?kWu$aZ!uQ66KJXp?hQq4D8Voln%0i#fT8)`d{IPA%dW-XPn zW{cKD1DzA7l?2$_0U_1K&^SM787-HM{~Bk^$Sqx`girNjo2Je}S5B2jubCDUImsx@ z;;nN;>r6`epr8L&!z0c%7Ng5YDrQXBUl=|9^$HmUiSoD|4;Xbn* zKGTCAogLM0YE-Y!gL`~z_y5Xn`ig&Yy)*gHsJ%apY&pm_?2#IdK9_swv*$ODR2B?; z@H_dBlcfKd8|1Sv!e{;fpLtO}bBFqj4_6mGyZ=nB>**)AbJjhAd_drj@boExJ;MV) zv%v93MWqhhP1<~i0If50lBMU)34W;Bt^@S>O7rlj2!sTslCq~sy3ai3_xw-xq|MfNjh1sEd2Pd;gpZ)=M%&~ z;uLx)#3PdVZin(GL!gfzR$qMDQEQpG)!SbAO_&qavrxpXK6I3P@(~MfSy~-Y(0gW zD$^`NvQ>i33q(a%p`_}P1Nnw1$$#KKv&QJtU9Ou0-#}9K*~i>onVRZt1dmY zg$JEGLoM)VCv*k^_DV-#&nE2{eOr3I6`;Kv>X?3~(s3CNn?iX8Ou;=m3MksM+zZew z>=_PJZsMy9yxXMInN>Hb)i7!`kGlf`1p;rCia1mTfVG-q>NpnAxrw2hIHp#>kD&dQ zdb}67&-J|E<^}zR!+nOIbb!XZ>j`-HMcXa7Gz?oSfWO4*s^%#dPr($9RSQ3PRseZP z8t7R+qJB{Q;lfkKjut?(r@tWXGT0tr{4=S;9&U;T!ICmh6akPHz#NoqKvJD$>p5Ac zXCP_#_h$(9bYb+8w3ngrY96(JFcI5T&9_TmUfDtLFD%!2T|ZVmqcl-kBW0~)tks;g zT(Fjj?W*LhRXkn@f*JU!RI(N*)(opP)2bCHS~=7RtklSepgK5V9*|Cj16nLy~VwECZ4Q?8&RxC@UlJYY^|InVsZmk^F5uow;-{j-=%jv+%Iw*HsM_;c0 zjq^ZyHVsy=i<{iTO+lu}|Dr4kV-~Vui&AC9eua@oG6z4Wd0fx>nNx4R`*esWmauuakGnP``mL>HsZDCQA*`@5f^-TQ7Nr_Z*9EM=`Rv@MSg z%IqVg_F^+>>t?~SCOBk*D(zXh6bDosKIr~>{Bo;vlW2(%)s3>Wk;m!YGH5A=9GBaT55DuvEgutNd%Sr+5719_ZL@hm`N(j z!UmznW^`n4^d}!LFk9ogsl^7vj#-eu3L!CAG%SLwO(;<6`c#M_A|-R z=pjga;E!CvimFr0v`H@*(18lAJt`Q$OE4T_Wh*WXGue1Ti&R- zFsbawr|C7%=2pJgyyKhw#~1Isy!D&p7koeJ+hro%ZRvo&%pUlc+2j6a+T(wmHR|sZ z21c%aW6$BT@=>GqP?r6SbX<~8aLgH=J;So6SO!kuu&mT5TsB8!aY7bQ@-4#sggi6& z>jnU{XFgHuv3qhqRB1u=?B#01k9FGRY7NypuQiO`GF8>g_dNKh@`(9`e;CK!Z5sKI z|4?6py;s-2y!K?*{WU{R)Uemx0#3D2*6&IUf4sK;w2%7qedrIqJ=tzumF~T4-TO#g zdJ~WO1>WP=>mH)d-BjS;{D}K{3%&c;dv_PQbq(wr$oHZhf9+=IMG%j4_jzI5KhL$j z@I$ThdX4#pyYF?E2cXNskI%No2Y1O($UI)tQ=91kox@u|m~?OE`226G6RLUz2K0BS z)RUMNFxOkngD~~t#08y&zr%XMPj8jCBUDF~39^S9ZX*{b-%er$MP%>-&cdOGa9q6( z03B`7ya1geD`mV5w@2a%k1zM6P4Kk3L8aIZ(3uuGi#3*W)E-gWPD#}`l7ZP|7dHf1 z;$&O0;J8)kN{BA7$f;5gC`ELp3)W(btq^~aml_4Ni4=FT+8)7HZ{k`duzF;zsI=Ie z&6?dsu+@RoZfnr50d$*YakE^dnW!YGN}4XGDWIiVMXr)0mn;MNR|#U1#SS|xCpfqj zWrR>d3P8zvBeWg^ol8o^fnuu=R!iFQdyyppf{V765lVrP(|P(P3S$h_VbsITVj(3J zlTwK;lTd8r3jV4V^ce_gp9aAS1FX-^0#H-IiQ!F{#>SZ4*&rGn~h z?d~K!#-p<+Du*KTD6$yt0L7G(bg7vvG?=pt##EyzhvV`jsZ`ZmlC{{tRP>{FaE?|| zYbG^}akK`oRl@;qVN@z(*g8#Z(zJR>Xyo}?!c=VtY~UI2nhI#5N)p_vQo+zw4AUUV zbpj?cFF=Ff=~Rk%>T!O=?V6*+-_#_kwKTuO;s8W$-~^92UG;qXObZ~UiEIK~GZ9q; z*(fXUG~Ke)sH(u+B?cqFdaJC$woR;1ZDw4eTp_7dq6~t0JS>YK*9!O}2Jm7dCxdra zXJ&Uw+HS?_GLx`cxukkFQC)&sBdBf;t4(oMnYe0NYOw^>idr$jme9EHgHH=DW+^yt zoZO^3YFVX{;G1MS%)q?@RqZ;Z(7-0pe{Z|h_*E5nE z9yF;Y`ZF1#ElIX+;-zg?+a^WbBCD~gH9@w*LJ-WvsMf6(>qeV(sVuCusByBIiBoVW zO}yI5Dc%^W5{WC31UL{JqM24fw*oZGl*&?>h}-Z|A_k!1Tnx~cPF;viUn7O)h*mG` zddawxyesGceOr0g=_I}R|GzJ9Y{?z!)(uM;90uLVy#IRz^^4w1+mnP*EvGHHf;C=q zZgM!+20J%6o$(fHmWXqJmeEoP&6Y6uyGpX5Z+W=W{luu4Fy~UIwy1x|SE?{6EGXrj zH&JORYTJ46oA1_3mMyHj#SwxZ_mREZ*R7m2WWb8y!{Wz{OB^xM{mSdEC!Z-DJUrVT zoFU_p3v(4qmf!(0EqDnlo{8Cn&KxcK`pY?HC}tt8gnd__v@?KiHIQw*3`ISGqBh#J z*jJyy!NdpK7TZH}sL(^^sHWcbTs3@xNTsizg3$gS%TiYa2W<@GlBA&W_uofH_J5zS zHRi*&rVfr={`lzFm!8`?ZcM`1(d93`kQ5fVQBc-0Qr?Ki(1tDO$Wa^&9lI_1@iDQF zkDTTdr&;ODu|qP44%(=yTO%Tu4IP5}IMz3996WN9>`b?Z#VAVNGhxPp^5 zYmSL_W!=XwA9v@VOGisS`D6mgr@i(T4tlPuOMLwKO+DojbN_5EG>x>S^%e7#h*^RZ z|IVv8gU8O6{GpGn4&;|x9Oq&-qEq|I=T2Nmu(^D2ae&&WL`DY+xx>ezs&cfeDf`QJ zzSK;M!i2RBE?R>tm68Qp5+52b^p6uGV?}#{2y}|uYw}49(4c%$&S4dJqdlYXOUaUe zGr|c%2F@|^3*P;=3j?%H&vy>cH|ZGzw3nef0`#t%0DZ|UUm}(Bly;hP9;I!kxu6nB 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 + + \ 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 0000000000000000000000000000000000000000..96a12780f8f042286bf380ac44bdf3c342d0288c GIT binary patch literal 23708 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 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..ad55e5f457022a1692f455e10e1670fe2007138b GIT binary patch literal 25898 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 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..f58cc2169a48a11d3e007d415076ac87fd2f4395 GIT binary patch literal 227607 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%0DZ|UUm}(Bly;hP9;I!kxu6nB zJean4M(#wPDK?)45k7NA_{<&s=PBWT`rPO{*Zf4rz~mECwlse;vEYk0V?KUv<-5<% zfBn5#FMc)e*{yjKD^70uH1j#bxBgwHad%C&|8?T1d*{6TKNE-i{fm(Pi(lTex1ehH z$ODAsD5IQ~6yWBw?EuXIKp#?+YDLK8sNVo+ouRz|4gX?*p5%`zya26Sa;Y~O>_66z z+B8j8On2Y^sQ9qy`M(>+++`Sfzi(9Uewu%uyI&gp=<&Lzj~2_Q%8sh7*UC&+-0I1u zv0r^a+;`7|U3*47(&x!X1E1+)9QI&9L^o>014Pu{sF1(VVgICuJYXLAsNc|TJ;S^9 zv2_m!?qVMNm!7u1R8Wsz55D=V|Ap4~f2axhHGt0NfS$EdTETe|z!(4j6@bH;{o3{0G!+24iY4-7Ay-ko z0F48bagTls(6|AZ<%>lO(CHSsP+@9hX*;d75OR@O$h13?o*A`d)Sy*EhOdblb*t75 z8KZ0M;L#v`;nv6@S&pDQfdfXV=j3Lyw2M;qvbF{T>!zeq6ICfF1!fWmz(w;-l+s8` zl{{`4^@M!jj)R^?P#oEr)5ouhqMI$YMvLYWC4lS-MXu14T$(Ib6_>?QCWytrl#B>? zDS{KTq$ip!wZ5Y|FJHoG@bY!r2XZf{8TH05S`06N#i z0RflMp47+`z7_dKF3-RM1eY;-6`XV^U7zyfW94_U~_ zSw<$)#K4*zx%pp6_HZg1yJYt%!2{boS+z#0a zP*?>Ua=6stc4(Hbm*q;5X%wXzf(3eR^27}Ts{sq@t-l>xdEMZn8mJm0)5@u>;1~o@ zHT}%hW)@0RsieRrFazKVMGGJp(=Y?bg0qXjLYJgfDVA!By~ggWve=qKBWkUVVu}Nd zu4F`5zs(X1o9GM;d*}$zz?AKjsRwmPcnotuBA9_QgoSX1Zr;<{O^Z-M(rn?0{fBNE zFl5!>sHG!@EgCgs$zvmzjTyFl*w9r&2d^1Cbj^^#D~1kTI(+bgQA6jA8oKPsu^Y#Y zjUO^B#SsPuvx=151Pd-lHA|QCH13fpae&CT0yH>~aL+pdbaHrqRMZa87h^C$1F?DA zkG;g)N&2s_n)hOFmA=kx_Vro0?{hq`q`J-bLJ^ZxG@)GwYKM?4foPYQgsjIn@A zld4z~HEWV)&6F(poKnh2m6T9H;;-d(4lT~u=kPl(q3zY^K=X~9xO15?Kb2*n+A^Ha z?(m_jD^|vaVi?U1j@asO;13RGkD!x>P;CX;y9*uOj~eQ6x4C`$(dsotgNLj)6A6-7 z5E`6ivurb&6DcXd7K}2|(D6eD=FeVlbrcA;8l$koBtG9&@&LkY}UKUqRB}WUL=a83v{1p134IOK%{rH{Dg1VgG%0B-HojHUDGCaBy z?W#kE+t8T<=)_*&Z?w0q?vr})88+zaeti>OeG&h9?0D&GZ?7VREwr%r%{S0?_l@TKlg05UDFG$MpNCB@?MCOe zH^;4>X|=2iiu`GF3_5Zg#iT?_;jvx7pC4Sr1{cuwd|$bQ51nfuHjEyQnyb;#LulEi zWZt>RNTcLLxW=YgljijHE2OQpf$AS3?7547oanEPjYBZ?8v+ScKO`eM%}3q zyR$qaUF!gy!FC4dJh0jxfIh)vfd0Xx{%EpaA{?iA`w><-E~$kIbs&Ag?3{^zoapdb zGUQK-#{PL)|381l_MAbDE*vuN!j!q+uX!e8R^a^a9-2M#!TGBmoW8W@R}<-vKZyGF zwfXt8qW91Iy6h?Q^xl8{viE%p#`;Vg_4kQG9{4nP@cb7J?#izlGUA9yJx(j<1m!ft zo#nVQEbjqm`H-wusZs`qhqm@Yb4T44pp(=ddnN{=avQ4WeyA~e09w9YZ@p4Kbn7fx zBk#KZQSM>W({~%k-eVm3knfP5eeD5#`aBlV`%L}E2Q$J@@n8VlYsJ)$ZrjPWC%^oZ zd*G42J&aF1WO(u3fG6%XL_BEf|BvoN?)Dw?r-1%GhTyxX!S|a7b?F!GXA19Y(7FdG z4;#Yo>+1+4Ljrnt{q{BC$L0^OR)^iFz9WFn<1C;;?)PSb>x`cNJ9UKSj_PFc{-yL> z8D%UU%MA|~0y8(WXWVvLM7L*m?j+d!w(8V((5teWV`X<#1Vu7Jl{C$~jY(&YSVuS~7RKu9(T+ZW|bpDe~~(fMDv4Qma|sL0M}8*&0R##Bo`j zX@SN{$qMwpLkX!e;q-ZMR=9@4X?i_laCkEN0`S$zYK@}h5kzWWKsss4zHbqN8qHc0DL0Yrv9_LYTRjF>-fau37gfODI#~lA zs+N=*SuJ4bbdF4>P05rolO_szwnCD?UGWBKVA%Btf4jh)1$q2Y1zaz|0(TqymU4mt z=md92cggCp*anhsB-uuS2UYYnG&2}3-3-nk0X`BOw}_(PiPu}KE>3JzEyeweO}tWT zWExnUHP8F`9&iUEn#WgcvxPKDwknfQY2<4OxiXM*o25NL1N4N6x?8BP+1>|{78?~i zEXgvMamH?jO@o3&l5vK>Y@W}g=`1r@V|BC!hXaom_?w})f~r~kVF%nlJzpM8mt1`HV#WGIDT+DKCl6n+J4Z)>TV%fVN)hu4T<(scoPxyTG{K<2seYSkz z#Z#pchyg@~Lx4xrF@!@0=z82{jIkbAKaIXUK;zfS6AXhRSZ*i%S3P@R zr=Psi*XbnubpGEY9ry2Cw{D0Bmii9^Gzf|flpg@-T2h2^>!Rcm7N<|m5wY?G9Q%P2 zqaHJE0(Qz!rjvWvCphnrGE=1PLrszGOe~ z?RRMNhSE1)S*1wHyZ}a~G%&!;fZIltb5yD58M%qI7Y!JBee;%M^A{8k9OY65xcn_u zMoWflU9NC52dH~iPQSKxY29#D9S?R`KTxp zrNk7B9G0b7@(Cfw$Zzo{x7k7}Kl}33)-9;K1i33wbv9OI*5$dAlf#4NnF6Cnk2t$} z#pM;NipD%0Ln`q`X7{ttqWmt`+}w9-CIvk;OIC~OE|TV8(`ZP|KY@}v!6j?Gp9=sAmLz$W95lZ2(1aO6`C zK+Qyv2h_}FL=4a#h6aGnVsS`Dve*Hj1x^QOy`A?zq;`P*1tR~p{uMw&9pDA%OJ>Uz zW7q{E>>VqxCac_ICnwuRY%xP?-bO z30E*cOP8vJpX$ZSb^Q|-sdnxk4|b&=F+FiFG4>&1?4$m}d;5m;?%@}%c0FGA`N6En z8$|<9q2tE_^R-&rq1ut3e?UFltxs?Asr&mq@s}P^|Mb;*m?Q6dct}tG7ak@?-(~85 zw`tH_zM&8G3NnxbeGT^R0oF$i1G@B!@b?cgbnCj{gOKZW?_YDZ1N4omUdZ+T7XYoN z%h2UTg!ud4t5cGnUC0jEUYmUW{quL8pN0Dg5Rx*Gq_U9`I8HgFsS(g`} z@rv||r(J;z&MC`@Ng^L3 z35iZ?qD751QRybGI8exV#IJ@BfaG+!&AMQTP##F<`kD$&ER@MqBLUt;k!H=5CDr#Fm6q^2}nD;Hc#7xq*CU00XB1wgtc7tY^?~&zPE^fvR(TArCPeb(f!=T7`?!~9p~ef9C$nI9~j z{LYLoKb-pICsVNApZ?{Wv%Y+3?w7C5`SQ#8ljhHwvi{32wm$WIq9Y=ov(&Tdc0sFS zm};IX!vIZHihK<(Hqn@&-882B3fwA;yBpTQ(*b8g6gva-#Z#AJ($|XrS%3z4!Suf@ zF9+YDZr#u`uoRT)&KCaPEez1$&cRy%42{Rtr|}m{sCwGRTlJJ%D0|grwgUWrnJoy_ zat8)&wF~Q=TFHygHof<5)`-zLQ6p2V;hPP7bRd@_*|HTIn8A2i+G5q#Xv%6?TE=h- z15L|}=k&e=SQVs9ORc!I9yjEpmg4ASLPGYz$ zQA^S+tDV}){*K8e-(@nlPO~g!#JL2wP*fLc>Oz6qtgze6{w0FY-)Rq0nIjlV2 z8oVidK>A~2lAj$NH!dnUDkxf_qbVXMIB1O`ud_Qh$@W;*lF!--07(TgGdyV9(8%ba zQLfQXlsx{#++ks#4p6>w^4}Wz<=P|i7<-l!k|~E|P__~&yh4sl^B2<0T#0A_b6p_? zrP+d)aLno;$CjYrEdfli9GWkO#PLeB!xrPPrU_sTY^7$ggi!K%dy44X%v(2W&RAzy zyww35jOm%dX^}m3jZ{clau_v5;1eaBT{Ig9@?nO~CzTvp$>ac_RRHKDNlFzZ9KQk9 z#73OOZFN5$SJ zRsVb~a9`?%d1)&i{$$WUzjP2E_KWzm+h=R#i~}DfADjGI=GT1|t$S!)(?c6~{eAs* zpAAhu>sx&mwfIad^Btc@zBy&&XCq?V@0VP7_pKDtJiT}K>0+-r1ABcFF=p|LM|bBp z3?FfX(vGsyab7&Za-JT90MG!_+EKw)Cqiw?=djXk)t)hcm2x>C4_RN5qV(D~-h@g+ zkX!h%+W1qwaIu=cT1Q=UJG0hWL)5=L(AD^$VbndQ;XuIM{D=4P4|}A0U!MI(Q|VL3 zE1WoZx{$bD=!fdGi)~Mi|H$;vgZK9Kk9f4-Ai(0jfi{AOBzuh^eV^(ZFtkfxoKTT@2Eb${k!`P>K-_*yYJ|pUG3&ax^Edj;#$?4KUIYQK%?590s6#jYhrMh zEcq7z4Q4_I=pt4D==>e>)M5X3fg!uCz`EVJz#!sN`eok{9dtVJ(9gP=BJFocPs-MD zib2i8XC0?SBn<$aLNhCz13LorCP~aU8%xXq87u|BS_t%P7K=$bk0R4JDuZF5vabms zs{_p?ggKovCkterEY!%(;vP(?(XoznR8OCso0st9ln)-8KVihe$+v3M;;Faly%}FG zernWas}#!#IRYG1t~833W;Nf)#rYFk&BP{#iBqIZn`2ei9$6+n+rW4`^XXUA-h2x) zjFd}pI3b3r0yIYp%qnxhGNb<*f>>uVCrL`4Ehvo^<9!X;Cc0X-wF5Lsd%D?Cxip#0 zkZ`5>&ImBUF_aoh$ z0R3>Kw@QERorLpJY^9NJ5bd?Hvsw!+R2=aXzlCJB2;w$HUTW}-(eNl`F{~*^ zkqRUs$4r4^R!;FyomUcg3iIH7mC$&^$3%jTr#b7u54RIySyi9=1w zNT{e75CAvqJQuuH)tMt&;|U>-5K<*ani`ZOI8sDw7Kg`sgBK7^0K1f=01gHS7bHr6 zpYnJqM^+M9X0zG2g(X)8_-^CrBuPk@r5s64Gm#mAM73zeIZQnA_WQ&S1)L&|14;(x z3aZa!(zGqWHx)Ti7J=r3Y_N-XSi!5q@uQ~u8Yt@IF-6>`8NL3}AXDBNXk3I<16ZnlTGha@zWkJ>yg-PUyM4FB_ z(TN5wB|u2*!zTCPs^tDIB{J8H6Qz|XmSR;cP{5JXk_j%0*9sM92Ce2WmJ%hbkauK* z5hImSPIC#CT2XOv@KO-Pfu%*Qe-`6NA(TeTfJ(Dg=*O1hq_k3jAeMVv7OuZkBQhON9v!;9tb>iAH0d;)wC3lX?+3loq2{HYiGJaF{!4RDPgT zz)^tXWGqam%W}VC~ z7tHHrG9$=R6&jLkAd?6_&k-3fI@cQos5>%58<-&6|AB&+oh+nj&&b}mQy|cDqC}_i zEL2rs+u_mVQJyaBtR+?W1wd!=0MOij9H4)1ufq=X+z!wnSbkf8K5w?4pavgj!cNQn zC&dR(t33*}z+I^cvr}UFjeq8zciG5~9-6z}Tv0!K&zUc_HhmsG?~SetlJ8ov_s{cp z`b>2BOf2%5S>-dy?elIym(N_iUtTP|IAU_lQ&s2RDmwqvgnS3}$5795V08 z{W~*jh7CEySPlvDFcsG<;D0{Y!~Z_NsJr?NdeAt$yWg;0zL5|0=Kan0$Etz@eU>N)8ql3El9^Bn;7X3=pq7RWeQKFvs9UhbO(?%f#xz(J3yz? zG(4=L9zwRia~T~}vtrHC#I<3Q-U(aqtz*$d$D&D{ra?=l1TC2i)8M6`sW1&$HtpG& zU(I{viB&=BdQkv-noG(BCOEE=VdgV5d+xvi%UEiiD#lnXDOOu`cvL#U;|$846c*kr z79g0x1K|p4wxq`M{Cd*7iZX3b`Irz#&fus-d(dhFvB^m0S%UIJYle~5=?%BXlT;B! z6wpK-ZOmniaIxF0wrK%|`2@Ym>Rcztn|LW+v2Hd|0LNf4Jk18U2^qi_;JcJyON~Ma zp%k)Ox}aiu#(lh`wN7<&xMORGeZ9o5G8hufOob9uBL)=)vbP0jcr*ae=_V$dQ^6c1 zz`r38rICX+2bg{hpgR=%G(}tctL&4zq2t zTh^M0Xg{(={QB%9a&=hSeq})*iZ1bFL69D`eX$&%gw5RysiIpJm|ac*@G) zS%G&1wLlDE#$QE39C0>ztHy6txb>uQGid^jFHkhNUc8}+EA^`F(P`o zW!1EhP4gl*E$F{|=8z>bM=Y8-Z1K!N%VvhHoM~N$6|{8f6H8`&Hg(dh*WX?5$O4OWR%r33)Y=m3rL-+4NQR^rfboUfx1u&hG}M>{}YZU^Y~LTEn!{{S@B ztsDM#0J?}50XK^T90F8^2Ykh2RKc`_$3wT~N?eY}wlg%zmr{HhLq-z;X%tm!3vP7` ztfrl%21_Lqnq#yi_%bnmWQv&sW`N!5sY3GtiA-NJn1w3NUP5W5l&z8rf|)ukyjlt> zXH)>(N(!i*siMhBipcZzcZqVjqUA|aq0Lfg0b9qE@kE7aE>?*|B`{6{u+|bODXklq z)l*5q_-JW#48%ceJpQBuE@cTtxAIy|0O_WLT1CStwiv#g!@=C8ssiS;)=%6W5WF`a zvd+(uYtqsbHOVO^+KGG{T_RKY;NgpoBHQ2$KD=Cv%%^}gm0X)vW3$%FxR-E+nJbd5 zIg+i!5>_Dumj{Sdq*SgdS#W5FA95A5uF&>kRFs=VazrBd0O_fKKNM$JC8p8>5@L=RN;}Y z90M0Tv1eCW)u_Sy1#Q19A6Dff0v?9&BqyGx<@1#F6zgnb9L0nPpa3<*t@;&!?z8V3 z0u_Y;K>t)@yk5^-as~eA_B&V09jqMt)W|N~eGT{Z>;HGZ@cRP?clRCKv+uAjzGJ)e zHhuVZ-?Pobk=uq!&8U(@mE7?X%d$z2gxP!sM|By{|Ndcv9vBgE*HG>6FGre(%6&%+ zX8I3Sx&;Ju@s*4e>~~-n-=U8Lj=0}A<{tmh2YdDib>7!nGz7r?TCI480G-cSK>uG4 z(0uy{EHDLM91ns>XLH1r%LEnA<}*>UMc!paGx@2vaE$ zn90!@Jg^1M2mySV$52Tk4IEHzrs@Nzxx6C+yZ14uV@*JmPJb0 zq?$+x$3OZMtymg2WZ)u|+vK!go-!FtoR&n3okk(i1@q}9E?2T9bJ7Na%!mv>_RSY) z^Ewp24J}!Gb>^IcsNpO78S|W>m7)F9jC7`f{3Sq}^60=^CNNPX7i(hT^G{z`w+dxv zplzGc`ZdSD`6kY4O%QSa<4hLcNr2!oGg}VOW@3v2xnf2GE>937py&9(5w#z^acuE) z6u%y&#avxFuVUQTSeDPAr83?I@2{uDm)4~NG|(_S8hEd>Xd#nR5=gFMz+g0E_K)98 zT@1x0J*&*&1|~8%o*Zn5OZ zN^$@J?C$9bi8u5#%If*}utnPY`WvSvjxTxq@zpG|O;fKqnv!SHRkfBt$XLp-!f=OlBjk9XkFO`DmB2A zFRK}nlq3nKK7Jp?Y(xuZp}37`&62iPp96+o=kJ#z$)&2blv9ccPa@I-D2zJ#p)J39ll}7yK`qveD9-G zL!V5w4s`KO++UCp8hEDqCP2G50br$`6#f?gjT=7o%zd78ez!{h6^HBmy7YBA>Hh)f z-xfeK&~vUR=1P3Nh(~@c7VrqKB|KFmQn@mfsWKTdi-UrA+@-Yythypr1Uo7f8%~93 zlz|ab1I1XgTt52o)v~f$71IZVW!tT}G*wMd)q&;)*-|6njPKy7f}Jm7EJd8PfVU?2 z5#YeXtC7z#*`zs_GQmMzRwmERRGax~16u^1 zDo2CeXds-8bYwXlnk?C4tjZeEe~ai_Vlg*bMHe13MNTIiF@2?CvopsaWeRGxD(8|! zk-<ca6+Vk$iX<_SG^9#oUa*#Fm%$Ez_r8s0V`*-SzbThf-D+?-BLigTvvjV; z#nA!LCjWF%Ojm8OjIxzf;(2=-ACyAL;ItGlOd&%Su;v`zoFS6Q5|gMfaS8j4YsX@OQeG0^H+(td~?a!3d|r*yp_{Pm*THD9Ib(@MY2$oF}FB(Z$ZhNb}rPKWQ? zZ)w;waz^g!ecv5<-&YI&_)XT`lUlpaI@WE{o(Dg2b$_pr_`J;gVFCT|)-F#zIb!y> z^!@MF9~`#7NjZ4>1#OPlbyC>SrOzJNmsLA*$U#m!AV~*h@u0*Vm4u^$c$}5b(AJY2 z05lG``AvYv0Uo)W2+Coxlb53O+6w?(9ENHvKUEU|(3f5Peyr3swe?BY>h`4XR`{^sSp{RmHwba#;0JJ0gWbGhVTGamf z_i78rx${PEFL`WF=~MfQUUsLx(pEcX>$dTdoxi(F-@fM1`+GSbH4J*hIPxC9vG?{3 z>)yBL*pUw%-#Pefli`}1`XxYzc>wxh0O&$+Noky*r?ZuviAi3cAk1hUgd9{diI8S zqT>{QR3ePO=tTGf2I#Gx80ZSpmgk|i3&v0Q zK5Oe2L1T8?ET6d#WcA1Zq5jTr*J)*ggPDo}dnI*P@^RsNin8N;O> zJ)A@G#TG{jEvzvZ%U^gJWv8GD0M5eW!1Qdw01dba3|A;< zV2k4jYLmd1z4#PLk3q+G--ug}_B5jXE$0@@Ob-f5G|;7#T+3QvTik9qpef00<0}J_8N__5nN%y}F=0z$4BTW!&|L##9RQ zoGVz)GI z*7_QA1`b2Hd1(IuR8)#eD^PhUN{ZY5{IeU4Mj-Vf*_vf!%E0M0LjB#Y5);mBU1%1- z8lRg!6*bkJTeNVxnOI}Bqo!sc+87Z7H2%uziTl@I0XSh$g(YZ9pMF`Qvb0y9L!W`;z)<;oG{m#%q|mCVa5R=@J2x02{q7W zn`8gPNvNe2)w+TH(Vji%z`=@7K24GocnfacJ$&DAdpRLg@k$9N)&vE|5yYwh|I1S+ zpgI@Yw&8nlJhIbJQf%Y1&%_X9ije>hD%VWGjjAB|N&*Wwrij7KfuM|l0GCC}A?a-f z!{JXp#J4?m8x(*Pn#tn;k9YtS0FhiXQ6|W-1BNuX8sA#Ee#nfOQA-zwty`k5p2sep zW?Q>3X!*SGCG!R>nisivUg*+!jurFZCvojO0O&#M7Ct*?$_MYfJ$LBXcuQmzZEG@# zZ8Qe}T_xfW4$oNMIzZ!8)3vPPNlqd*(I7m0qbFmDlCA@Ep(hXYB|U^AEMKsA@wXE< zd(}?Ew?K18>Fab-$EN82ki6jANnQ@VL*2Te4$yc;|Mx#I1%L*6&XL4?QE!CC01Ybe z&~vte0Xj=!^8_zIvze4Jmm~9x=AuBlin0{5_AFai-k8TPZd`-XVo`3&k?+1t;ORVq z*k!d>7)%95s+`quNNyloMroy-hI0@xVv%MoP!yo{e1Y{Glq%qfJl2%Q6GbwP9?7G~ zB8n=fDVNz?Z89_h*|Vl(%73e1-e8fpIzyXZ{s3)=MJe$paqEe<-vu_Uu{)Cu{@DVR z!;|@xxqu~eR5sl%CRn(1k*}lF7DmhGIk;r7jimufiP4hJI+8T&7K@P5UyTv`vPnM| zLsS|_uqs7DXptCRErjG7!LV>ynw-s2`3zCPv4u39tEd3G$()oeS-`MlkW8XPr#Pe} zrz75G+rThMB-2XUcLi!yz3D=K2J@1nrUP>`REkYZwX#{PxkzBjoz^%KR|LscAy#3d zC3-8%B+GJv#hFLRK;sN@n4YB!9*1!JHvk$e>1~Dc zs!$v_*&z7$CNYa}>p|%^ht&nauW77+M;>8uTq6MV4naC5sApOAG-Wx=MI08a=hdF) zh5If^euc77pIZ1uR=UrZ!@8{vo4!5LeQ7|;5qsmlk?RUx3jX@3Zr`qXcy8;1GY>vE z^;p;Gr|u#-&<>TJE*C~hrbOOzWCYi zcjYt>8G6j59;Le2`7g=sd==LiB! z6SZzTCK^y_7;-tUmGd|1sVlX8t~PYP=r&w#8(p;Zv4DsF-0cyvr*Xvnfn)DuAOCCM z(1!z_=+?&>XuA8e_kE8vj<~Te_)K{>)X?vGjrmHYc)2R#$GVX}Gz>mlA9kkRa;{Z7 z*Cw598@k8!#jFX>kc8pUz9wH$y)Tfw*WdbZz_5pVywLTbk$oQUoA8e1`q43G8hTu* zH37<_I$z}Kja&pO4Lv>EmJ-q>TQ&n?dNM@_Wef`lTZ9wK|GplCK+m2oMA*{Z;S|i4 zK9A`EQeN^5C4hUPK#h(&GyQT}!Z0pCWLaDrJ_NTwUj=~v z@%zmn*AE-dwxDKIdD@is|yInaawU+KQQ$-@H9{?2vdt zEheQRMahwPFlw7P{@mI%=;*PdtG7%Og4WvxqO?Mkm9az>vjh>y9-a$Mu_xd}doCO) z2)9cB&jH-61YR!w@O9MYu73KtZL)m@KwE4K$}h-{7yxWqELq_}R5G}imCG|uN9E0N zq03n&P2$&$7=-dOQAz0rN631`UikDgsIjWy>yKkG;VE!us%gb#;wlWd8)Bg-fGJFu z*gA`&oKrGH?Z_t|qx#C~uRor_GE1CR<6AWC&1=~ z5?|#>Vc`~(M#I!Zy9O*ura9Ah0?QP?V;cs*N|ef z83*Q;NJ613mhmdw!(4+2muFFnrrFjBU!ViKc7E{5N`E$%v7h|pTU1<>FnD0DWOZxK zT$0Q*1ypjzD%xB@NmY!sMo?=+p;};b6k$_jBq}RMg@sEUIDn*N^cb{zPtAAZ0c5Kw zvepxa0B@FyRdGHIQUu(D0uK)b>aC3|dwJd*)Y_c>@=N25Wa?v2psMQAUr$UWgxo+z zf4?euoIJ6S;_7IjRD?^wWC`;XCSx7E_yJsWAh&z&e01t0s&7u|Kca-RR|nvveiZ^v z7?MFzF=l$(Q_qw%Gz^_JJ#yxh5o?y%7fcOaF(-800?X3r!K>zmt(+UaqFpc_;!*Ij z8Bt4TJiT!8N8>-4|HRYL*05@`wx3knD7K!X$|SN>!WqzO;KT?K1jVBojH+iKPn_q3 z#GhE<-)d08k4G0f5R#yxxgAA+=YP6o(@R zJmd{`5+^F*Wl+a;?nE5}OFD*~=*w>vwj{q_`i32+_z<4KCSeMPhC6)gI{$JC01d_& z1Z5204GJn9Dvzf!B`QN@K)DhJR1GUb(Zz2WMl}CY$xuQD;H3DRvayF>TzJH#Z5z + + \ 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 0000000000000000000000000000000000000000..96a12780f8f042286bf380ac44bdf3c342d0288c GIT binary patch literal 23708 zcmds9eRNw#mA}t%Y}r;E$4=5VNn6t|@@dCOnkG#eD%)}+SC(8!P8z4wmE~t!i7cs4 zPq7oAP)a|5b}1|^l#iCumM*1T=obMBENpkT(51`5IdJxr!&3Gv-=%PtJxk%7?e6c+ z%=?m+CuLdqgPi!iH*aR{+_`h--aGf+r$>KDOG^f=&+BGSX}ae~x>VE+LoXH#v(%&K zXR>*{XIQ*Uh?gY(z5ZVsXi1dXGKINfHm47!&9q6Yqes%m(!JS2Z&Ek1>0I_idNQZ) ziP8$yES8?rljZ5@?1D+1vT-h*pXp7SMm9f#hRak#V<49IOF~ zCChVjY2$cIpGR|joVx8-2ealZzuT{;r*tEfpR#(jXG^K9nbTFD2({+)X;UKFPi+Mw ztLH&*jEkzGfRLS;1=cNG5IFXu0z@_A20#OSgBw^=Z7~Z)3tId9te%e*cm-3(i+Yq= zC)1guGX}^oWzq#v(7v}c-Rt3tUdb1|O!oW~)@`|@)?n7qGmMr=+kHEl7^yc=&f6Wr z`SKj#1SK3v2VVY0`<*0`cz2irQ$V+*n`Dc>DK8j7O|`?t zXa~}{GHABVceY|#;|_PKRTV7i!BsIWv%MN?xx=k$sJ_}mjoKWpMrtcbYBML-g{)de zZZAL_rlt~e2N>(3T8w4!M{`N;a50m^)MDy$#a!BC7`?S%NRgFNJ+RhGP2Tv5C|%yY zsR(m%ZNeP%>}fHxg(A_rn$=ktjT6LNvY5-7pE8g6k(tfrrVKsLoU{tl(p@c0+U$!H zNa||6XQ2pA=wj90!$PSiWEkn=OpJvazkT*S&!s=QgtQ1Xma->wW-_ArM!wn%M_Lj8 zZZN3FZ&pl*9uFZH2>CaMfEd0*xD1jcE9p#1hq)vE@#1JvYBceN2V&!9n;*I^SPVri zivw)E-%f+(nk=yT=b=`^Sd%3fD6s7;&Q8ypz2Xh?zBGvX-JMpr--(6{Z9O)ctQbvC zO~F7ismo>0Me?RTqZ43BQDUeOsQhy-_OUg~3{z4(A zr}IpoY$<}tWivdhEud<)G&(gMo}1LCrt~TGayjHAEaanlY8D%PW>&op@@wd-DIQb3 zYs;3#@>ud5%y#uk*p8kxUC!2|eB)lxHh!(vllx+Mni)=i0sLFbo`}kZm{J?}QFb$f z0q1qNUa2*z!;oN*3XVlg7}7_}MTQC)*Ibmmr*MVsYouq4baB=M>ey92X6vZcl<_Ts z;Q35}*;qm5S3_RLl?Jqjj2*(JUQEZJc<&`-z$i$AT~TD2RaWHa^+i~)Y(ha$v|tYAF9dN@`7}^8bd%~n$^@Fl|32=~U)+m_=XR%A!vKgmUss`qo4$E#z5T-OvYt(x-Sq8-^ zAr2x=!<<1SIwkbE!ZDp0nOpQjdmZhkV6jlj@+pZmK8|xG6E;U?mP-*@I?pG}2x$xW zI}U4uPh%Mt*~~eRyDQy?7+5dIve@n>`L7X9L9U~Z)eFq;u?u*FvoIviDY|>eB}et+ zYG*Xg6{dt>!LDxMXT>6$YOm`ES}V?I!&ZeP7t)IXH%IAA*DKZ+34K~en~bG6R=A0# z2Cd_aIqD*{8oZj3$w+iXX_ak%3X5uB7S;xv@wHBhqBW@LH9i^W%EN5b3XAl(W2XY- z_F5+cWth5pVSo-7uP7qaAxNP-ECy3FXe^h(W|j>gj+$feiNMrThlF#iBLXSAo=Aw@ z6+Ed6*q##>ov$IpQmdzO0i^9B?KXx5TdQj*a`i+a91W!+2f`DnIR1|+_*?yqBLTl+ zZdJgy#^C;u)*(zcX+{b=mS_CMdzSq6gL60c!e}0*Ae3^+OlD{Lvu0_S+U5#&X`%Rz zyWjG_i*3V+HU!{FWhA7DZ;miPy-%N^@f*e);r^6MY}-riro40~^gmLB87GbC7t z(<)YmjyG<3^sckp-v83O8`xY9T@E4(Xe*p{%2arv+j!e|KJxol0B_uaR}^-&LZDvZ z$g&6u-7z8CDor_F6{!9eW#3_+lK<{z(aWx&!osM|HVw?kg#otNFcc(Ht+NLD*{#vL zsujY9i9E|(xk&FXDcUvFH7_4Fo!*NTViT)K1!F?nnmd6n8?c74VP;#b@V=VKQ=%S>I z04ltZJeQ5&jG_+zYTcZH8QHCsXku<>U?cWrFK<6zIpm@d$Q_lue7*^cc&oc5QCr) z=L^r9$`e2@`U-ZE&UEYe2Zrc`)|WQBz0kGXcEbr9JG&2y4PkV9&@xMPUuPpny$qV^$s~k;&8lb^Q18U)e-*@nV!XZL$#XHOF;~9h{g)rJxDw4ogRoK(+&5xjA!>$YgP7HWTTI%Q z30a$3Tw8_9Wj9%I@KikxRjIJBJZ#Ns!a~uxo3s=fHkWox4WY&u({s6h{dT_c-8wwl zaF~`(!d_>Kt(JKu0vBix2IMG0&GukA6Edi5sHUfmmC2aMUEjaq<=daX`C_5jfubfB zshTsX-c8Bpp`omvb2(a9`AK=iuqF$IqkLqJ>c{k4Keg*@h={mRDm#ax$MRX2XzVLE znnDmvH~VRs^9EJo45KV84pv!*8=OMY`3xK|Y^ghDEw3T0=;h8Z!Z7C7yWq=lUi0Wm zt<>Sn4tuaxx}_DqM&%(^!=7cM9ul}M!s`sX0mn`%s$r+QstwEwLZco#eZNIQ7E7WR zq|rJXmVJ(?7%xg|>^3R5gUoDkQ40rQuS?vbGh9o2qU6e0IVS>Ca3Qri>&Xq-87$ra zPgREF#Ki1`Zy41pRIy@wp%!1yyBzH6dmd1mo1s_Avs=FQ;>$mI^_r)~_kGFu^7j3^ zETO?Wo!eXT%$5(Qlw|@PaVb}kWwN%4EOS?QWSP6dBg<5Ug`q9W$~KPngCdTQK;k^) zYdDJY%3@}g^2>7~S`v#NJPoVHSvU!c-OP;AX$o>6~37eE%&Fka8p+0a-cH+@Wv&Yxc?q#vEB`(9Sxo-U?U_0UG+@ zX9v%F-0j6BP}X@UYkLX#LGYYWjngYNx9V1n)9<~s?ZobDfB(+=GdKV47d@e${NFkK z4hAnS@2bM-vbGARyDL1L?ym4~x~i}!U~~Gr)HGc;FQ+qtZxd8|I|$xd=JL&Wl1lDY z5P4~db-W8ev3LrFj|Jh=?&&Cg6}xuUdWD}J94GkTM{pSJr!(duDieCCP&P99NEY$M z{7ecwf^9O*nibomX4F@xU~G<#>1+-{)ZsrSLKh&-a4@bONS4>g3BVubYz{~FY^=3q z-72Sw?+MZ5>&v=vytV`DDsIL*9x7E3rytoLG7Jp`(O$|J*&@QyrjxV)RPDEzY)w>? z7KlCE69Fhe$GUo2je(!=TQQ*lrR7)}Nk&L80+0>0D0M)!1&np4U;<^3?5pj`WQALW zi-ct&xm+X2LCH!!a!|5T!`>e}7u)zBMN9f|fN^u3(oaBe_Q6t|gQj%3F7Piip|E@o ze^vERp1zz%G*gLDpz506FzZLVlyCga4hzvCsOl)! z^Oz_ih7fwT;;tmLwI+_9cQrk=_SbNZGpRih9*rkb69e&BDtvWHE`_B020x~ji7C*WRYtdiBx@?9`@ z=3}WEcFQ~ixUs4`qtb)$3Wt8N@IVU5if))P3!`*>t_Qf}Wv-K_dxz>i61p059gBGu zz~xp}5qeMGPStlXlnPBG<70_|uzPI(`G_>Tq|hB6pcX>Ofkb396%Bh3>h9<<-ON8YdC;G=?gI)kLDV%&l z4{BX%jsww9GC2{AhX%tcokhZ4<%mq7(xU}V#q)qzqd<%$q7(Z=OrbTu#f)-cPQZ(Tu>m67B`bPg2PnUVq1LLDb>Y&(o;y!(~SkFOo@e9-Tmp( zEM)l7<`=*E?CR^jwS*dm;LrefN^U}ivpEYJ6_NR=h2k477rJxFd;oXOIctFG(pr#+ zK4=tX*y8JEig$X2@j^96IYdD zCuT~AwnY|3wv8;r21Dkd6Pfu~a_iREk>S~BYNl`e;8o^G>gbL`N5XxrhqjI9#;+Lb zi_c$n8BeBO(@mJ%0)Lsa=Q^rys%6cJzSb$-n;k4%loEiC3F88A`F(W%PrtC^LCc2G zFo$}>DGnHCB8^qf-7xUX!cje+)cJUW>}M0^9q-6qkvWMtJBxWFjDZNEAx!$N!>$(6 zu7km+nRFx>jzTkbPpLKTk)~S@AL}=_wp6|r2hrA{M0}*OM{7I*vDn>zsIo$U>JB9b z*q~Vg-ex;fY>0td-*o$mdqY2c`OfLzzx3LFMP^_x%CmQVc9CE(t~yGDVliPSunJ- zd8Fy2bJY!P_o=E?(9S(0K1fSys@c>LK22C%)J#s_{Wkv!r*csyBzMx=xxUhIgx!5+UZ0mXg-G>PcIx`R4ZIiI zpvA%yv9XbUsK>eziaj)~f>M(-NchO}ff!IM`SsxWuig6ACzHSX^qa1{;1oW5%xG6ldN~>9o{wX{Cr^-B+;fX|w9Ic4t$eH{BJMtEuZuK2`zwwLbzLm{icj3c*KYI0PLWZyvckh-vYV`M2irV7+`%@h z0^@oY{x-(M^N%sQ2`8k44(t8dCyi{OdrI#PO9yoY?RkFZVt4u;BLt_2%y#iLFq@am zx%`j6tzsBR!wtX{gClS#T9?4C_;6A}^T2EDht~)b6VqMH9rd4-BXdaCkOOdJdy8MN z@Bby~1@XdY`owXZp$hr1VHAuMEN1_lms5Xf#neUG{vYsd6+=Kq+G(WKaE}r)LG;QT z8P^9+b$?IAz&2s_&i7VgLDa`lduoTv98KtSR7adYM$Qi7YyOE+aPSG%7zdFD(wSKi z%M$rF_SaR63UX;r|9dO$*i%m`Plt;`)k(9ClX~1?Yqby+-%|a7UppZ*46nObZHolX z8-->apLZv1C<@Cz**8y&^){rZ!pAH=m2w!@q}{bS-qOlWH!%Sub6@OdH@e(CSMYai z+03F(nU?wqKg3j#l#o*-Z{cS}Z2ts))(^dKO6M$QK)#rc7<*LQ>5L|B%#pj4F(9p&~vhZ|rkcHoZyR)qTljIA(gphf)jNRcl@33D)@a z!#KwlvkQ7|L0JDP#rE;b_I>?V#tZuj+X6rP_Ivj~$>)8A!l-3laPJ4LZ(*eBQ7W1- zc2ZvgRZe5qo;Pr5FCw`36mc&7?8DDKQ0P9WPx4G)WWnWmuwWeJEM&dc@>2Jfj7%^8 zdPDELK8XNkFPujrl2+=?vhFMOBC8eOQuG`t&cGuf%<Td0JX=>E8mjgBXG+MHL!vT#N2k@bBD=nc7LAsDG zYJnNDDM(AHiJ!IvsaZbt1}Pw)`hwIVpSB07RX$xDq&E3|yJ})X8?q9QHB(t5 zkr38vp&F!lS^#(80~d`hQlpE&bA0j$GC}ria7CKct7bZZIoG-Q#LW16kpR6}qs19q z0cb-~xgr628}Rc;&j7t0uhb5Z;ypm`fTB>ZY`GqwTU>7~fgYgSoVT_l574`ux3&lm z(Cyfcp3!aD9iYDeVbz!(p&g(*vHPqVkF*ZZ`v-WJ)+0eTeEts-Ru^w*fq;viyxJ_Gjg zNY(&7p^+zq7NDoF4IOD3pwFU(SB?gBcK_q&EwG~NBULs9AcPk(Ix#NMInZAbo;$ST^POzR9QR2BNhWC#_`Ub;m13bJ^AXiwe;HAZp4H>qemCS|& zqv(*qkUubF&n84`s0mLEtcS!MT1ecXgTx&gNZg@+#2wm4+@X8K9hyhnp?Aa`T1VWW zbHp7QN8F)r#2wm3+@Wj49hyemp=ZP$T1MQVW5gXAM%)Fc*~^!Ge7T%2{d^hZ%Mf4o^JSPXQNG0ZGRl_(Us8NIz?ZA}GR~K4_;M{@uH(z( zopdqXg>f~~ zXFuS4-^r|8-_=V8Ya_{sYHl-f~B zsM6-o00}8VCLt^s!3Mes1h^IG-$wiCc1+<8@XC8JjrV~E?#5I;Ksov_rt=Yy=VRz` zKfMDybO(I`;@}ZX?Ng}vG^Y0%`Z)ONF?t$LpQmT&s~G9)e-4Cv-a|-HT13d_LC9}_ zkpB!qehY;B4hZ>O5b{M3@_QiU4?xJ5K*)awA%6ry{tSftISBa*2>B}z@;4yle}a&& zf{?!hA^#hMd<_;;1I!mbU%c?=K*%~cQtN^PZ58d+&Z4lkhW2ac&{f*Gl+wJ5Y?$i2VFb~mV+7%$=l^|pi hg#0IPJ$^+AaqFtyIsB}LpS#ueRkDjbqdbbn{{pKkwcP*! literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..ad55e5f457022a1692f455e10e1670fe2007138b GIT binary patch literal 25898 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 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..f58cc2169a48a11d3e007d415076ac87fd2f4395 GIT binary patch literal 227607 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%0DZ|UUm}(Bly;hP9;I!kxu6nB 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 + + \ 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 0000000000000000000000000000000000000000..96a12780f8f042286bf380ac44bdf3c342d0288c GIT binary patch literal 23708 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 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..ad55e5f457022a1692f455e10e1670fe2007138b GIT binary patch literal 25898 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 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..f58cc2169a48a11d3e007d415076ac87fd2f4395 GIT binary patch literal 227607 zcmZ6yWmH>#&^3xX6o*pWT3m{|ySux)ySr=gV#VEE0>$0k9g4e#-29*Cz3*M?en?Kv zhh$A=<~Mt0_CC={3X-Tu1V|7N5UA2pVk!_2(0$;~bqG-4_nuGEZSV!sRYg(+qIR0_ z415D)DJ(Ax0nw0%{9z0WzDIPD(sqS_KpXh)1v%naZUzAXDv=fwR`W8r$c6R7k=&@i zf72~9kkS1;n*6v`TYB8Yl*muzhpgP7{UKW?K)@)6**dYbBE zt`kECS|AvAaEjm$gaeQYvF~L@aWkTfUQaL;8fK_c_CWKay$ND$Qy?<2lnd8r<1j%y zdb|Nv_lQ)cPr=X4QH2T4*b9OW!9@D>YzkyR3pw%uW}}HCZh4&9Qfipm?PY;gvQP?C z@dpoiRf4Ug#uk8)6^NePA)}vUohF7_=0o&htx)RfNa%V}jeOjzgZC+jZS_iXXOW!S zh}n4m{+O)q*h1EoXZTIq&zs+1DGyScuLfsrAG7i06Fb|Nv9WTWDe~f6YP9lWC;mr_ zFC#19HPoBkmxD}q0QBNY!OO72)i`kj;=6OwiKqWqj-ii}9gXR6HaMI;cHgPPuoBXs zSP7}_4AeJ!BO_Z#(@Fl%tQsGAGoI&R7SHKUqpK=+NSN$E@xvTH^+6_!0Or~2&3k<_8r^|GLUEN0R5&o=k4*tZmtO-+cghOC+gwg(}Ok>XWr!tF` z9o>Idwd$CU9{neds13X=8`8_33a&#J1wx9YZn{R7gzw-+_=;z0inexuZcijUbb7Tv zMQ-=RrGjf2g}lAFY9w$2Y{hYhsmz9K#Br|-(0*m8D`FP1AxF6zGE2)!;h5+rEe*Mg zg1t-)_Odr>aBZQYBYxI&kF(jGHeJrw&$Jg;#0Oih=KnFh%w{(%>D9R=GheRdhTIp< z?Buzw@57{uXpIWE9tC-{LJ^w?_}2Ks2!#_gnL}l!9?q>|es3wEp&r%uoTB~;_{Qp( zp7c7EBY8E_q9U4XyVnLn0v$||{pa++w3i$5NoaljAaOHcburw4Ku$CMWgA%BJ+2h|UnNe`8T zOhZqw7yF{`{H)%Vk{ArWHQuX>cm#luCYf5-ll5on;_0iqIqC=w%#gI`8i%MR=@4BD z(2~@HnfkkrUt-DMB?7rv0p9m~6eI4CzcVX;g0M~j_>BwK@f2N~pDv@l(-XmWjZU;= z|2L6a$bAR*kAzfwk523)s|wRgEO`~n-$rgn^mwjZAZF*$`Ni7u=jJ^R%YsC z8TOt%lY&=4F&P~6QQSJzwO3j)UO*u1F`n*aA3MD-{lO!;Zzj-ZGE`qbY3N8NnSqgv zjv8u?Gd?gKGe; zGM72yn~Pb19^D_IP}~*nnuf7X(zTyPpQ!oD2C6m!ZH$?9{e)}IKK~_$c&nHF=(Hx{ z+AEOmKTq$;ul*#ArKyYeuCGFF^wRk+0nCQPNZ&+rX;m#TwAIP(%4#TvdRP@3=$NTZ znPqRq9@}1WG1@-Q`=24~(wb!8t7!A*#2TpaiO@yQNhRq?hFp?2Rd*?j2waPhDul2{ zAXw~jRkYBrAxff4j77Q9N-4DEVIn=@N{8fDOQc$DMoi=fRq>q(t{LJ_G%mf}EnsXB z4j{Can`w2V3fQ74;ixNvNeXQ~(3MYzc8VF#K#t)0xf60?kjNwhQtM-cY%F-j9IPWn zt|V`~(f!{)U?Xm$UrSLRRULsD&FqV&f_b_#RA~Ocp?5VKzH>3#rYEC&^7+8k=Mo!W z!&AtLU4~-NJj^g{h%VqrhAGaWarr4N+8J)rI=dJ3I+LR$Zi)T3{_)1rT7O8QWEj;h75Y+$0Z7M6p8KK=3@}LW7&-n8+&qu z@2`ejQgO4PVpwyj#Pd&yKG;{6No078Ul%^LIQK?m;^=3E=s(b*-i78HQ`nQ!aq!^D zxgkwsqK|u)cZ=vXWSag;NsPk`nkZL8NF9~13t6z0MVqa5VolYvJlwOi=(+5>u?cX_t}zyu zkOJSHYa;UI11)%`5JxNomMo4lH=dfDi%bnYge}vlhC`$%9@B}SW=`D3-GrcMNtE_j z*7blb!flvCx+Y%fzM-2%fkMTnNj}A zsy>X8rXMk$S-V^oqWIITSxC%wR11zI8wLr~?Jff@>E+%+Lw;umj$zHvtY$+2{5MO3 zKlvgGAlLL$)P9KsVO8#0WRs-2=vVstx4(YcuEngZga0PGC9uxvE67vHZ~~-Je@xftG-)r{C3v&j zD@;KtMMKYz7>1fLu_s%{fs4=t22jR@*;Nd(3UP8>LJ&R>jvj*|U{fX;;&f9Z z*JPa3q$ze!sJ`x?Op1W&=w`UDjV2b|*+Qb>M8cR2lxgFLG}t7j^23#D*ggKu)6@A& z)f!E8G8X!6P*K{}_$L25Aa~BVD0V|4big9iG${2Qv&Pw5Hh+x~t;%1g zmYIh^)0*R}UIwo(l*FWjZlb#faTO82CYL7Uf-Mmr=eqE} zmcgPa^2BAqE?*{3mo>BIFPJDS&1AvN^5*)f2qQ4zWc?DUe-2ZmShE{q%;*okB2B*F zlou8=l^sLk+?ON*Fy_%llW^W2`!rJ(-ZPNdNPz_N;igh~WY!EmHKkc9xmf6{p)ul02+%-lBCGH{axWMFT`tLRL=HoocnvB={5 zF&jk5%xXqJK}M%RS4TUW!ZMMB$VST3Y&OFhjBBqtuV$1=gLAShhN;FqgT$uvJ-D`r zANuZ6oni~Juem+;54m7d^%{S_M+7@+N(csQCsIsGU$3nR{6O~)Lnwh5S7<5BBqZpW zUv9 z#6y9r)nZ8;w+iY5U2>(<*G3;55e+#J4I#|`vWX4+Em3+UENzyba`Ch76v3GLi*A3i zWvIF9Pq1ZDr4Af03%eNy=iFN~071C8-w2`BUrSKGs@`2z=Pm?{X0fuHz8x-pO-;2_ zP{?HGzIq?K{rR2BpOeP?-{8X-)=z359{YL^bUHlUIo~?I`E(FOzI3A59&Jxe^iS!Vo{Yb_-(2jSuP^j_Bqd5p8fGjr z5b?IUJ>5HB?H_DzO>|^@FOAG_<#aq@>}AZ=QJ?E5LH4`YLv8nXbUNERUL4snF3-7a zn~va47%uVf*gfYZ?Dn+U3iUpd4u1m_-U9U0{p{t>wWx zGKLF3ct<)*PC6U>D@#<+w&ytDLoY-NHwmdP1e~V#C6A*Co;9Nv9m`nLAH|%K9>f5S z!Wn}|Oy0%fAG0P|%s>4qsLmG)CU5sz6Y>hY4`ZAzZZBiNI+~02jkn86(weH%#r}+oVk*aiO zYO?2do(Birk($T)?eD{)j*7^8C!~e%^Qj7DRKKOAc~Y~TSQ*YT;=%^9q$8U!6H2KG zW#f6%vu|W&E|_R;O?=q6kEK*D_6EyE5$7T?$%h`COys<6KGNgq)*l=k4@#7qIjlCi z2sXM91)lVHEd!joW^}BxTiU+!cAn~Voo)DXIGV4t$LFg1!k>FQjklszay*II!vAUM zsf-V8tm#qL^_}qWnA%w5bab>_LlaonZfnqNZPoO`r}+}PTiftF`{HvGK)fDY8^NOB z(X`cr%j;X$_KdXHA=WfZ88W3-`BS|TJ4U|vRa3-6%pk!{sDy&?SeC?G3VA#UrwTke zwvg+7q$Twhy{`N+?nSJ)$yX{6x2YvdDS%)xi-z6TB1S)niJH4e#IdSiOoD70d|}dn zBv&%rO}G9D9(Vq$YOvqQ=tvJbmi}7Zv+gKJ$v^`15*{?lf49QTV}Ao0BWBVDq7EoQ&b3=HhIl#5nck4)fN z6=N7C+vZ5DR3HKLpkP+kNuT6xo!yMMPN8>$pi+VPEs(|nCxW}(p*#keBigB zOhF-9dK*nIuA=++152J6)g-c%>riwjMU9~ZRQN{PxfJWz5k@u?d%nDl$`5%;G8m=5 zaKeDiX%^$d%-o3#eOcM6A3MILD_1{X!@u9%DPrRh(a>)i{sy$Q7gW>NwbKLI>D$^V z>#DgdH4Ub>H>>XmfB$u}7S>QURxno9P}jx$;s<$-xJBx!&`CW$#?#4fy=8`>*va|L?55!^S##q#l&Y{0eP~Mfvddy z=OZ-=R{f zbxifxqEtzHw2?I3ZuiT#-nr2Jj(2;iFnb*_Fegr7B>ZQ@GM(P>L2}D6Xn^Acq<8J!So+~=o@7_eK^@+ z!{`A|I0$-12dE%zA@qSUl7H2o=2S=Qk}Ag94cVheeEQLA`Wf7f_XX4@EN5YZy(UUttu7R0dB7 zNl1S_-VxYp|ASbDyOfy0?zrZZ3{u^XM=#YU6e$r>Zb(w@V7sfT7^tK{gcxBSM(bI$LroL z-(ADCye)BGPn=)Z;|x1lZDrL)p4!sd*4ol%j952yPL|f&4p>y;-s0h~;^7_Pu->q* z+_0}5uik5~-rU|D+TI;&9o%2J*R;9UvO2hvQq_I|NEyd%gr2{^dwiJaT`R(Qyw&U4 zF5P^lHtxfljrg&+M~UYzJAS!%7%Iri|8n{{lV`s}vi_L+dAW1Gqi_hmZWAjF@j`C^ z_{(EJ*)KCjlY;PV@6Ub9*H4cDfVTI@p5KC(M-S#-MvnD=OF8N~k~|wT=*~P@wTzz< z$eg*_yI=*pm9y0<@> zx=>w=nr<}CZ@bzsHDL7UG1NSLL$NoJeF8WWlW@G6pisL<3(cu1$eIdt`eXTQO~_Lc z$5stQbH#-U#LdtcDx1t^f;w#eCmFeF{zEq~Fr$1KB_v34G2_EI?Ogpyx?^A;)dstd z2Yo{=mxB6_9_s1iqK{5JQdo?qkBt7id=80bMPRrVeoSa8Fc%S&vQZc_zFd8GhQh0G!i*xpdC#a!ahj`y%0(sxTYDSfh8?h?sq6|Yv zhBg*0DV7p(Qk{oWVNon6L})HekRUUOy+V3C!a~4ux-!^}bspH!spu`DZ(6Q26+w33HW`(5aL5*nK}SJCCspli zvaDIy`*8_5?!!2Y)7n2R1!x(&n=GG?fbY{p0)EGXx2a`{M10;RC&?5;zRyIPfu}dU zqVLZnoBq2(XTd^;Um?XSwpYm=4baue{WX~Yh~VmeN4Z9Tc=@fW)9X<1RYvvft|lBsrgoG`(j(L62!s_}>(0NgXU%EmY8XtAEGFiWB|G|8 zswPUd9|=nvGHLna4}^KI`@J8FWW;3gRC4%ES*D5C7DlL_{G_GyM| zjo57(PLfwGKX`&nRDslMmyl;5ud1Uej`^0vx>F7AHamvZD6k4MOda%C#Yj@gkRDu< zb@+~u90;zp2oe?T0@A{?=G72gtvMvYV+nO|?b+QVYRrs{ zD&Efc^vSiIVp_e3?z~zF@XWyqcWXK&ZosA)p;bUV|7Jdl8^}FInIVqg9m0~m zP^(g|xw=szpW{OD9ZSEzJUFkXsn}=glisWljpUck<*4;J})n~q5wi} zH#^WC#ZhF!m4KhsOz^Y54e;mt*;Z3h17#muSgOXNd2 zXR~fkA-@3O`sIP}mLTz>y4*SHRl-JPq&w(3>I(FA?fnv?M}S}x7}}o;`uQhxXw?H3 zYh5?)^5x74FwDQMWZ&K0!!P;zQtfn~fJL}~BSKJ;Msqjey_7%*I)PpHYZ@&PN-kFyML?^4;n^7bPr`pl!GR{~x zM4&V}FW(~3nWH6md1UZSIWSPvChRT)+C8XR1`FeSNKo)tUk5Zf+C7DGrH<~x-g?`N zUj6gK$driP27euJ-hVsrrS3OxyXQ)|a*)Ej`^@*tZ(W;EP z3)*c&#=NxbwGPuV@UIXGc%2^3ff0Bp>1sna;9o}SKm>~Y-#<6Hprtd zuoRpo9u<$u-o!uF090-$TR2P}+M=Io$qyVHj8H!W4MQhsQVjTLv8L8W-hz}gJ?Ie%s4Pk*t8B?uD#{1IHM zz1!AmDdaK!xi?ySuag`OfvDZEB7u9o&DZD!R51XfZT08N0(n&msCkrc7$u7wKuDIx z8K%6+QFNK;WBgpYgfsFi*dB28uLYT^OO}7V`D(N0`3rJD-rYdA`M0(!ZtvsC_-~Sl z#650T7in}EF0psNySF6d2z(zdq7N(;eslZZ4ekwODCS1E-G;o{ueTVqS`0mOG)W|U zQ`ggRyBK6TVf-DR5Z~z8Y`fE-FRjgTNXXR;x|tL0dcLCF(w=W@VUotO4QY)eq;1RM zI?VkF1aUN7>#Dv31pmBmHg=;ttOg7zf{5pUTWdx1rD!kD#gHWO-wXneGo|5WIP`dd z_5t(bwj=3VJhzY4dya{h4s&fsk*2=1fxppj4zu5f#Ys?~-o5PVJcl2>EM4*gQO-YJ z`?jmbpD(?`;szr8`HSCmO?|ZF{u#5h%m|J=R&Z8(h6?N3`?PtUE;lNEn;A-AB-45K z()iwVm~ns6@B&D@X#N;T)}Id4G22t#Pb1R7tqp`WW1qebt?v8d!GVPy>fQyil61~POkAnwX!ph1i2 zc9RGU!1n^y)qLbVo`Tm9%>uid|UfsyH;P#?~Wpjn8NLK zIQQp@10j$9zr)vsGN#<#*B1pT88u|0xz7BZ{@4*k176>c{jpF0VY?4-{`Tic=}g|X zuNVk;5-7c$buhcm@I&C@F7({e!2m%qdbwk*5iL7&GVDN8fuzgN26Q&?u0Rwc6~CA3 z7QZyLA^|H-NK;1rCGffH6SwK@!&PMlP8H6c$JNoRk+eeLLPRa#ZLQgdPd{LlyNqBu>gQ_b~nLQnpKiR31bYcs}w zWc{||vI zu0a9R{oeGhBE}8XAi-s7HGb-uxg#E^`;ct=(a6{CDgrs-Z9Q zu|%X(%GpBhqqzmE)7l<3nUgP)-9;{8krM<)VYaq}i}J#0axf=epCkdDOm-QMvi4+< z&@NT;4@EF0%nQOGx(vQ(Jw>=6KZmAQOUzGZms8|pU@9Me&E0^m@!U{EuPDRQcrEXHS~;fbE55o$!N?b-qt|y$$HMVjWWa$=SNoHLrpwhR`@^ouP>pZ- zzRytZy(c56+gbgcjNe0_Ct&wU+yC2h%N*nh@fMHYx!u3KzZ%e82-^z$-_f{T4nD48 zCBGO7Y6cv6bqVvwUv6D)_&UnQ%JX^*dJhjW0Z5+4{>)t~o*nc$1T4qfzLRK9&x|!^ zb6qrP4+t7E*Y0EGL7$2ta;mqcGX`+D^_%wdm!1DQrt03FsYYsZ16F&R;uxnr#cYZ&uSj1p~_BnI7 zcP&r&IbGaOqHuA)^itbNb_wtPpnb8AS<5nt{d&abOaFOI0gmwh1>e_vAzAR*Mbvix z7$N_8)=9dMlL75QMXN0z96-i&!*XVheH;a4e;lJe8m4;K0{hmX77wWsx}#A5sde}T z+v=VWVnzKQh-*-R_KI1uPsr~x zZQ3<4tb-HkYeVxa=wskcR!pyv4^1)tIEgWyslmvVSsF4qPasNJ7q z^oX>b1w260)d!MpSdo4L4cCFkiS;i5qZOpIizmeH2_ zw=^mCGEwU^$16lxoU)m+P27M;Awf^=dnU)vB0l@7x}PRFg1u=hM3{bRgXtDciR8(f zKL@ISxTDi6;L`v9ol-D;=*v5t12^)}Nm2EM((G|0A6MJ|1FYt-K+GCZySIVL6-F#+ zc1=lRSuSB%@4(yY0lw_j!?c=9^q=ndqPJo!Ki=g7~rB zRcD{!aNY|0(tM4d`{@kBIq}Jz3N>; zyKTk_PWs?>SBdu1!G>Vm$3}ND34Qj<*rs#L>yCX*d&|RQLxgFhKa2gMW^7qtyV*Ez zEC4vOIp;V-VBKV*0O7O$wfVN_HdOG#VG+qH&ngNARDr*K?vlgsJ!UM*{a64 zPP{g`Jur&(9@xp{eo8$%5Xj^{F1n8N7iePQ?UmiRvOo6q1`9w86E56<|F?G%!Bsd9 z0>@SQ^ZRTI`Tc=T@|k>1lngc67F}o7WdGr!R%jG>%9_-l+a#OXx)Yz)#`{kO0rq}u zE++wn^PRa9vZ5sJbdXAG&_h>)Fr zglUkg7RFf{GR2w{JMl9HsG8b0{mQ*EL1QU-mja*c_fkaTIlkUkEYf zdScq&R6)$Rf;@-54F8*iI3e;?tHYYkt6g4;c0TNarw(WBkqNB6 z5slMpDGmC6fnRM2rkGSV^#^J#w@tCqNlB_-gbs8u)=T)ja~yT{K`>Xk{GT38{`kVSb}uWi?E`K0~2 zvfh|;?4Ox1u85Ig^ZX>w*SPe&<~=?9m)2^l_<5=OG;!SB<27kXCK%9Y=d$y6uwde( zOhT-bKj5(0;uap6`qO@{-BUxMrp>EysgYz^uwx7G<6vQoq9%RH+wtlpkTK`uI=<<% z>C89w8m>)?p9!7pde)vqkp%b|A`LR&I|JBS0PXvw06^s`hwCh?h9eZ8Ljg~dp4%;k z7&un4k%u^@uF&H1rC_1QyY}(MOQDoN2*q zF%}Tazb$)CX^aF4M9Jv!CXL0;H-zUPQ95!S1Da(r0m?^r*sJ*aRdZT`XlExwtPN;|4n zwqpH54@Nmm%Q-#%wu;N!T!|kNr>rb&eR@aG}`wm%=wG%ss+yRz)$C{Y31})nqXZsHG^Mzl`aS;U_up6FB8p zD8nelMQCIu5iK)+%qLaa;H=Hk{Edm)akbxkg&HwUq5{2Pm5$nfX{1x91VL2%N|ifTv1VAz=s>C+R8gH5$*?U^ z)HoyiVYlG4fod0(u3$21$DUhfcK<8etwkW3O`|4$Ir~E^r_Tyg&YG|Y_CCS9rQu=$ z+hwq(SXoC(d@wSy}`c#j2qrQ9HKv-TJ%f?|n%N!RLpGE?LBOC73Se)~bm6s4ccC(EJmZC9E>=+KrdVjPEuecl?{|#^2!aGDx-rIr!X2L?}$i1vA<2Lgkx2d%TYYHRKxCx}D~V=(fgx z3jXG;9r|=fkeFyXy*@TL#TI5a} zHVL}>I?Wy+u~|&XxIDGt3ZlGjtY2^EalRI?|ff=5(aFP)*rgH~uPB@?CYPi)$4oNoK!m zpRI*7rS`ZHtoVwVR_@0^#mcn9`67fq+O&sM6Gm=}s&|oP<99^OvQ8NyPkqV;Wk}-$ z+b@kQ$f_sC)Y)sK*&lbFCnNDrm&~t1Gc4ViYh=y#J@%4|nUKJkgc!#PUpRcZVy0{fQJ>RCM9wm8qUR!(b_4rOY zI_X_pv>mP+w|5(-Pa7Be&1-WO)R^A0h+8KJ;~)v_p~#9W2cPH(mh**EtSKQWu_%+o zW+6W1-1*@-RyEnS&)rL~6{DbhBdY zsnr(7G#^i2aRE%!22&;L^=IjFom4qCQ$rYjY|-)r%H{Hs=#oO_Q{u^Pl;SbgKSbf1xKPW+ytqu&)na0#Ra6^noZv9aY@n$BNMRy{&Z&DR zugYsrK@`GxEMF3KX%9Hey6QG-6%0sO&?(j|VAwtm!Z9@DQvH=e@}Q2JcQ`-}}e6G-aM$HStAZT9Aip+L>+IX<6Y0Tf*CV*vksw z{&Ui$Ip6a7CbcIZO#x5F2Gb5gKxGQ9-ph64Hb>)!sx3W*$2Pp@MJ-nIK=TK;fn| zQy>j30=-5_j7B+TwK@$$l-f5QWob#8aw8nX9r)k)0Y~`6zm$pW?7#l8!I0C1Yn*Cx zmWMjCVByekLI_19*BY?bs4!Z~BeOQwxwIZ2i!?2Q_#uv9OeCgtRY2gVyu6{{PcY7ojH6aa z_-*{Q5DKrf1Xw}6apveTYj{-ve$pa4EJ=g(=%%T<<<+F7^AoPK0}z48$t8BaMgC(1 zT~;2+I77jxN0y=-W}b4E@awQiFfI`u^Rtn1?0G_S!S8>Zsbfjutvg?uUKsE0f($N4 zT;!nQF$6^}wMtsqGDMxsm)CPOBA{$dX^l~E-E>hy07O_Oq^e(84drp@+Wpcv(i-K> z?1oC};dA=btE0tmu|V`msWNBt%&Ub}>^gSb15+EMv+8gVP*Y7~gzqlFaD$0|-ec0< z=!|=bKa!2aSfy*JS8>D`%74zkor_>nz*LkQ=|;9FBs^pNncF%)omPK1oC}SKEK|(& z^t`7TWfVy>T0HF!g`HJ;Ophs6|?T)HeEut)Mf$}=7IEL*lYyGkZyPaR zA91Jab$D!nKtrV2r6$d~oxr$KczAz)<5k`&;W~i7?O5D1o}72!URWYt9MGm8!T2p{ zyT=!Fx<;*bKMnMtvTm;($^rpEpnLG}Fi!v`&#mt3^AzgB;vh;~OD#c08ZX zaj{Y^po&c2-;3QZ(~`)h!%ebS64TL(;L}_AA989)EJd0+G|1OioOOp!d4VrW74EEA zu>B3qVQH<-^-KFl*L%yw@yT3oj_r5BYXN(nM=(}ep0p;dwV6(k+3O}e+jCF19ThzF zZgqLJUG6Ql#BQ_+Oix^1P*|HbB7w3vQ;dZR7HHH7DijJAX(*G$Dhpd-#cOL{ge=3o zMChOlkf(_xQ~wA_*83sMM7luzqG?=)8VjS2!)wLwfM7sn%q#t?{)CnnQ;P5Rof?U4 zLOfV#VKqqAZWV=&V=G%$BS_`I!lFT*z!9N1Yc8T`DJUBY3c)QdJC?n|1AAys!*cVF z93%z`&fh(ISXXQouUV|RlpP5b$B5i9bP0wa3!jmQ=;AS_WND+l^Y;jVmJEXNT*Bs-7G}$rFvO-+W!XJ|3RdOG8bz@9CjB z-ht;=^`jajGN&rlY-7uQaWS_inetF}7|(`%NRpv)2WYcS$dFynGEk_Q$Y4P%6PDH5 z-Tw%1V!x%r_`p* zP>mDKF;1Bh=9{gBlU&43Nuy>hqaLA>WoMdIY?UX)7F(1(Sf0~2LXYbZ{mU6G+dfRa zIU>4M#jGzrxdh2Xm2D&z$iG`HquO9SwRol>X7aO&PeY1oF`Cxg?A~IHFje%YHZ8fV zcz?+5RWcF}LVy(}=V#8F7hlmdCh1g)sAh{$Q?^n#x=a$}q~$qx?Bf$IuTIam#m-OM zjJM!v`H)j-7ie!o!EJURRrm4v=p1ekYg_gyQs}7&O2etUv<8 z9oRi^Rzx)Y=)nc}cKGIzv;hd+0)4%>eI`u|9BKoR*G_R3=EZaTJFhDPtc`1hvzo#5 z2O;dgiN+tn?PG7Y{yjo^?oxJ3Mdz?s-}yVUTqqM zhRiV6@u$(Jz8TRp2;lMy*`2bsxQ|syU?d%*+|f|SbEE|hb7irm<0RjiXZn_9-upl? zWTkh&^l?)kXKwr?O;3I*WZWI@;DKhvt~)NsTeUfO;+ zHqAf_{SFKC_X0uUGh5yC#6%`49sP?x*CrCYJ_$GNCHjv4h*xJA5SCBcjYu=8-)J+` zw(vc_*DK&=wD91&zwgPmz1CRKc+B5_HKp z;+l5{)dl_L{Y&t9Bey(9An3KTf-wizk^E*!B5xw z3!e$gN)9Fzv1iV0fyPeyI>JJd#B{(<`$2$Efu_RybvDVi4mU8rih5a>r}VYEP{8zU z+IowBaFsTXJu0#^Vf5p%C0VX50sOopSfRtLY35q2fQ_lXGItNd6TkPfIThBcT3DjX?AvQ==q^Lmttf< zf)wPXCi$Z^8e6fBAw-gGk3gCyRC=Vr4oa4?-i%LlkoDzyvS2is-u@p3nMX{YKh7Xp`d&5q z--SIw4!d&E{yb=QC@V|^hX|egiuvIXF6%J))=gY~BGJ^{ebQN@X3}bBYMMmzcBzEe z-43S&STe|l1hUf~P@eQ?hum7mgyFCR4+Q_-h(dx^>M)F;Kqa~Re<8EK7{8L{eVP5c zEW9V=F7|EsiSUQg2D=w|NXcF-L@BisZ4yN=X?iu|WM4=>;Z-Opk{ikuULW<3OcFRnAVjWg7gO@z6bMg*8h9V2MXt z6Twp9oED&N*z?`RuP(yWS3BXNkYG6te_5FQkN&-~{kH^%=c!YLcnQxI!nu*!{GB8X z2f>Z6f2I6mS~!LzqSOzbu4@Q*l8QpVZVC~P&j!=O_W?z*`?KD@2%5H%|CwDL)JqU| z$KC1wuCQ_#4#lAA?tEGQ=LE?Oy##T;MTmJKQbn#fMM|mC1)((V*po&b9^VH~KJ9js zF_baUyx-vq509nx+J$M$_qZoX_H}-gj!25nB zi!$oUU%1A22$$F(^xe>d=gnNLYTzGSBQ`>T$KN8$)n^gLD<1>44j(8?!*VRYa~1wR z@?7vELsXC+N><|%AJ~d6o?zX*h+OQ(Ah5hsi{r;B2eHl`)O07KPFEYv)GXxbU%J@Z zmci$A39cV%c2uYz;UJ!_$`qoc9Z?|eZw{>X3c&kPD>}*^GScd{T9?@2ybOhu6 zc{|H?RRsrlQuqkQT^qI_?MRSDXI_E>ALHYhWUXqplznLk`1%fg&27-w&kCqIDFfASGGRoF6UqqC)4 z=tWtrX}-tL3B!IZRSmbriAIUu$Wqg4B=Zt}h~AG9)5)q)Ii~y7A%i61jbDa*ku>M~3DtFj+gW#DUdN*{@W2c65k$4?9Un4 z>Z_aI#K{=_`mRXqY>Ms5H-o`DQXFl8+ zhh~qrld4j;_%CvzX$vl@xt0ow0)aG#liC(b-HPe*_Jp0q{he!X?y=Bx*YdoLIiJqM zp0M1A2+G2Apaz>eUNXU+CXWc3v^0md>vwo&qx0&lC{n{9dJ|ZOI!(2R$xSJwA*>|SO7Q#_%6(c%^$bF^%*l;a z@;icCcSHg^Bo<2?PoB#6c`;V;;@S3V4Jg^~tZs0~&u}l1X|>q5K6rH**-^f_o|8k* zE2N*S^O7{gy*~nC%*|X&z&c9?I%rM>kVSDyHea}aVuf^31y?Z2icJO=@AJRae&zzp z1r{LSqg69C`ZCAwTsN?CBqP;7C+>XH%L5Rs44&0=bYxeZjo- zj@Q+v?Vk0xr$_y&d&KWO!jok|QVEdtyHKSPbT<}Q>*xxrg@yfv z^6ozzeBrttS4>o8iXUi-1tR9c?y_s(jH?o0krRugl`JzMlH&`lZ@1!=NlW>dYDvU! z*;tay+mL?)aO1vu+9r(1&uMM;myy9=e0AfF+Ur{u%I)_d!@BUULMy9}_;+kZKVC3R zUa0k8EoJN|UbRh~wBe0zwFyt4a$_o8&>wN2){etB6akykU#xCNze!rr0q&*;vJ+Gf zI4-1Qh-AxEaWb`1)`}0xdo5WG#$<;o;lw4Dn$gJDr{Z^p$Kx<1KuG; zMT$EActU%CC4R5^{{hTEGryp@XwaOq)t|E0AG0@>YlS_$a71rBp|d@2w7;ygzo5~d z7qk})hV!=i3p(vBPJfFt{Gw*g*xLUhXm2>V-Q?{a@D6uahx3H?7gm45&iRCc%Q3Cp zMb6=l-s7U+bW!heM(1===KwB#-pTQjqvL6ip1G!rUVui@T_>H6uxc~&UN2_5c;cDF>?-l(((O7Dcy+Msk- zlxc^u^eEeivRzS*BPyVu|&=pLIJDCNW!s}{CzRug@*Gg129>DM&Zel; z5*5ORJWyUol-~8qa+jp8Uj^tt2-AEO$F@i!RXA9yg=9h(PvOqrQH&uLKL8=WQ-2L) zp-KX(C5VX$BpV0ztj1lz;G>xNhad%aky-<~ zUar+$hzvn@EZwawUHeit_?<3?!o0NuNZ75Uipvpq)k_Z!md4ir1O zN9$=Ho)HJrz%>MV{b=d7H6y>90285^aklN;vk#SCcyjCH{mVIr%WOM%q?G4hKzHW{ ztaj+uQs2?zyY-7MqWigL_Stsx-ByrRSaHXF)q=)bW`D41O1GTo9q4Y4)No?<)K$M6 z4taEs3t9d4s%f7DEqH(ROm6Fn0Q6u&Np6#2g9Zm|Pk8d!5V-oIH8bmNoA<%W?;N(Q z-SOyQm-wg#i)OyNZNWdb{`mgt**esTg(D;8zp-C`WgoM)?wBJeiTcwu3s^ z4d|*L?8gu5M2+wR_+fr5Zh`i*9@DA$_zvvw_8q#n{?^BLo!&c)agU(gA{mD`P8-iL zKpe})a+nyFlZavkiAYux!3n_{E=*wXFGdKU%VE4`hej978xm+^5~WX|G*PT37?fAQ z9jtLb3R43=?j-YUwTqjgu@EzX0^_e?wrLrE9UG*@TQq+(Kc41d7}z>~urHWnc9`rr zP=nc_6+#6;e4-IQDQG4?xb2+h!g$Wqi4+6N!iHdTVhcB3?+T4A=keqaZC-#*T|p&s-IAN8nKhHe>Y?Q?%cp$R>S*$J$87#Z^v4V8r-|R_aX;l z7;Q*V=u#D$I0CoC!><85jPDIht{)7y4J;o;YNAO#oO=Gd^WZk1Ch((~%duq7_~xN{ zTE+_n`ni}3H2wpDNuWiC4ug9sl8qo3_@(k#p;T~F<#LK=NR=x1AoRSl+&vH z0()4eD^sX1Ik+CDH3wQKk6IHaN&Y0m9VMt^3gU_lbJ>zQt!9o<3>feQPJ4^g-m>AY zv|vs*Ck`s8eKc3jXvzuhgi>>kG#*uIk27}r6zmDD{c&D@h-CIz+1z$=xh&`|@xpml zIK^@YS*Cn^_a zTROhi+WEbH9U4p>MlGJA&)(AGc*3BH@)780&&qxF_e-oQcQ!-&6lkX!mC<;eJ2|w6 zK>Mtp9B730H$l79C|iwk^=MBAl;d}Pu_39$7u%S(V)#Z$lmfSFsx`@kA%U=qrR}3x zy9E6BTGd4;+3;)hQBGon=OXr^!+)DI>li2YuKPnU57tsNH?JpTh-O?9Nu4EoPG|Kg zJQuGg;ti@)4U@rgS+qWr(x=h-bXu29@&yE4s-#PlP)Tc&Sbd1zA;@4CE9jCZJm2$ z=M7Yub-2{n&T~^{LJ4~0yk=4TjkDifJAK5l(g5_tCpEOuqUm!^9STRtm=*fo_MhGh zUHs0*Il71~Yaid9b#SlulAq^f=0@LtVDw*8f7K74ZJXb4%g;WMJ9eNa-7=CJES*!& zf6?24i@xw*HthW2NQ6B7H!<_)P1w0B2_d_Htu3~!theQ-zwP+pAE7fo-9Cw3HoVu^ z?(^EVif5e*EVX&y5HvVkU6CE`*9K1JS3 z^RqgO#C5U@jpsp~(>eI4$>208f-YXCiPdA`beeb_A0sdrEgP?) zlLg$tBadS8DF*idG2f-y_CM3~=;SLQx$mzboz(*3w0S&yQT!B($>xgr&qZ2RhAdpy ziX_J}WW_{MDP6kCK2>d>$ZDem?GBy&Pp)2mox2MI`&o`0WHYLd!@%|}dwaL*?cSxk z*T4?#hPCZ5q;2Z~9a{G6+_Jl0%if(@_UhEKOPAK|dbITJ>)WA+_lUOc^IToF3r;bV zT_l6Y3`pR`=TI?Xtt##hRD7lmDuS8I;(YT1*GgP=Q3OF~c7Jg^3pAzIiEexhBs_hO9i=UO^xkwJYTu3AZ*hIFH z17LAjHj2jj3tnz2DS*mDG1x29=pVQ_95fpDpT---n})fttDxifPQWx4M+A*qnp0JH z=>23B?#~^`2x1=<+#%Z}*2!uf)HxA9r^v;afQeX=gH7+?sbHRnVpORrEYQgW9m4ZV z9JP~uZ2Na~?A*<@eRq$x-F-TA_4V^>)1zbiUhO;fY1gG!yDmLCbneliV{gdm(5`!j zcJ2H++4t^cGj!l56GvK&>ff`2=K@D#2=g3)mKw`nTcCju)1!ovJ%c)nh#zb6LV=dn zXr5^jXiQZP8#95%W0Vj~ghHK0FuMf9ah=0?!Qm34xz4l4t(u(^=#x6O#K!W3i^HuB z9e1(90bYNY(_e7#xZ~6Aikr_tPPdQMo^x95*IZ3i!^_U z9!Q8S`hGqTY))?a?!sD8bVtv-Fft!?9_Q(Si?^uBYr z*P|0&clIhT=Y4vw^y`Pk-&7Pge^6}opxEX?iQ;~#;z6ku+S%f9Zlil?jVm)~l17mQ1_Ug;RA=3wLoW8_vMg*`)-;LKW0#{!ph*)i}N3tTA&|RJb7^M z5llU}b9e8~GH-W}T_we)rvoed_wLi9i{F!qM|dFUC#dq_1OLri#*Q3u<-$eusKV9R zWy+LEcW>W$^ypz$MrQl=ZBtTGDk>h_zklD$$J5Qj{l=~9u$s*5j5h7sM&@Ldq9^w2 z7Jsp6?mHW1j=g+v3A&{SU-Q<2iQRT(u0)70i2N{S<@>R#-|=5ShHV;sq&y6v%{Q** zA{2c8zTSWBS8M0h-?pgXmL+cCfvfM|>zJ1G^~(8Q1h4uebX5cY6(g>nT8z+FKhJ3} zZ&u5Mmdn~h_9zVG{O?>4L4oFfE78l^Sen8_{qC78?H zuR-R=wIW+wLNZPnvSJeABYoyMFLCH}hBY-UgE3PXG;UzVZOjaVpDYx(M1f1t2=M|R zD`=tx0e}lIUx6R?%2w*(0#6|^8EQZSz5-4I&IADmZfgq^?7kM)q~kc;Z6k%{#czijHSo!RYl`%_U$X4hwl$tappQ_^1m3+2B0O0Hr>kC+azDg)i3VBK% z%ou#v)Od{hcqGtF9Lt9bnn)i1y%aXF(~>W5&hNCuXJZn9duEHx$sormgaBtU>;rf_ zOeatpkm+>TVTF)uqsdYVNfaI%Dv`u)RN&GnM|nDRq6~i6;E>kI?ZZ3+eOX}Ke@OpbaG$h zRw?0eCPS8-Go>yAYezLpT8tMh`=nU+q=c&|YJv{h zpmOR_E`f3#QF@!xbA?dn_acO^;wT%qBZLzR1RBIHjyA@EfpI#~bVUz-;{q)M<&pKD7(+r-?d{d(4q?DFnl)4 zi)#bS?HNc^see0C6zY5hk*lOan>0^!bY7rRuW0FYB*-7#yNMp&nL2Uw^=p?9s=R&s zHXi<2?8xy1UAu7Uryu5AI&%&^1f{M_PfQNq5sWI)-Rn2SAv^LivI4hkgNe%f53^I# zx31raOID(br_XL&z4pqv3wYMUiinWV#Mn4g`Q*|42iGrOS-*PC?vp1|?%#IUzNSg+ z+JA5QzHNC%x1)vi0v3E0v7$-v%7M3!eVw}Xt+-WhC9JjBGVk+EKkH()4?9^t`j@>k zPakca81dQ49~wrkYY@Nj-OWEW+p=uz#S{9((DzsU_)+BAcfwcxW6hkFC(G>iq<`$c z?1{yc2p$j*y>T>}leNUbJG!^1tEc$n%4 zINTe-T#oC4Y;g&hH%rKhNz@c*;3W<%4qb3X>hR}MFIA%)5~kmt7xyuZM2 zKTjCCBZN@g|5tUiU&r&78MQkQ9JHvx6dQR3DU{0O6x z&rwx@9op1rlB3k-DfBrCBS>>1Wd}P6X(~9h!WP^#OQB1LjVkeAd1-1;SknMdG#>p4 zZi#c$xM2lW4m+8umPSFLQ%L-{QLt7Uq|?SRcsEL|G`m}1fiALP(^R-a2neOvJ`LVn zY^5!>(t|X|Q+RM|5H{Er*mI#3PGNJf5)f-B06E1ipr!+j*5+En9@?g6i{Z z{M>$WwhiL&xG1UB0u9>&fd*%Ty9=2>gPO{0Rzxyp8KUKiNcIfDL7J9f5m94g?3Vx= z4&`v535Op}9B~kj?Sk9(LkR{CGp-~umE>W;aF#b-R0}t0-D9KU1(H6ZQXk~_0}hT? zK%m1TZjKn0Zg9LaW+Iw3Hx1pyy)H)vOH3a4Eyf^jx7|wvcoq@t*Z*}gz zTS=c`j8|ym6-sxB(443Br&;|$g3Yl}CQ=N(bE-iss58e)A5DWkvO)TW`)8|Az6&Z9 zDvFyw+1un{+1F3Xnms9Mf%2Q9az$m{CurB#4@;X|$Y}ETpzpoIBO*3*?b(5DSpOfN ze)xWq=9(tp&CT1@Yu5R_W`6H9@ARHk#}AbqKT&n~$hyr(R;|IOKWN~ipu0C|;q?A{ zA2n|9j}9Img{-ne7f0XO>w2S5c_X_KDz-s8H7HkuJ6o5ypkmeI(&mp#Y%20el<$PH z+h15@3~~M-LensTCQ{*^n6OVH?UQK(+@8jl5`mmV-|MSKNGTeEg_5V zPpPhA>q0Kcms+z&bspi3i9DaKsa*z!ckUn2b68}LA(4K4VmtLr=-556eYd#w-J?77 zifG?AtV8c`ziwfEox(f&MRe*I(VfYY7wO$5+PhVZN9$O3-&og{an9ax z&c1O@o{4U539c@QE-neq&WTP=i4Km*c6KSYcBy)Ox=x?2)ujvCOpXUcIj&J3*9KJW z&qFfun&f~4R0C@OImjSr(a2LN+?g9fWFkQT32L>h&G?OzMbj}>mhlvs>fjK-2|rrf zY;D`FeAzN|^Cs@k{NMphRNT6ODl0&ZA3wq4K#POc$+-VKAYU9D+9cl3@VN3hTt+DH z&Lt{%#ea9q{UCAqX8}KbzJ30`V-~-ayz+zarNBR8ms%t&wTNH-ubAZ@hc5p-c=_8q zetIWp{zrieJ`7&;-{{2_3Ck>!m;Wt!#lJ%ry%W6nzafkN9=_BfdZ|UsQj3VCe~VZQ zYxsM@5{slI7Eue|3z+-mra6{d=TO_{@IgN~E*sf>ScmB?T>^Fb6jl>2uyF#J!QwH9 zUWKOz_x}LWjRC$_WVl>jlcUiBc{+W8!B}ALm}YcHwslOlcS>?}PH}Qia`i}Z^Gxvc zigELd_V9}G^osKGjqq(5-m+ChtJbl;ZPGkDrg{0rw)Bf=*EyoSUrhThDQ&u9I`!Pq zwq4}l{{FqYZf)N-xl51YmVQZUJvgrH@_7lSOA-&9S4ZBUK>tz5!u6X4j}uB8k{E3w zL&gbIm`=CQ&80(^c5Ht?)v&Ji1KJO7=d#F6yV-$@&~mAip+I2^##w4f6>5y2q;bua zd4#4&rOB|S6DTf@=i(`KHbd_d_%c$Jq-Yw)C{pYl0|_>Q(}7J!s`(Vokj@zJpC1Wr zhDu1Wrm{&*KC4TyCX%ex#RmH%f=}a&X`CJI@k|;LY5N4$F@|*rCG=@_o;#Y5aY}8j z))@>kTjv-}@{tQqD zi~$D2I*n!YU!pCaI|n z?w4Zk=r3s2Q9_``Ih=Bhqa4#UhE$5gL#^A;g{%(hwFsqUqK=AVtYcV3C{M1m*A8#v z?A+h?vnd_Fnb^K-7uR_%wmWzuTx%fE354mVdc8o>6jfZzo5?M<1QC@d}(_c|>cSzk;HGf)3UC=um*4yoK zc0<#qqaWrT?c2YwO((Q`T}kJjL3)S$ZoO{&IB)mpkrh8LNzpkLJNZ=3`2KM3KKG|i z+3VYKudVX|gJUtJtsFh!)|4shIXb;(ceKs_m(df8yY?#|JQl?y-<~}`(benDx6{!2 zEw_92FK6_pSli2t-4)XIlG<>QGJ;PZQVY4(s$}vN1Uf|5@W2lQ%5_5}+DAo}Xiu|8 zCEuXZ7O2n)==Gj;r?)LzzHR0C4$$27KaE}g{k7X?%I+UDYWHq^*T$9}YL#7+1|Pc$ z?=PFiT`KMOn(5RUMWmoJ*U{N4=;TFo z>I4CnEHANYI_29oM#O zxv^>UwRIb=u3CF#>B@^gFFQYf@x`C!AD=M(3Y@h!9 z$lpnzVH3$b6-nAel8ShNhsd~1MQva;n_WChzx&})YDTq2-$S>rRo=Q*arY+fqk&Al zqMuDG(31z~u`I1XkHM93qcr~SrKzd=$1Q|nA6|2cSo>Mf+=g*WtpgX>ge>_aZt;gn zOTUa<(ja2VCoxOv#V!Rtjau3y1oL6|{CZJ8eHyXwlc+`S#sB5XM}4ttzj_PV+6_w+i_ zven^s?SJXr?{L2%M+Xc$K6KQnQRB{x|MtwJX=f%+zrASj?Vp$4S+?Tds@3<`uYb5{ z%j2#7mD>VQOe%^`M;VzYF9#JCprT?_ScZyrqNBf{{d>^a!|37>boCUvc=p=5Et@Dj z8npT4QwzB5TyDuP=dbS25Q=3H`%R-Yy%|T5#3>_n{6aT}Hr-pPhIFtT_d6oR*KqUV;yQ`ooZ#1 zuO_oOCXQ!T5z55`xrW!QquDh|VkO*~)9zshABm%oZDVLkn`XCFQTN-NNZZ4UVw}Cs;`^$!%k}bq@H&A`5708O{7` zsaR>F3UhGYs3u`UfhsbV)dsgvWa{i;wNVteqDfO+OvA6T)6XMpRteNfwN0o_2(Y#c zYSL_vlSiT85ZhFpqjAbKx^HVit!Qk$k|0;;`Jar;EVbqGW-UT(=wy{PTE%bCX=k-) zyj-OWRMDv|xMH3A`pu zMMrbmD8Ud+2wR$}H#SzTY-knCYPQ>`gPOG1#oJ~!Qx%b#6p9ZPG~n(lc+Co0x6+c^ zYRzxAR_$okJh&!Fpb(Gg! zWVP3n>>WybozR_AYcATll@R<9?^eh^=)6 zbI;&0_m{1{_0yt5Lq}cvb~^fT;qBgo_Rxk?to=pC{t9V#No_n&*`8)>5304fRs;yN zI690BQ+q9b)>Q-!1`w)ic<6fu<#?hZ!;=CVw9~S(s4;F5E>JwkXo~jf9u+F@A#r%K=yi3}|% z@2}w{0&VW8e>k{n+Vc?q0Qx+h{=v6avPn(0l_o)9*zVwq@=DO%2dLr^e%oC|1-f?! z-MNWwTtb)5pwq|E(IaU85mbHv?c0sYOVO^vCxzJ$bJFglCfrVlxfL6AB_!zTj=)RX zww>Fs@$|~o$CfNRy5Q$ybAP<}!>lVare2)#?YZ$|PmUP=%b-C=`}R57yVs#^T@H5X ze4u@MxTP%fbT4#r1c%Nu7+|l=|9D+HreSMqBK|47Cb=YU{){8!WSYhn5QpeWAsM)! zk_bAUpnwDwDUQbf8xcOUskSsn3;i& zAH~Pw-fi^Y4to3m>#-=zwWgI1(4z|U2o7s?T2Y$UXEOfZG23UlZl2j? z@ublcM$YKl>$|pX7kPMW)8oH2?Nww2MAzY_z7{xWp*$&usFj-PUQ%FG+H=H8sU;P(8VZ!G|U zUVdl!>icUqJl?VmZ4XAl;V2>!C8s{jO21W-eXG2%;^0nnWFIlu&ptxe zZlSAp(N$D=^F&PaPg-M)pf|sKYDMP9wNfK|{gn^}`nSU*&|DfrW>VH^tWAuT{n^dF zbq`;~(00v6chU~=9p2t@b-?-X+k(EP_2m8vI(|Yf3-~r#cUOXh;AJ-Cy&V(Gc0H5kn*8pb`2O_Hey_u zpWjLkm+v`p0Yh)Lv)$ofAJ)G0svaG7d^;j;%&`1#C*+PAkvVKg?0`NiJ)IZZ>Q-p@ zV4ZCQr%NSh6WqKa82xr$7tpzN%-Dg6Bl>T3c1+Yc zW$9cuTM_HE`pFc%v3IY;N#ph|owsNH%%UkH_e~rb>+KpQFi9FsWD5oS>^XvctTmlL z>cSagPLF=&lcps0>>c3h2KNJ@He@MpS7^=UliF}A)bBu+cEJYhsXCDR6KIR z&LLxp`wva)++&-A^CE&=r_qEv+C_3qs+vq!vhjp|gU)%hZ!4GH-9Dc<;G6M1J9qV% zkPQEXwRZR!(QSXmJcCG5a@VSwLo*4YbyFK zslCTIT%qmGYn_U0=zIN!qQKC*lcuBCq>B@$-TC3C(w_ZS6U^SBBaTg(oYA}I<0Z?Y z)cRv>dZ6#;AL!f_1iIAVaEP{<;I&i%pId1@X=?v*WB1P+x2fN> zL;YrLzG&uI?;FkMmi$*L0jO`S{iK=g`(HWy=X31`R))`Mw@($VK4{qLv&Nm9w&>Qh zv3t`mtmsDXZus8oddcvL(pHbMN!;bSq!B9k8n#|hLOv`eEArTo>Vi@mvQCn_mJ`S~a}8)c@W)MOMN_c$u@QE2F+;E)Fafe*F@ z+}*h4_L>dXm#x0MXxYViKVP2v)7fvaI-edj^7yc!M+OWy*t_?^?%fV_>9V&&yS;7O z?DF+3^YAQkcFMK0&DQI)wOZIKxgx(5S^fQTussueKKXQ<5Xck-I?eR5Vz`=2ud%HX z=r}bA4xRX$5lg7ISvQW-s#Ek_BB4yOQh@sB;Es=)K!ROOvWoUhm9RKY}}+V?WPZD{loC?(?;~2GNQ+{5#6Va>Nb5;kEx^jPXb1CpFX_HcSE~R z$8>|~8JMoqhCz8K+1?Rx1)wk95rU_h?ygYe>-|$_h|zb4t#J&^y zcU|PudZXSgT<;#wI%X1v5*zJ7EAF5bU23Dsv9ZagWQtrXe{F|;u0R9%ycRpOy(2jE zK@YE^J}pnSX?LQN-;wUU5A+^*r2o+4Lr0w*J>lZSDHo@FcWK7=_ZKdGuz2~yWveRJ ztVf%+p>2UEFa(8!q4)%pmh_+??Llb{+Fgit??PpJ(XRby-#&Eh{Jlr#Z=stPD$YEq zxOOTjX;aJgF@n+j3aSIo_;IZ~8@v8`$inrT1?)MQVNzLjHffbf+r(?=#jYUGt!#$0 z2Z1&WZZ)Qj-D)Q~)Syh_Z89k;SEWmDs?WFUxLoh@qnCH#(xvFgQFQSpI(!P9yMQiS zLT4{N_79D6Y_+917c01I=50}SD!Oq7T{wo0??ac*po^!`*^{`%q#$=!zaE<@74E!C zD*{-XNINb>Aj1W1jF0bykj?1MX>{=@I(h(|ynuc=ht6I=MFlq#!h^;R{N7$z=3w0H zXdm6TN9Cbnbmt;Eegs{-gw9_;Cr_Zmd(h#X`3q)l?bK!sNS@9<*5I_#+9r4S0Ce&Q zE_3KGx_$v&JdEz0M0by)O9xP9bgYx(n$N$AwPv&JJeRgmF12;ovufFsl3aA|7j(D; zT|S6zokS_|`F`Ct+mIVI+HHfnpreK8U_nHmE`d5@l-^;9TD`fA@2TKGbmlm^c?sP( zhtB_k&L2i+j-t?jFiMp!2#Gf8R3%fWb;NIpwxrX2+M~2|bnOxN3)ijrt7_u~!Qq(J9?h78 z#!cGOvfcej)6o1Sx5iCHOI97}*$-{lissJS*`+I5x%$$85tWl>KAAmtSEr6>_RKOz zhXWeJF9II21C1PWX<+{tC%Xe9hTmJbXm8&k`E9zK8#Up=h_TnlPC&uo_lA!|-_N<< zsoOC|f05E(r;OJL!zDs@o-&@`jO7%cslZ)0Buh5uMFM>k1Ud@@+F%lB%gUmLsIk>rnp!%4*x2!-=02Y`@9=4(PM>_yzW$eOn>A^t zv}xJs8^)>yW7$Ie)mK)Ze4?yh->z}vj?Jw*H6(05wj@7nZv5Q3<%f;ifAD3S`VHG! zS$Ti*-lv|1CQ++9-`PFnPNChSye4SZ7byEJRMPBmiSkjg;&GlDkE55<>cS#@sMCj$ zAkd^PRppwY@<<~b@L&$SB96Dl0}q>xJ@nd$!++xOEUR-&xBK!C_J9cn)C!N;Bt2M!b{f16{5BKjul@A_0xP5wWdGe}tNweo=&77I@-Q=7Z6SAj{%bhf~ zc-+|CqsHv(KkQ(iA%}VmKG0*}{%-yE`}N(|vG@Lty$`hSb)ap}1FgF6Z`p01PnW%3 zo%gtR-09J7SKE#y?b;W&ZCBi?O_6V_LNDI}Pp?7`&m2d`TziKcTe}>CZH`WtrO{+^ z_+h@+aN<`&6llqzVGW`{r>f~>f(Cn*nxEsyszzv;^}a#k)anSOe~2wz25HQ}6NfKnT% zsA5Mo{wi&vZ-*5|hlM^Ki@iLy*|}|V@}A}H{6kyspFO=-xOp#g_g?Dmv)IE2(v_}0 zYh1inyLqj4^H}TZvBt%Ht+OYv#>r!~v&Sk|@0G6JP++aI&qha|E%rYCc0PedpCG{% zR=dR8^QTsxi#%O6+B+w5PDN^`-D;;j3cFp_x;<9hK1*t^67#a`!Co^eOUgS=_R9S(|n{+jZF4v2$6+ z&iQRSQEa}m^v`6nleFyI!IHY9w@ZwP;_l_KMeAt9*{U==? zF!ju+86}gy3;k*4rK3C1?F;DEweuUcFIQ-j8Kdk9dI_dWQd4*SC(th^nc?C&CW#}n zN$V`yCW+&hJ3F-P)Oew@X0J$pjMaIaJZ*$3zzVQx|KSYlUui; zvu9C$Asok|X>)fkTz+i*=6m7MM`kbB$T_TQ!6w-H_}jaq+;nvP^o7LmqGj_=Z(Va? z{mN^rm)%{la0=BECBvv_hDO-1$Uj&6cmA1zzB=+Mlcj(#`q)Y4T~lA_Vw zOX%v!k_EGusVILX7o%}p&v2;|hM{X`(9XRF=KXwV<*I#amL1=*{<#0jV=LzFpEhk4n&6s#*(Ok4;?Zq)8qSVR+rK(V4 zjI$<^SzS0OY_w7znLZO;IE_vpM0c;`EctOdO9VMN2eweB(fTk;^_r&5m+IJ?!CTRl zv)3bni>H5A{{4bu%Qjz$NI{2=qWiZ`7H7=v+5UT@074J$8&7C=aE?DYdi8AInIG8i zgGr<7PZ-ppo6q;|uO`sZG#+;kh@$Yj5=Ep;b3}oDB`nNWS{I($a}9xx;>-k^=dY;A z`=oHwn!T>loKtJg>KxIiaeEz{;Y2TU^}Nw<=;;pK(ND|J;+1Gq0Gj(#zQOMHz#(Yq zIy7&|mBB-cJ=`ir4m;-RbV{Q=)WYVNf*yFD_XY=%~^83XaCck zx*cuR7R{J-#>)rwA9&N*{T#(#BZS+8_Lf?6h2YOI+T*--56xyM@k4}?C7bgyfzI|s zMS4_ViFP-8RPt5j&SnowTcCrQ(`i=dLa)R5-P?J-_vIIFHEiZwzj^16tvh{a-T4da z9*vcKn_Km0^tE@R&-rFwG;8qTf5_$^*m7U!nEH%OW3{E)s*&caFX_)4S%2EZ<|~D5 z1BLhdjlDl=+OfWMw@(`SSgPFWz57mkwO{{&h>7RRd*+m+>_{36mBK91lw)0!o| zUN=kf@Vhv!Ue4dJZJ2^vEI6!Y4Qp9$9Z#>-&>J<3KgWv0`Xms5Hkr^Q6S@>aldjg| zk+76_^r9?Ejl!;A&bDTSW8jiJ{5^3%mo@gns>T*v&0ibvYw70o5xr;%Tg-~2_oCl zCe6w^jU+;Btim}m!cHG%tJ}`8+X*U+;NvMxbPFQ3xjL?yJdJNo#wOiCwe5TrS3AxDj$vdrc)c-F zXMn&9=TebUzfWzq&&E)0t=(5AZRPerIu6IA#Gt3fOqz_OtvpJ1aY zXr#?=q>F8#Tcy@ab#=JBGaKE%j&5GB+#VIgxuh_9*%kD1WQtrXe|3kJh3hvul&S+K}ex9q8bKa?;SbUm~VY9L1A! z9F21Yb|FbFS1Cgb`t5`|R>R|7yp$@DCDL_VtU^)1J4D+$Ux*Jxw+;vXIAJuSUTrO` z|AzXpp(3bDceJ+v-9Ei%)q-VCcAHskLg#Mi?6He^SxX&!mRakUx6m%-9e(!fbT}al z9Qr|GOuR>%aD_HPsRM(I9XAA>KYC%)w(ki2cWQnPEi5Eykb zqSr9|4!`#3aQTCz!jV%|z!7hYMQMRmq|MpX&4X?OV@ z6dB1=F@#OJ+WN4DKgaWz2@q)RF{!<)5-up{)3oM-liOZFSHkHII=CLTci+t#j|h&p zeL9{ox|}vR?X)3J=pC-Rw7TrPdH#u$7>(8D*2d;4}O6$6}aA0ow zpsgD_jT$02*)_AaQhn2iYiMcvrIphMO`RJsoxkRK{p%~&rcC>{>NRTc#amNG=uQ+3 zxPQ3Son6h)k!DYJHbkY3Q0X^M3L4?pxa7KA{Fx1NdMBD|kw_TQl^z*N-!!!w9)$x7 zwBr9mfzC9&-B$)wJkLYy*ihq1yB7eqouM)K)7)xbFSN4=zXI>(od-ej8(G&FrG2WE zK25=;sqnxQ_{m}dk7gB5Gf^B9g`ZMop@xpbU-Sr&)^J@naS$JL7+29++SH71X}#FwYePE1#@XOM^>*(fIt@#&k^WkC2kVN z?ad~E7G31G7HIqsAxp+8TO?XF%~LCOvUD*;WfQ7oS{co%f@$jj!aA5z#!>jC=vghO zjHb#AHIYK8!LVg17*#4w)JzjG;wzff$rMggs+US9)ae9HVVxOjoMx%jDV9w$DC;a| zK8075E7S)lCX%s?ci=L4s(=QVe1^$kMc90XDrCt*R$aiUAuVNzGKMN)seGQw&`~J{ z21wU2xdNBZVe)t`OD|*^glsLJ!*kdR@c`sZ8p{G1ESFDm#ROBPVoFFR4}4L8GBp(W z<%yUG626CAyfySdglUSg$XeyT?@<;+wKz#3Drpc`{89E)qrZNm*dTA(| z3Alw8E<$69y|f{fGQiz(Fh!Qk z7>O?JJGXuLOtN{9peuB1nPKZ1ud|KR>SML~6hW89YZ7Q`GeuO!MWM4NqDGG#ZDqOK z!C|f5xLso#As7OiE1+^Lp?003tvwSIJ^`fr7&Wtb>P=nRp-YF*;iA=kt=ICp z&AcJDZ!dK5!nIXfXIb(KRN6?7HbHuaK!Ocu)*?&LK@^HpDpPd2AT762OU<|A!bkN* zCk`Fkx_yks_C`W7D0{-t;o$4R4lY|*VKvPx*0A3h*{hM;(S%H8))ssTp9-lUA+-h18udvzKLQ&d66-V()9Blh^@YN0MQh&mLCS!Vc>gpvEXwv|c zf2csie|1kyo2hbWNF#CcGZtvE1v*BpNLMQk3z~Dh=CYawfvzO9_tcszoc6q4zpI7i zMJJd28tp+l#{$j>H)lyr={-8Pd`g$x!sfV#XSNNI-Ar>x=Uqgq58Jcll+~_gP0kbg za|**b(s;m{*+~dTT)lVMd#0&$xoTs&LP#R$OhMS=>{O&w-PG7#wW99P{7oCx9Tj@F#cys@t?zZGqM`JUUA*(3QKte6X|OxvZw>TEColUyif*vgtotu*QFV z>i)US@c(|(@%^T)8rXPz(_HxcqtDb$-kmvuJDA=7;pst-&vd>K9}})zIAfQ zrC)~ZFPYG{yKVh1KmFGS?>Axe4Jh}2e&g^~cXK*V97X+fNDTe-e1FCLZDw{ z&wwnHSM#a@jR_>FZEf42y?fD}JLuS{+iSN+vaSUR+g(=L5*w~i$rP%nVkKFoAR&gP z32eMhgip}mmo+2{Tnf*n3OoQ4@Ubd~<3OXqm9rTGkVWf7vMGHwt<9nEOXhM34FFOr zQC$sVs=p4N7W2)^h{eQrAJ#-%gM_pQEH2rzD9|ABAkbo;3J_>OYJLVlb5m4Aib_f` z<`OJJDkBvWTeU@Mlp&JTDsUap#7u=Ut+^$TY;7Hx!L4NSU?I=_Xw zz=}*&C=%7yHAy0DYLZCWBoNkdghC{i#K1&?T9KkwrmCI-A5+w-RJBc}(khoz=Gw6- zs^)vFtPfFCf}%+ZugWKs#VSl8esOfwOYd??n6@b(taC~00?MX{FhMEv7-fc_O4X`T zHAI?*$mWS$76TK>JdwnxGD%etN$%z}JGHu8ttLgoCJ1z@z~*y&DJzsxTmghZicAMP zr0IMLz)jJ$rsl>e2`B(wE>c(n)3Q%7U+THkz2u7!mwnM1%y(YCEx5tpciZ)9npa2$>95$nxS%X*TXbj=O)Dz^7RrO=huVf|icc(HT5jMDhC+n!To% zUqsqE&2_iCw=V}hx`gguxe*w$nYRaNGp$NoVXf&i7hPSDuJOMp5Ta#4`was1Q4)SK zhs#ruIRqEW+bwYQ^zPBQ#jqZY#`F>fcNyNscbSu8h)#!JQ^n|jG=pJzi?5T1cSY9^ zqoTykp7y~S{kF!|$($jP)u+!fq=Zl#GK0})s@W`SHQdndVg>w{u_nzySN1AxL#((fQQOgjbBS|ie6M1XNw+jB zr!yr=+p(Y>u@O7Dx`rS$;K^Hg>_bUtyMN2by~$5NNxgh^Bg(YCI0Z4{gRI-$~H zbpBG#m`QV*ka6~{vUKiAG;RY5g2SOOl(jIHHn)ve+b(x=L6=XU^GCOK?yy$P20_)+ zr7M0|ws6mSm)5HV=aqzRr45S_W~oZ+T`jCjEERDSy~M%Tw}Y2)V8;gI`!*llv#X!i_wM!^b+!>S zI5d7gA|88=!?p$jEq39+Ic#-1FM|=~7z|cI%&7?|?kiytO3)!Bjr(^~Ot`57^~+PS ztF^Q}5NNRrM+iyAuuQBusW@O{E*XW>ELBbtWd^%= zJNN9)19tVDT+nNLTCX8l0|yih?OD{ne}0$AM+VK>-^X`PH~Q3ImlFd!?&>;d?||v) zT}Nj38J_$qm1^4O{(9$(Yr@gJRMXcwAFPc{f`YR-L zg=H_Z{3S-XLL1LeH2AoA^UoB9_ZrwXXx{0oW_>>S(p#a@e*B(= zxBlypCGBsO_rJTx@nN~*PI2=)x%x-NUXONr-P`4Gr<}cU*kf1G;2E=Bzp$~e_{5?C z=lliH`JFG@H&YM#q><-`Uvu@oZf-?{ds8@o= zsJ^&Z7v}s)DAhbx$->&&o9UHl98t)OVkP!#yxtUeHpb#b?=U6 z0Ef;dh**x_;MNlDIf5QmqC595uGfgGGCi7Iu1`YCayRD9P-x{Webp-xpOVOk_vS%tZFBq?hhkUKv$8^V8k*a zCYzUd>cJv~Y+@B} z=kPE*0-ZS5|l)WjS50vhEkcXQl*jV6iSW%j=}0zlFVNJ zRp{EOvW1I&CJn)sb|EUqg<8Wf#_DM3dUW~N#UJK`3l5Q5mk93;==e!=7*IGShNh!PI)bFa)pWFq1;Cy~Wd$Vb1;BVk zKx@UEnq^>?h*<2oSb#l)I*WiGi^zuRFeie=L++Ugw8^2(1zM>-EEuprD~0=n?y*`A z0$t9ljySUCShBoD^8-#!$A%9@hxS$M-gz~r;Cz0;nZ1Rl4rCwO7k9KY>1fu@t7UsH z6>UD1Gy8hk+ABq2N7B=d=9eAWU2t??_TfFrhl`Sq0je{h-WsU&=sVFWu+O*!QippAjw}HMVWg#Jjm=?}p#FHu~lR zJ!`RUj_cX{0Z$J3po5BsCGR~c`5YB!QJ&l59R0m)n|lRc-r8w>?MRosr9;L|wfV}% z;=M0F{I~)AQ9VtAPxZ|j(=BWiUpB7)pLZ-UWO6xuz#gMn>(?X^P;&jq+&2FjsW_40u2FIG~>FY zz$*zfAPRKN6vC^?n4d|Z^2<}J5?OAuODnYJ7=CB;{fcv&wgl<4*@P-zZJo?gFc&1a zK&=5i!ha^F!J&zCmP*6WnGDtxaHB#sHWgfB(V))Qp0UT^3e41APU4=jkY>|bu?1Sn zF;BBe5NNF=&>5_N+ptZ$Dhf0R93VP07HFuLO@1I5vkY;rSfhg_U{Sz*MV=$j;;76r zATw1-q$yRYswz^{DpON5#x$05RiiQ>HZZ3t@e8^kg$2cRnmVUqV8U#jreX>zSuG@~ zwU7d-D*XOiFliuFDYjwbMdCU6Q>xMeWl9l!nNk1?FH++T znN$)ZIWgF?xg3iET}&||<{Di`fd*BTA-1K^~Eb5#;(&}I0Dt+e_~h8&Yv zGoZy893Cw@i-l{!WY46*ge^|7LksvSU}&&sz_cw63d4V$-8ZEA;-P}=L zCVBt@ef4^9-1?^iEe>x|1^$t-J!8yg!CjCvEgk}?r1VjSc(?Q0k%{}X{AT>d0u6Vw za5@#Js8TCFQ*G<7cbn$x?cJ*tF{GvS@Yc5deFwF5U+Cx<$r+l6KNt|P{;DBI7$hsmapPcRYHJTv(nuQ9Y2l^9p32E zI*2wzG*dx+ioSH@oyodP|mS7#&FJl3!`04Fo$Q( zKv$2KuUfc{wq4kS`q|U_VSXCAc`kR#_@5g#k0JH(jBSYCVXjegz<&)owLf;h6S3TK%imSNP+^Q)r=_6(lB=Bek|EDAm-F8BU!Rk zrY07zWY0jAK%3q(QZ3N<4KAS+70a=4YIT;1IKmt7i&U^cYaiIKw+ZGHr@ri{zrtyE zD(KS_CfrDiUa@UnpC!Y6W_0xW(a&vpFJW0X<Y1Dw~7(5&yGSk{tS-iQBr zsQvuWUdu-s7IC`%ekiFDzZZXyo!$qn3>tGhcmUF@ALYlRJl?vx9G!322{X zW${O-xIW5bD>DsGvISJgqY|>Bn7f+p^7z28)a}mQeg9@q|IL~H%8O{`LpHLv`ll=R z9}nAlytRd!jYZOY9;Mr(dY4%_tk;1+7Z5h0Kxc#Wm;^eH#D7wU z8W$?;bPm_M;)~)$IS@Sn*PYdWFNTQ}j!wp~xW$_1Qh3JH--DH=%~Mc^0!ApLgENsMy^? zM0`9;LKJHeQJ~HGV~9M}YbXPYi1sXV=;~r1(0r1~o<)I9Q}XG`rvm-#dQ<@HlKHMm z$kbUzBE{f0-itAT!ZMwz;L;Rah7AuUovPrIR6N*oyc+*C6K;6mP9~4kg6tL(x+1l< z*aSEzwr3J6axSgOWwm*Xwvg6>0h_v&bEdvA@Y`zO2tq!jFbzL7wr7$PQ^PEb7nboQxRn`F8Qa7Ph1@v7$1um+IJDj79_T@w(GH~`8ny1NM- z{s=1}X~~I;@t#ysz?$z52K4&50xcm5w|S1V^Dm<6v@`){YzEJ!32Y{Zr=Om*rdin> z&WF@&7L&_TIUHqbEQd_|r3y#`+~MR>##|cT=fI7qscjf`40mBSt&NA3Ku!q>P&q6E z8_m_~qG%?<-2>%knFRXswcwa_yfcK{9D)KlgWpr!N%6OZ9Es{*`oA zp7Gr`&TroWjRPq`6(~Ta4FLw%89v@^d$tq?`BFn$IrsG$+S+}wlT$cvgf)o0-s4F= z+29nev)`mO#`WxTJva!RIfZUtg*&24sqx7(rmXbv*d!Pdbxv^G9L?Du-mo6syN-?@ z!UNJ>I)_gEg7%i7w4_*DU4ouV)Uk0|CR#&9YRE8w0)dXSX4cuzhc~T5H!ocbizu1= z{mr>6uP$6snV*dAoIrlXQGwHEWdu}P&vAF1*K=B)NE8#h)$M2xptsD zBXFr-%Xv1+IHjS0a}THO=TrQaQG?OFtLVmUw5J^1xq!~@Lg!1-q0I9?Oh|b>pW$vOmmWptVA(En_c{)Z*h3m)&PL)g%=?ouBYu2;cA3fag02-%GEcEtS z&Fh00VTVGwnWN*!kK7l!6XFJ2lmH4kf4=+^yva2E`73CG8 zgZuCpe0xg*hV=Vh%lkVyMlwR0HBo9!=PTJrR?iN3}Sj^`wzE@j(r?Z&u{I5wa?@ZDC z_q!(lnA^Z&Q8SChw8bJ1iv?}|^`p-x)7?JyQ@fA$4v1e~QJlEX*6s8+#5omn&0sjq zfuc@Q+m{7G$dvdsF=)dlnZf^|pijA)*UZLYEu>M&8Dx45=Odyiv* ze(*>X=p0fl3Um?&i(`St>Pd-z0fn=vqU{%3O?9d8vg=Q{Js$f~km}QvjvN_4vo~Z;HKm92J0*!}1H~o1B zG#W@zVu4Ns)Eo#j*mDl0&82bcG5{tm_8J#86n-=yj}`J*xZB}CTQT^S27Xu$e(++j zXPl2y?9kYNaT_ztg*Awan}L-JA1Sa^6JUg(dXVPPaI%rrK8lZ{bTlCq&oprw@~is( z0_KgorjtYjZp>hZO}j1RR)fC+-eI;xOc_q3h=u*fIe;k20G!^S+9v75m}@j(+6~OB z3bcsntKpkH(UMK)b5$k)KauG?ud-*Dh8)u@ti|~ZQ9$FqC8m2zxI@r^M#F(K*>jaZ zo63v3imxy6dNCL1Je?kDz(@~Il$U`8`u3%(LDB13M+mv1{#G3+Ge3SVvSKe6XyCVY zXjy~w8wU3h;bjs2^^jE`)o|%7HuXFR2&7@V!Fi6CSC_87PW^n01ATmZ`HXJmw$#xf zoY&*`t+2R5T^gfF;S33!F^JNvQZZ{CU6aO7I25=IH@n`yg07w4y=>7MTe~ebOcrTO zHoBkm--d2oPG7cg2{a5gH*zz^^J4f$3-s6VC}Hde8sI-d}*n zab$b=u=Xx*HVls0mMm$YnY#zYGRRDc!_3Sa$IQ&kwwRe&BWc8vnH@9RaqQUjotl;> zitJ>adw2Jv|MUEwR;#DEt53bB`qZgyjAj4Y)j;Iv*fHd8L2U<7Ma|W`$HYiJ|tQ_SOpqgs5-HomsIJ3KS{f942;n+0N=3@J&Q^AW^ zb?rN^!WkY+&sg-ri|aplW5YYoWqtZ`@q5oE4+>jkFs_yCTO&uHq-?b7z|J`f=E#<` z{)4wtY@&b}I!>nJcmj+hRMRP}x`J00j2wwhfIqNrTGXHgq8ej|Bhj-JXg(}F`1 zKYH&_atzKP4d=GExnb7yRlF^pu$NheZZK=9ufK-&G@h?7TKUF{sgFNj@Wd;d#y!3M zjhAmURiLB0(_ejYVqd>4JUouzZ!A*H+C}Kf@f&S5C_M+2xd5Fpnx8&gyLirwAp2}H znM?|$CaxiXt1$}ctOC#L#W91`*T&rc#dH1Mf9j1P1Ls?Vms=bgWLvCYgOdjrD1#BQ zxORX};#dsOESJiNxN+LkiLfI>d*QgFygzl6{?oqz=v&*U^+x4i*Utc*!s5fgLL9Zt z^Xak#kEDd6b$~ui$QN1p1V>)9iKj*8gps`v7~I4T+P`}1x~y$~{>bUGAng7XL3b}! z{y5*_voy+Q%}YKj-}vLg7ydXU{BKkH^%-NT?BiO_>}{83uxRaBJd}UOUE{0aCA5F*oYT%XlzC8ddeX;kKNqdiu%8 z`yYO&N0-3<_n7C=OM>oxP4!|z?(J?>PM^?a!b)fs;*d+>Ty z*XxymKb8kvuIl@P%lCY_-`Tw0sLY7Ujn`_)8{31?o^dytp7^P9G^!ni_KiK)5Pq_C z?4|v$Tx@>kT&W#Z^+g5$L^ZH-2Y@bb2j~RBkU>lNv{J}`9l`zd^{iOG8=yVy(B6Ob zylGx_T%prXzpVm6Zr9DG;!f%a!5yUo?tf1BOS-44T&F1j5dOUW%PBxc1w#WOcLeC~ z*RGGTT6BQU5jps^gw;RXV}QnR?2Xq1h8D2^e1V}WS;j?kH8e~an8)Hyb5@xwXzcn-I_cm(rc z(b8Ew(n=PM^G4@Vcq=`2S>FRJ*H_TjxmEg4AXp8A0h*SwDJ(BQ7n+4ag45;MEt5+z z*|aWv+*{QVn!UP7&vZJ^dIc~I@|+C5Sh!?8bOeWDlTr~40Ilf&T`H)0ptBy$49}$< z-GufwT42o@AWpc+9_Iu%46}SSiy5?rlRN;5NmNHY{i%5Yt6eukjd6|+c#a}hDlw%3 zT_WoJ4lzu7q?2NMGivAQ&8H9G>uHwOzjit|fe}X;e_XOlQpLW3=z&FGr&)xWiZue6=xWjRw#QuB^ zzm)e^DC(60qZe{FBf4q1hLK&YTEVOM@rfYpCxC0wzAKL};d!U<9^j3DnIcK7P%SCk zzW`|Pmwxf=Zc4wyx;n1oUHIDo{U24waFKtzbb$W1s8jW!E04op@N#*!7+z9Vi?xKz ziR}N{*g+$n9ys{fflod$;ESlRr9sYkSIvkhE1A5&Qe=$EBojr+mZ?As;!?lc*ZdQ`TAlx>5?o9m0AAKgtUz*8T6thLPBuZ+gpyqiX zzWrp{`^+c>Mr|8oJG5aPI&r9e^{SW`U#)uez0zl1+WOeg35sbd>%U26$`yMlsU-yP zsY6GjGe>{e)wt!QSLSNLF+;{|9XGCR+e&o)z~zd})R&%1GFnP~Z54*lXp=SJjn@I? z_iWnwmF$?nNps9}G$W={ViBX2*&^1nmbsd9@A~!V#PM_KsdK|3wgrVJOLnl*0L@^~ z(kQCX1fGVJOQ;)YWy7e)(Y^y{=f0(bN30NRiJCLR=E%@&>5OA@fU-ewMh_TP_{Q5m zB*x>hV~!k38#FeBk0{ZGtsu0$ahuWQ!|2pL+%SLm2x@LYCy%1j2hmSQ(X}J>s~0RA z7!hp^i_t=7TP%k+twrDOtC%urt2Qvk7By=`RP5x>E>`8ih3{XyV4A_0Kno?LE zMj?ZhmpUA84<8Wm{7Byqp5)&c_u-((WfsR;#j#bgC32Q@TJ?n3i2%@WQ93{;aXcuE z1>ZmdfKC;#Ix+OG>DN%(yQGua0s4;V8FYJqP7s6)Mb2Uv0O;M4?U-Z*fIiPkhXvCq zCwG!(j`=ZHjs3TaV-9akov?NBpC%3PSr+cIK=PSt`tx+@uEj%r7Qf&#W!&FpJ@NOi zdGqXtU(EDhx+iSw(Q%*W50xgHx_xE1XFUD)sls1oX@8jI^qCRtGdtX8e$+o^4F1Q5 zwt(J>~8arKl_DsF-CRkJJ8>6 zq<>GtlDQ#29Dn6xUC^Z(`Fafv+7-ygLNy@sQ!rR&=* zm)nBR*AKqn9&@ew@hg=hPFIASZW?r;>9IZaPo3TM>Pc5PYBpUfzaIfTdjR@oC&G4s zP85xqjI0B6A&0YEwWpQkl};@C+w!8b7m>Z}d+V>>pYBjaJPxA0t%^AuCUL7uZr2k0 z8`Iw_PfOu#bn~m!D@1N4tS=>T2I(v^%E2Vh9BTMW=0F-Rw&Vv#SD z*gP4xD3^$A700@1ww}UM7mFJafq{UD>q&D1h$0$6G}%OxFok)2Nyn+1Apw$ro;{6) zxPh}$kg7cL(zD*s*nSQyU=yY;4>w~0G<&!ic%ohI4uXHHaTqJB!vydOW@t||$W2tm zK#9XDFhI)y&_ETy%{n@R(md3w!!cm%tpM#M4v>eEe-`}PN&0iI5_k|0uqVI+2l?pD-ui*?Av{U+JPgf)iWMxF0etj=Z#zTt zVyy?DYdI|M)#=jdxg$fj>n7TI0ovo#;WBm$BL6J?C$DN)v5poSXaS~mo~fJhVDYa^ z;h-MR0T*~!0-H2Y@DuDx#*{3`@c6(Bg;xoV<=G1VghQk}01caX0lHk#l37m(M>{~D zIJ+%nl^BvOSO9b3Wrvqhmk!4r=RsZ|?zEbBxp&P@(!H|(oI3IJzg?Zo`~O;_RHEp}VJtw{*}M!ku++>~;o%6Z(WGU|;4!FiJ8Ipxb;J{ESz8>dro&z0)LOBB zH5E}zN5ltOmiRI;Lr0xVj76u8UthXD#WHA(ue?5FFgm{P(xIm2E$jELUw3p{bn}wM zhqrBN+`P(_wjN#F_hWPEx@X6&7wv0FWhN(Ih>b?4zc2j!^Oe5RCZlCuaL9*Ne$8vo zpwmZCV@>q1p$Se$D#L>d1WM)P)i&#wgCd@MY^d|4#|Aw!YJ7P38r8N%vd0RxbXLoz zl{`uYWiw(&fCf5+Z9!gu_A<22$KHAUUyu&UzqVYTzf~BZZ>8rX0Y_fnR$hRHn$io< zo=wC|S0m*dGLLFn-(?$(ZBX@A4&L?NjNnZZ&{Lwzk2K;%Z z<$=j+?R%>-=HdEVavI+n*-L zKGUo|3qpLBM)<58;4cy(@_ar?=CDFXO7;pT5%d5wPSDHC`oaXQ$Ic1kWWxiHVUaX{ls@1N$gzNQ# zi`GQgiNE#iE#2cg@*eZ3zXc3>#4z~LzRsRKD208vC@bn{o9#rU3AJ!PR`_47GN8R7 zM~l>&XlG^gu!^`bMO#OeMn6-R`a(nMu==b4wZ%iq@|4B|N{w z^;vPjr^zXARhE64x+VBPxq|lDuDLk?=nY{w||}*Q@tS(*YVV z7yi9-d1BN&A;r264aj>_`jTJ!wUdekoD||Vy2a}0>SP~v0pRK%l=Y9xcQVy`4&9+( zW!S3ncG4psZV?7(Kx7QiP5X3!KDus0tj($ebgsnf0FA#3dx!@%feisu;9valS7vh+ z5YA9m#nBBE-AK~F&;Zi~5)VIl`Ykc=FaFAm(`;eD#l&-SNyjPhkS87kf6xaI(Fx4W zOCa2_%+t=N3-bz#qgOiubVqdV$jx5q01fNh6#jY+H>ZpiiV41m#9i*dc;(`r3cLeo_f0I>B7k_JozqIPopnx`t`0*K;k`vUo zSIayQ2J{ThQmN#*&jJJVT*uLkEM3ph7@&E;M-ICs3=4Nyr)qsU{z>3<#>J@Ti8Sae z&!fi#3_h4g6(UY7jm1Nu!VXXSI-YXkmA+g2&;gwV{c!E+IK0K%i|HPy^_+u8I;P_W zZ(wT=$$?j|g(e1H!-R zXinkw>5c#mFNF@!WwM$`vkBpzq3JvTeJ(n6wG;{ft^2MW&m8^*pSI(_dSgGR<3e5f za__$#_5T30SDmU4U0#4Lp>ao)EGcMYe>^Pw>!{F$p+Q?L_H;qb<3vE` zJb_Iy_N!EtCfQ!uk1OuMxB?yJTx2>Qxj~7TN=PMde}H!EMhPh~w$N>6Da8?qvI@|N zQ+e-yGD~$X60I8~M}icTM8Nsj%V{g_M*MT9TeXt5B$<@Ow6bgC8g%MV>C723WP1YV zEMbFE{m9HfQ>|*Lk(DZ5DUz+*td@;WjlFib^=zYSS;(LyBD9qnQsEc0m3NeU`T@Fp z2yL%S8#XGjpWI9gOzSGNy!9zM@cpTkn-*KbTY$5Qbf#Ft=h^Mc zUw9hrY(nRbw=A5$+!?kWu$aZ!uQ66KJXp?hQq4D8Voln%0i#fT8)`d{IPA%dW-XPn zW{cKD1DzA7l?2$_0U_1K&^SM787-HM{~Bk^$Sqx`girNjo2Je}S5B2jubCDUImsx@ z;;nN;>r6`epr8L&!z0c%7Ng5YDrQXBUl=|9^$HmUiSoD|4;Xbn* zKGTCAogLM0YE-Y!gL`~z_y5Xn`ig&Yy)*gHsJ%apY&pm_?2#IdK9_swv*$ODR2B?; z@H_dBlcfKd8|1Sv!e{;fpLtO}bBFqj4_6mGyZ=nB>**)AbJjhAd_drj@boExJ;MV) zv%v93MWqhhP1<~i0If50lBMU)34W;Bt^@S>O7rlj2!sTslCq~sy3ai3_xw-xq|MfNjh1sEd2Pd;gpZ)=M%&~ z;uLx)#3PdVZin(GL!gfzR$qMDQEQpG)!SbAO_&qavrxpXK6I3P@(~MfSy~-Y(0gW zD$^`NvQ>i33q(a%p`_}P1Nnw1$$#KKv&QJtU9Ou0-#}9K*~i>onVRZt1dmY zg$JEGLoM)VCv*k^_DV-#&nE2{eOr3I6`;Kv>X?3~(s3CNn?iX8Ou;=m3MksM+zZew z>=_PJZsMy9yxXMInN>Hb)i7!`kGlf`1p;rCia1mTfVG-q>NpnAxrw2hIHp#>kD&dQ zdb}67&-J|E<^}zR!+nOIbb!XZ>j`-HMcXa7Gz?oSfWO4*s^%#dPr($9RSQ3PRseZP z8t7R+qJB{Q;lfkKjut?(r@tWXGT0tr{4=S;9&U;T!ICmh6akPHz#NoqKvJD$>p5Ac zXCP_#_h$(9bYb+8w3ngrY96(JFcI5T&9_TmUfDtLFD%!2T|ZVmqcl-kBW0~)tks;g zT(Fjj?W*LhRXkn@f*JU!RI(N*)(opP)2bCHS~=7RtklSepgK5V9*|Cj16nLy~VwECZ4Q?8&RxC@UlJYY^|InVsZmk^F5uow;-{j-=%jv+%Iw*HsM_;c0 zjq^ZyHVsy=i<{iTO+lu}|Dr4kV-~Vui&AC9eua@oG6z4Wd0fx>nNx4R`*esWmauuakGnP``mL>HsZDCQA*`@5f^-TQ7Nr_Z*9EM=`Rv@MSg z%IqVg_F^+>>t?~SCOBk*D(zXh6bDosKIr~>{Bo;vlW2(%)s3>Wk;m!YGH5A=9GBaT55DuvEgutNd%Sr+5719_ZL@hm`N(j z!UmznW^`n4^d}!LFk9ogsl^7vj#-eu3L!CAG%SLwO(;<6`c#M_A|-R z=pjga;E!CvimFr0v`H@*(18lAJt`Q$OE4T_Wh*WXGue1Ti&R- zFsbawr|C7%=2pJgyyKhw#~1Isy!D&p7koeJ+hro%ZRvo&%pUlc+2j6a+T(wmHR|sZ z21c%aW6$BT@=>GqP?r6SbX<~8aLgH=J;So6SO!kuu&mT5TsB8!aY7bQ@-4#sggi6& z>jnU{XFgHuv3qhqRB1u=?B#01k9FGRY7NypuQiO`GF8>g_dNKh@`(9`e;CK!Z5sKI z|4?6py;s-2y!K?*{WU{R)Uemx0#3D2*6&IUf4sK;w2%7qedrIqJ=tzumF~T4-TO#g zdJ~WO1>WP=>mH)d-BjS;{D}K{3%&c;dv_PQbq(wr$oHZhf9+=IMG%j4_jzI5KhL$j z@I$ThdX4#pyYF?E2cXNskI%No2Y1O($UI)tQ=91kox@u|m~?OE`226G6RLUz2K0BS z)RUMNFxOkngD~~t#08y&zr%XMPj8jCBUDF~39^S9ZX*{b-%er$MP%>-&cdOGa9q6( z03B`7ya1geD`mV5w@2a%k1zM6P4Kk3L8aIZ(3uuGi#3*W)E-gWPD#}`l7ZP|7dHf1 z;$&O0;J8)kN{BA7$f;5gC`ELp3)W(btq^~aml_4Ni4=FT+8)7HZ{k`duzF;zsI=Ie z&6?dsu+@RoZfnr50d$*YakE^dnW!YGN}4XGDWIiVMXr)0mn;MNR|#U1#SS|xCpfqj zWrR>d3P8zvBeWg^ol8o^fnuu=R!iFQdyyppf{V765lVrP(|P(P3S$h_VbsITVj(3J zlTwK;lTd8r3jV4V^ce_gp9aAS1FX-^0#H-IiQ!F{#>SZ4*&rGn~h z?d~K!#-p<+Du*KTD6$yt0L7G(bg7vvG?=pt##EyzhvV`jsZ`ZmlC{{tRP>{FaE?|| zYbG^}akK`oRl@;qVN@z(*g8#Z(zJR>Xyo}?!c=VtY~UI2nhI#5N)p_vQo+zw4AUUV zbpj?cFF=Ff=~Rk%>T!O=?V6*+-_#_kwKTuO;s8W$-~^92UG;qXObZ~UiEIK~GZ9q; z*(fXUG~Ke)sH(u+B?cqFdaJC$woR;1ZDw4eTp_7dq6~t0JS>YK*9!O}2Jm7dCxdra zXJ&Uw+HS?_GLx`cxukkFQC)&sBdBf;t4(oMnYe0NYOw^>idr$jme9EHgHH=DW+^yt zoZO^3YFVX{;G1MS%)q?@RqZ;Z(7-0pe{Z|h_*E5nE z9yF;Y`ZF1#ElIX+;-zg?+a^WbBCD~gH9@w*LJ-WvsMf6(>qeV(sVuCusByBIiBoVW zO}yI5Dc%^W5{WC31UL{JqM24fw*oZGl*&?>h}-Z|A_k!1Tnx~cPF;viUn7O)h*mG` zddawxyesGceOr0g=_I}R|GzJ9Y{?z!)(uM;90uLVy#IRz^^4w1+mnP*EvGHHf;C=q zZgM!+20J%6o$(fHmWXqJmeEoP&6Y6uyGpX5Z+W=W{luu4Fy~UIwy1x|SE?{6EGXrj zH&JORYTJ46oA1_3mMyHj#SwxZ_mREZ*R7m2WWb8y!{Wz{OB^xM{mSdEC!Z-DJUrVT zoFU_p3v(4qmf!(0EqDnlo{8Cn&KxcK`pY?HC}tt8gnd__v@?KiHIQw*3`ISGqBh#J z*jJyy!NdpK7TZH}sL(^^sHWcbTs3@xNTsizg3$gS%TiYa2W<@GlBA&W_uofH_J5zS zHRi*&rVfr={`lzFm!8`?ZcM`1(d93`kQ5fVQBc-0Qr?Ki(1tDO$Wa^&9lI_1@iDQF zkDTTdr&;ODu|qP44%(=yTO%Tu4IP5}IMz3996WN9>`b?Z#VAVNGhxPp^5 zYmSL_W!=XwA9v@VOGisS`D6mgr@i(T4tlPuOMLwKO+DojbN_5EG>x>S^%e7#h*^RZ z|IVv8gU8O6{GpGn4&;|x9Oq&-qEq|I=T2Nmu(^D2ae&&WL`DY+xx>ezs&cfeDf`QJ zzSK;M!i2RBE?R>tm68Qp5+52b^p6uGV?}#{2y}|uYw}49(4c%$&S4dJqdlYXOUaUe zGr|c%2F@|^3*P;=3j?%H&vy>cH|ZGzw3nef0`#t%0DZ|UUm}(Bly;hP9;I!kxu6nB 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 + + \ 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 0000000000000000000000000000000000000000..96a12780f8f042286bf380ac44bdf3c342d0288c GIT binary patch literal 23708 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 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..ad55e5f457022a1692f455e10e1670fe2007138b GIT binary patch literal 25898 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 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..f58cc2169a48a11d3e007d415076ac87fd2f4395 GIT binary patch literal 227607 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%0DZ|UUm}(Bly;hP9;I!kxu6nB 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 + + \ 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 0000000000000000000000000000000000000000..96a12780f8f042286bf380ac44bdf3c342d0288c GIT binary patch literal 23708 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 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..ad55e5f457022a1692f455e10e1670fe2007138b GIT binary patch literal 25898 zcmdsfd3ambb?12`MS>(m?UF6q3FCUv%1w(GDULuAlt6(54S{~WWKMNZ=A24 z-?{g`jd*;7;ZOuiER>9L zhn}Cw=Jk$2kr@}6B>r9dH+57WrPg#|u9(f~{V5}5(B|mL)R|Ogw$Pc-OW9N|dp0$d z(+@;xovJpRn$r`N>FMl(LF;AZTq-})nJ`M({0u6tRuxNqxm3A)n(m~!g%a)d!)+>6 z27>Wkyp|%kGeVb+B*LTpvB^X@9tlM!$HMVMBsM%b8tIQvaH?P!g}I?r34@IASaOxQ zd|#oGHzJG)rxL|f8mL*N$Fdn?c7oPsXYz%TK9WMql#wmuCul>qJdi7-j6TtBpinUM z5?3rIDsywG(&Df_kLvmawOd)ovc@du9nn)6y%fr4%vNpLax!b=bk!z8EjfMKkcjqD zYoV0Y^B_3-MNv^e$j;0H>t;>}9D7j!q8hOhKm+{}S1^a#Y!r$nw6^(KJwIIF8B8t~ z^(eJWrP8NnN+3hVpsS*weP?;P)5RB^k}o=$?D-7lZH=T>f3~Ej87+hM_%<}qQ)j%A zw;F`=l{vr(N;r}ZJpBz;o+OgUJ3)aA&@Jmm*`RGFe0v&<^T<$@p=b2zR3&F5jK!R8 z(A6t66xGnIF{2x)Y)+xGTBZ`_K(Ad1imV7Y>!%B)xs)-GN*jgJqRrtTd3H{$w}fsO zv_>wBijmD>9WmYkUL+OFtXL3HYQy3%m~mWmYMo1E^J=gLt%R0Mm4-Z4rGng;7mT2W zy4JyHW2syPH0$vlt(exB&7Epi1&g|HRZPolulibJbF1pAd*!Z1EDl#awU#BdnUiZm zR!t+<7a&ehW0|=FjCIXQjAimiQ(3NXF_IJ1Z0K{vT*_b=oh!kRA}gs{V6ImgyzmuK zHn`WOBFw&(33JS~rp3q>ibVf&3c`CM{xm7Y>vqbw%&Z?Is!MPVSJ_C#J4@84mh^I2NUR;cWF3s#bumq=i=_heq>?i zoYm1jSkjG3DKBOee6rTD=A+p%FZ$*(<186j6$@S2yJ)aVZL^9MS9JMez*E&Js9>== zW@k^0bPwnBIcS{2PzvB8{>SvMgJeq2W^u$^QI_5w^TlLJ!oMyJSO9+CD* zud~rQXP&6Y(0&UHDGNqYnGEa|gElzKt4Q9^XY>+42Bx8#*$NZGRp|sM%IT|Ankj71 zItKt@*r54_S!jf_0Flataxj6IDb#2#@hDQ9x!;!y1ZN&`!&TDU(H)apbZO9y7X!{} zr$9Dl%e{ph3>znXdJBb|p2{kLxCF^LJg_Ee?FP$3JNijwyft}sPQshLu$ zIBU>$-zgi6kC;^%-y#T}PZyYt6=cpDa5Jv7XI*4mD@@#KItE3)n~;H0LE6uXBCE}` zB1fk$!h&Vv3WA~qo766J+N=!cq_!Z}jmo++tVYt+D{6C9fkJNY%E*m5VJZx*j;u9d z(Dk*0vRVmnkdz%YO3ErJd6}P-jF6?bw_x$HffvaSWJ_h^*eq5lTL2TZNtM8Q(qU+2 z1Yyb(v{mJ^YVQ|DdkjRJhT2CV8pZXw!Wo?znQQbypPuTaV6jln@}`9~BX(D11G+gq z%c%&hn&%B)gtP_xEkY~v<|xe~n>hz^ccXJp0WE(fi{);R{~Tdc;@F9pt-$;){mDIC zfiAIa(4Ae@pVAlA%4nD?WQ1VBs&3|Q#UeXbp4TDNR-Dm_r3y(dq!$Bjiqa*HEY=rs zeOgDIw5d4OIfl4q&dv1Du>;9G`q8k3BNlYK{Ey2<^4u=jYxU%kKnSNF}`)d}Nrkb+RkWh0TD z>CGDDL28{VSgD2LWBq%+a_)Gl^y|lOExi6uN7pc+1R08KMy|299l~~b@zp>3^p6hy z!!Ka(4bZAHyqARpTWi-Eu0Y3^?tb*#6|MLFAE2+4YpE@E7f+cmDM! z|KDqXH(|mnYN~%mpjP3?vIq)Y(uwWS)}^K#&k9t3v$F57PRW0Dv%$+JGlhi_ooyPJ zkqdonv!N?Urj=}Rw6kiXwWk%rhKaQK2deabebFlM*1Wtavs+gy#70(;3dVw!xRa1R7Sz6NLyvLAfHifwg3NQwHy|ekHuw- z$2RB|oViZ3Rm77V!4^Yq#2_fd{=${BbO*2lZ3R2Yvu$(x2ZmS=tuJkMYob>=MROSM zRvQ)@!svFP5iHC8Len@I=V=A9t5sgF&PI;P3>vAa1cZRas;C%Hd4dNng;-FGcb)ih zJq&8?*URZr_QJy#K2s14-cqGT`4~y4(keB|NZeq8KPZ~t^yz26bo@QJ-XHFmefg_L zFYABZWKL8Q6%Hv~!EO6ZWJF0=R*0A_xW=v4V?vh3s!KhXT{e>i@#R`1Jqk=L$IMYp zm?+wBgBnLl`h|ym=%roB>{k=L-u?6LT~DQ7{?%)r*!n`^se$`Uq)bdMj$UGeEgrfD zy=18ey_^LudN~VR^il;TmKMEqn@;AJK`l2|Qh6hr!5Q{4JoZ_fv))}Z&CaJ^FWmKw z^S??>Jr{fOT;GdtjAjBQ@lY)4;xSq3K{IE8i)PLO7tK^b70paSIo_bzKx(Rly)Mq9 zY|~blO)xHfO(tnvnkS;H(3r6N&tbVXDZ7%9Spl9yx+)idgeJ~4Ptd9<>@#_%vC_6c z_`gsef|H$5E7pf7H=sK!B~^8Km#cKGo%`E6fAN8D-?dLzq(D&<^xiC z@IHPZtLGdC>6`ql6SzXB3WZaA)DzXu=(%2M)7gL)?#EQ7~drsxkI5^}TroA0w@rd2u8oL{@q2ug5ID@paxp!p_)!-8e zyRcR^Q41JRc>q+mms+TY1a4J$ZLun_3vNj<_Lq+062=8(SIhqLh)F_L_M#QE=;anH zYyZ8ZzbI|B>LhWDX=IC4HEe|4E)SE=I1=TP5H1|9=!w}Q>Ag> zXJB;V>>tJJRB}oGVp|E-A$(81``F)+vVx&kDd2SdnP2|n;PW3Gd*#?Q|7+;3<%FXp zZNvicQobKx@Zxcghcc0+9)i(X;1Z0^0+(P^1uToWOG}yDW8r9hDB=hSB=*_98y+DF ztC?BKFPA*5AC4Wn2y5J)I0=hoVMB!KvKe?q)3cTQDKK)^N)pkA(#K7}#cjOsbm8xI zxE|Kqxp6&}vr2?-rx^lL_T(cVm-aL_{#P$$kA7y`BBNA?YX9VvRRQnjn-csT8{rHlq?hiof zRS?l>CzTCq=<4X|@}c!oW7UV&k6iuFSAXu;3kN=HY(8+^!Pw7!b6S6qQ5TQLJZLRT zJ!tJLaM9XX;G(rEsG{{_7f0(>4_ddJw#-@=uw~fV!^ZU?_2-(OytnQ|{l|asmmibq7Pv_5EO3!p6;zS>85ea#!jG+kUZkG(mLN+^V;<=p z=m1R5=a3g;+NvNQTbix&v-Bni-q9f(6ZX=Uc^Ct6y~*jTCscCr71{I0gu?XM{N?F8x_C{jHqwmcRmB1a%%Ekk(el$x_|+s%%u z%UjbL&Q}a-i-$*I@#JJ*Y&aP{o|Mxe=Xkr{5|Z(We6ovU1KH{|32~ExI1-A7hQdh% zR! zF8Co@K){PS%~iwPtlGuHa*UI`qr?4f0GHSdWoi|veq9Kdv`$8b!jluRVHXbTZ4i8V zG*QUAu`s!MAQm4AB_{_$eaTpST*8<1_C2N)gM*~7!@OOnZBS$Ei-r=3$!ILpA4dEu zFKh{WlfX_y%L)S`THpw27l^G2#ArM^c_hRXihE(%E+Fwdq9Px?rRI*{NHeFGRQS0I z=tc!}AQBB@O(tSdT$FGk=IcL|gT^foo|GH{Zd|af=?D*vAf_OkaKe@PMF4>NGv~2# zS`#d`1|s2TzpJGqaDbJdtII}=0|Lp}k*|tHP7wvM_mR4z>8`jAn{WD6Y` zT)609VF;g{Fgkbp)KglM+oUpxq}EFd(AJUwf-jDw%Ck@(tD0VX?!xBVU#O?L0h~=@ zVMs>Cofl&k#yEn*G7H7G9TIB0em;OVhX>bTacP6Nn$%w^%&=+O&Xe69l3lfPX~dvM zCXNiAndli%D+9+nIy-zSn!LFymP~UesMDQo89o-7j~yG`8|%Nhd*bl; zbxfUFjb5=?5d@L(+Kywqoh$7FL|gL&&wT+!xGy9CA9KtB;LxY&!Jj|9_aW0BHWEr*-Z1Y$1(-@_aPvckklS8x#t8(etgviWpL+~VL(M)d}!mzp6(b#dVY zXEu(uYP(-UU}K-%;j-?vHVY4@Q*XVM%h;(N{bOhiRP2m62c`PF%z|YZJ4<~JZ(gQ~ z%MpPsT{e%v;8f0gOXoZ-Xc4q?j))J4BsJA&Y6#ehn@!Y6F5Yo6{~F)zswq-)$z(~k za=DKh6XS_wcu07pe6PjuRCH8Lg$KljVK&F*O5($QT6!u9xo}BdpO@CFu!Gh4!M5)0 zycSzwFNG(EM~8Z0h}9G`;G(GqN{!O=WkaA*N)eq%l9BUHiTE}xFHS=?423|D_+;N` zJRTlSvhfx!a;-BpHD9lqCu2!mMdrqdT3ZX*!xYmlmSU^>V$so|VT)#rX$42g+`Sjp zcXH-Q90iGOs?~4Z#q}%31)^E)>uYb{C1yHkZk5DtnUPwS$ah)2G}PV;^HUX;t7>mA zv1}3iD0lRXW zw|ay5p#uHh_teh(nj@fcZSAEZe* z&ItB1Li|s3r;aY1(SzC(JOuIhf~;gAX%##n3!I^{s+lZsdcIr*rsqqJ^=&}a0nZAYQU4J3esyz`qWH~wwYEGo`W&VAPX*n5(LLcFK22AKLF(|%@}VVL;`*)4x1nOP9`+upz>WQKsy?Td)x z;}-8l=$XDWD9>>dxaNz;4D1?=-oBVDCPdvLKCrU)(iY%$LuHx&YXk{0zVG`tiuuD` zQmkZn(Xc*uk|94y}EI8ME11O~jH*$8YdjFg*2e zONiMvNnqzFG;8=-l7t0CVfk-%Ihe8Dje8t8gco;;ZN@d|hLt(qRLyoXF#z0p+UIBP zI8G@J^M&thy6VpFDnH=|_cmfga*E{5{H=)Xf76WxdM8fpb0#zJtrpx;G9b8sug}jG zp%MZd%&Tf!MT}~virYUf7;Nk7WnTK#SmOHbo`^udNqsOJgj+4ciD;W=H=o|bPNoeTh#IA>`R)(`0 zB3{edORq9z#N#Codr6jh*h|g=m%ZdHaM??$pvFy)Tb_B0a8)=SkHzf)7K@f46%!XH zcwX-ST~`hn=KY)fJ72tHJo*dZcCI*?z{#YqDUYL6`~V1kc+HFuuzm+lLS>5waVs0r zr9!z3M^K;rLvf7qix5)m^T8Qeb;)MOFIg=q)$l7ZJeB6kA>rv+%YC|+l(PV5v~?$X zAN@aD{%>O-`4e^cy6Kf~|I^ca1+0VqdlS`ZbcH%4E>Cvv-Fy9>>-X;6x4&mk&ty;c zbv^sLny5h&j+bSn3X3h=yH%0dg_4Gg*=CH|q?gA}TjAHV6hIbmR#eIXjV`mHT4yA1 z0f?Xkjn>+w(hI857CXxo72zsTprqH{)k&4JQKPLkMAgo6wtE(uu3xW0DZf@zQu)yg0UoGL8Hs7x^cvAxX|=+#%kin z7vvof6(D2A$1syxETwvP#u8|BRaLo1pnw;K4iC46A6~F}ak$?#YMtib&q?9h(x}5% z$vU`KhVOwlWpmr5Wo6kuF)PdVu4%NY>BRbb8vA6sg)!OFJ}3Z1o`M{^oA9%P5ZO&Zm2+digILmz&kqlM~e zcaXNzj%L^;ok3bfjr`Req$c^bCrAPLwJ%7`^6R=FwaBjC+ zl?c)$@@q6mm&&hWLE0+6#)EX3{5lb&%jpUp+pR%*ll+|mn3eq+5Yc5FF%CAC@w$YUueq#}qqWsN=BnK&I)RwN4@nfKf z)yPCJ2^w{6lg?odLg?fGO8?~cu@+!t1gS!2H2k0=V2to0Dr>ZUDI{5UAxMi>U9m*U z4C1$gbO&b#7{pkrR1QGhk!Q$AE4`E6-9+!wNQByTny3cpJ@h-^B3#AO=o-~Kds8}N zQzsE)b6~r}@2#?$=x&VJ&uVt8CowX<*%qMpX;d8>7ogt-H%t8!pbr2)m&gv#hmfUK ziqtp(`Un73shR-&J_LfQY3Y~%-RsCTl}ms=X6IU3B|!Jtxt2N!&?m5(T}WAaBtV}8 zy;Yws1rneKuz1Z9m*xo2AK682l@Xv%qc7EJiLMCHL*Nfp=1>v=`eWeWr5ytFIWVhg zp`tkh^awoKNg@LXmrcJ=H9J^zD$1; zq#x3Y5K9m$Vsj4u+~zU1Ci*efn~k*$t7)Q_P+#P7FnOmPOpcj0$ra0GxTl{6>1W(i zD|$kf>TI1^D_l0PxkRuus3-$l!Du>E0t6nc`L|FVt4Ms+v4RwDs7LXJaujcU7^hC&o?s6+9FG8Av9Lh*(o6mO_O@rDuT`=h5{6Cs6X+B@)K{U zKJkX)6K|+J@rKe9Z>T)+hQbqXs5|k7vJ-EpI`M|06K|+F@rIHUZ>TuD1E2`Z20ZaA zui7B!!N20YlrqEb?~E$A3glo%a8s1xSk(3^5Y;sZsNxwe)RIApC1GKIKq!X zenj~(%#RU%#QBlr#~443^J9V^xA5aOe%#KFDSl-5G0l%zew^e-jvx8Qfh}Sd@%#|f zJVz!pz55voBn#};?$~*r$~$(Qr}-Vb&(m2Od&Zl9$0|bLA{~aAbp&l-CP)a{ zGvM1g4E5-ao$KHJ6?#V2g&!_$-PK^&`$10^22uWdL)0( zPTq**NA2W6B+uE&n~?mtojio({dTe!$v?1@{Yd_yog6^&Q+DzQk`LO+K_ow8C!#h*JZ=;JHdvuVBOvZji$6KD6Q?HjCO!@ zEU9Ts9Beqn3c8#~dMmJbTw(KNX8oP(pR|*=AbH+S-iG8??Bwk>>YKqaM0ucI0P01c zej2FbD1+@o)#U@K%aefejDqqtURgWWf5T2@kbKTgP9u52PR=6vpX?-q`j(x{A^B%^ z(y=P9goGhF3;cc?_}u~g-VXfk1Zm#^LcSBEeHXC&FZAcY_%Bei0ja+fvWN-Avihgm z&}EO{{bT&`zaaiX_#49CIR4mqb{c*O8zQ;z&GNB*EA|EBeS4anE;c!F+!ivH`f^dqEpAT=RUe~Z-R zNZlq<-$AMksasUdU0(!(QiPQtu6Pi25G?)lVGQvj;L3Y3%yZzj`!Uo{KpZ`Q;eHDD zus(w!KLiqf4lO=UAE3uj>kD)reF?+=GD^;a1b<48&{si*ui@)Ckm7mzCjNVYzD3^$ z(O;(Tq34(XJrVyWF5)BQAU;wK;)|M9#Q!mf{}PD*GZ6n35dZH${GWsPzX0)H1@Zqk zi2q9v{~tm8UxE0qgZRJZ%?q8=H0&Z)(Suqe?DZCUSZjsFy@sCD*20wCNEftCFcdF^ zy|xur*_-HP?HUmOm48pfe}kN_b>f7zoBFkVG^FjP5$#4AhYY<%dmH5FA)3|t>9iIm z13&QncF5ItYQuDo76b7UAbt|WKMvxLgZQ_C__u-hQy_jC#Ge82XF>cNh(8D7p9b+4 jLHz%Q)rKFDL=d>=X)b=%%+C*D9c~Z8EKjQ==+gfOo=u>I literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..f58cc2169a48a11d3e007d415076ac87fd2f4395 GIT binary patch literal 227607 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%0DZ|UUm}(Bly;hP9;I!kxu6nB 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 + + \ 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 0000000000000000000000000000000000000000..96a12780f8f042286bf380ac44bdf3c342d0288c GIT binary patch literal 23708 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 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..ad55e5f457022a1692f455e10e1670fe2007138b GIT binary patch literal 25898 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 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..f58cc2169a48a11d3e007d415076ac87fd2f4395 GIT binary patch literal 227607 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%0DZ|UUm}(Bly;hP9;I!kxu6nB zJean4M(#wPDK?)45k7NA_{<&s=PBWT`rPO{*Zf4rz~mECwlse;vEYk0V?KUv<-5<% zfBn5#FMc)e*{yjKD^70uH1j#bxBgwHad%C&|8?T1d*{6TKNE-i{fm(Pi(lTex1ehH z$ODAsD5IQ~6yWBw?EuXIKp#?+YDLK8sNVo+ouRz|4gX?*p5%`zya26Sa;Y~O>_66z z+B8j8On2Y^sQ9qy`M(>+++`Sfzi(9Uewu%uyI&gp=<&Lzj~2_Q%8sh7*UC&+-0I1u zv0r^a+;`7|U3*47(&x!X1E1+)9QI&9L^o>014Pu{sF1(VVgICuJYXLAsNc|TJ;S^9 zv2_m!?qVMNm!7u1R8Wsz55D=V|Ap4~f2axhHGt0NfS$EdTETe|z!(4j6@bH;{o3{0G!+24iY4-7Ay-ko z0F48bagTls(6|AZ<%>lO(CHSsP+@9hX*;d75OR@O$h13?o*A`d)Sy*EhOdblb*t75 z8KZ0M;L#v`;nv6@S&pDQfdfXV=j3Lyw2M;qvbF{T>!zeq6ICfF1!fWmz(w;-l+s8` zl{{`4^@M!jj)R^?P#oEr)5ouhqMI$YMvLYWC4lS-MXu14T$(Ib6_>?QCWytrl#B>? zDS{KTq$ip!wZ5Y|FJHoG@bY!r2XZf{8TH05S`06N#i z0RflMp47+`z7_dKF3-RM1eY;-6`XV^U7zyfW94_U~_ zSw<$)#K4*zx%pp6_HZg1yJYt%!2{boS+z#0a zP*?>Ua=6stc4(Hbm*q;5X%wXzf(3eR^27}Ts{sq@t-l>xdEMZn8mJm0)5@u>;1~o@ zHT}%hW)@0RsieRrFazKVMGGJp(=Y?bg0qXjLYJgfDVA!By~ggWve=qKBWkUVVu}Nd zu4F`5zs(X1o9GM;d*}$zz?AKjsRwmPcnotuBA9_QgoSX1Zr;<{O^Z-M(rn?0{fBNE zFl5!>sHG!@EgCgs$zvmzjTyFl*w9r&2d^1Cbj^^#D~1kTI(+bgQA6jA8oKPsu^Y#Y zjUO^B#SsPuvx=151Pd-lHA|QCH13fpae&CT0yH>~aL+pdbaHrqRMZa87h^C$1F?DA zkG;g)N&2s_n)hOFmA=kx_Vro0?{hq`q`J-bLJ^ZxG@)GwYKM?4foPYQgsjIn@A zld4z~HEWV)&6F(poKnh2m6T9H;;-d(4lT~u=kPl(q3zY^K=X~9xO15?Kb2*n+A^Ha z?(m_jD^|vaVi?U1j@asO;13RGkD!x>P;CX;y9*uOj~eQ6x4C`$(dsotgNLj)6A6-7 z5E`6ivurb&6DcXd7K}2|(D6eD=FeVlbrcA;8l$koBtG9&@&LkY}UKUqRB}WUL=a83v{1p134IOK%{rH{Dg1VgG%0B-HojHUDGCaBy z?W#kE+t8T<=)_*&Z?w0q?vr})88+zaeti>OeG&h9?0D&GZ?7VREwr%r%{S0?_l@TKlg05UDFG$MpNCB@?MCOe zH^;4>X|=2iiu`GF3_5Zg#iT?_;jvx7pC4Sr1{cuwd|$bQ51nfuHjEyQnyb;#LulEi zWZt>RNTcLLxW=YgljijHE2OQpf$AS3?7547oanEPjYBZ?8v+ScKO`eM%}3q zyR$qaUF!gy!FC4dJh0jxfIh)vfd0Xx{%EpaA{?iA`w><-E~$kIbs&Ag?3{^zoapdb zGUQK-#{PL)|381l_MAbDE*vuN!j!q+uX!e8R^a^a9-2M#!TGBmoW8W@R}<-vKZyGF zwfXt8qW91Iy6h?Q^xl8{viE%p#`;Vg_4kQG9{4nP@cb7J?#izlGUA9yJx(j<1m!ft zo#nVQEbjqm`H-wusZs`qhqm@Yb4T44pp(=ddnN{=avQ4WeyA~e09w9YZ@p4Kbn7fx zBk#KZQSM>W({~%k-eVm3knfP5eeD5#`aBlV`%L}E2Q$J@@n8VlYsJ)$ZrjPWC%^oZ zd*G42J&aF1WO(u3fG6%XL_BEf|BvoN?)Dw?r-1%GhTyxX!S|a7b?F!GXA19Y(7FdG z4;#Yo>+1+4Ljrnt{q{BC$L0^OR)^iFz9WFn<1C;;?)PSb>x`cNJ9UKSj_PFc{-yL> z8D%UU%MA|~0y8(WXWVvLM7L*m?j+d!w(8V((5teWV`X<#1Vu7Jl{C$~jY(&YSVuS~7RKu9(T+ZW|bpDe~~(fMDv4Qma|sL0M}8*&0R##Bo`j zX@SN{$qMwpLkX!e;q-ZMR=9@4X?i_laCkEN0`S$zYK@}h5kzWWKsss4zHbqN8qHc0DL0Yrv9_LYTRjF>-fau37gfODI#~lA zs+N=*SuJ4bbdF4>P05rolO_szwnCD?UGWBKVA%Btf4jh)1$q2Y1zaz|0(TqymU4mt z=md92cggCp*anhsB-uuS2UYYnG&2}3-3-nk0X`BOw}_(PiPu}KE>3JzEyeweO}tWT zWExnUHP8F`9&iUEn#WgcvxPKDwknfQY2<4OxiXM*o25NL1N4N6x?8BP+1>|{78?~i zEXgvMamH?jO@o3&l5vK>Y@W}g=`1r@V|BC!hXaom_?w})f~r~kVF%nlJzpM8mt1`HV#WGIDT+DKCl6n+J4Z)>TV%fVN)hu4T<(scoPxyTG{K<2seYSkz z#Z#pchyg@~Lx4xrF@!@0=z82{jIkbAKaIXUK;zfS6AXhRSZ*i%S3P@R zr=Psi*XbnubpGEY9ry2Cw{D0Bmii9^Gzf|flpg@-T2h2^>!Rcm7N<|m5wY?G9Q%P2 zqaHJE0(Qz!rjvWvCphnrGE=1PLrszGOe~ z?RRMNhSE1)S*1wHyZ}a~G%&!;fZIltb5yD58M%qI7Y!JBee;%M^A{8k9OY65xcn_u zMoWflU9NC52dH~iPQSKxY29#D9S?R`KTxp zrNk7B9G0b7@(Cfw$Zzo{x7k7}Kl}33)-9;K1i33wbv9OI*5$dAlf#4NnF6Cnk2t$} z#pM;NipD%0Ln`q`X7{ttqWmt`+}w9-CIvk;OIC~OE|TV8(`ZP|KY@}v!6j?Gp9=sAmLz$W95lZ2(1aO6`C zK+Qyv2h_}FL=4a#h6aGnVsS`Dve*Hj1x^QOy`A?zq;`P*1tR~p{uMw&9pDA%OJ>Uz zW7q{E>>VqxCac_ICnwuRY%xP?-bO z30E*cOP8vJpX$ZSb^Q|-sdnxk4|b&=F+FiFG4>&1?4$m}d;5m;?%@}%c0FGA`N6En z8$|<9q2tE_^R-&rq1ut3e?UFltxs?Asr&mq@s}P^|Mb;*m?Q6dct}tG7ak@?-(~85 zw`tH_zM&8G3NnxbeGT^R0oF$i1G@B!@b?cgbnCj{gOKZW?_YDZ1N4omUdZ+T7XYoN z%h2UTg!ud4t5cGnUC0jEUYmUW{quL8pN0Dg5Rx*Gq_U9`I8HgFsS(g`} z@rv||r(J;z&MC`@Ng^L3 z35iZ?qD751QRybGI8exV#IJ@BfaG+!&AMQTP##F<`kD$&ER@MqBLUt;k!H=5CDr#Fm6q^2}nD;Hc#7xq*CU00XB1wgtc7tY^?~&zPE^fvR(TArCPeb(f!=T7`?!~9p~ef9C$nI9~j z{LYLoKb-pICsVNApZ?{Wv%Y+3?w7C5`SQ#8ljhHwvi{32wm$WIq9Y=ov(&Tdc0sFS zm};IX!vIZHihK<(Hqn@&-882B3fwA;yBpTQ(*b8g6gva-#Z#AJ($|XrS%3z4!Suf@ zF9+YDZr#u`uoRT)&KCaPEez1$&cRy%42{Rtr|}m{sCwGRTlJJ%D0|grwgUWrnJoy_ zat8)&wF~Q=TFHygHof<5)`-zLQ6p2V;hPP7bRd@_*|HTIn8A2i+G5q#Xv%6?TE=h- z15L|}=k&e=SQVs9ORc!I9yjEpmg4ASLPGYz$ zQA^S+tDV}){*K8e-(@nlPO~g!#JL2wP*fLc>Oz6qtgze6{w0FY-)Rq0nIjlV2 z8oVidK>A~2lAj$NH!dnUDkxf_qbVXMIB1O`ud_Qh$@W;*lF!--07(TgGdyV9(8%ba zQLfQXlsx{#++ks#4p6>w^4}Wz<=P|i7<-l!k|~E|P__~&yh4sl^B2<0T#0A_b6p_? zrP+d)aLno;$CjYrEdfli9GWkO#PLeB!xrPPrU_sTY^7$ggi!K%dy44X%v(2W&RAzy zyww35jOm%dX^}m3jZ{clau_v5;1eaBT{Ig9@?nO~CzTvp$>ac_RRHKDNlFzZ9KQk9 z#73OOZFN5$SJ zRsVb~a9`?%d1)&i{$$WUzjP2E_KWzm+h=R#i~}DfADjGI=GT1|t$S!)(?c6~{eAs* zpAAhu>sx&mwfIad^Btc@zBy&&XCq?V@0VP7_pKDtJiT}K>0+-r1ABcFF=p|LM|bBp z3?FfX(vGsyab7&Za-JT90MG!_+EKw)Cqiw?=djXk)t)hcm2x>C4_RN5qV(D~-h@g+ zkX!h%+W1qwaIu=cT1Q=UJG0hWL)5=L(AD^$VbndQ;XuIM{D=4P4|}A0U!MI(Q|VL3 zE1WoZx{$bD=!fdGi)~Mi|H$;vgZK9Kk9f4-Ai(0jfi{AOBzuh^eV^(ZFtkfxoKTT@2Eb${k!`P>K-_*yYJ|pUG3&ax^Edj;#$?4KUIYQK%?590s6#jYhrMh zEcq7z4Q4_I=pt4D==>e>)M5X3fg!uCz`EVJz#!sN`eok{9dtVJ(9gP=BJFocPs-MD zib2i8XC0?SBn<$aLNhCz13LorCP~aU8%xXq87u|BS_t%P7K=$bk0R4JDuZF5vabms zs{_p?ggKovCkterEY!%(;vP(?(XoznR8OCso0st9ln)-8KVihe$+v3M;;Faly%}FG zernWas}#!#IRYG1t~833W;Nf)#rYFk&BP{#iBqIZn`2ei9$6+n+rW4`^XXUA-h2x) zjFd}pI3b3r0yIYp%qnxhGNb<*f>>uVCrL`4Ehvo^<9!X;Cc0X-wF5Lsd%D?Cxip#0 zkZ`5>&ImBUF_aoh$ z0R3>Kw@QERorLpJY^9NJ5bd?Hvsw!+R2=aXzlCJB2;w$HUTW}-(eNl`F{~*^ zkqRUs$4r4^R!;FyomUcg3iIH7mC$&^$3%jTr#b7u54RIySyi9=1w zNT{e75CAvqJQuuH)tMt&;|U>-5K<*ani`ZOI8sDw7Kg`sgBK7^0K1f=01gHS7bHr6 zpYnJqM^+M9X0zG2g(X)8_-^CrBuPk@r5s64Gm#mAM73zeIZQnA_WQ&S1)L&|14;(x z3aZa!(zGqWHx)Ti7J=r3Y_N-XSi!5q@uQ~u8Yt@IF-6>`8NL3}AXDBNXk3I<16ZnlTGha@zWkJ>yg-PUyM4FB_ z(TN5wB|u2*!zTCPs^tDIB{J8H6Qz|XmSR;cP{5JXk_j%0*9sM92Ce2WmJ%hbkauK* z5hImSPIC#CT2XOv@KO-Pfu%*Qe-`6NA(TeTfJ(Dg=*O1hq_k3jAeMVv7OuZkBQhON9v!;9tb>iAH0d;)wC3lX?+3loq2{HYiGJaF{!4RDPgT zz)^tXWGqam%W}VC~ z7tHHrG9$=R6&jLkAd?6_&k-3fI@cQos5>%58<-&6|AB&+oh+nj&&b}mQy|cDqC}_i zEL2rs+u_mVQJyaBtR+?W1wd!=0MOij9H4)1ufq=X+z!wnSbkf8K5w?4pavgj!cNQn zC&dR(t33*}z+I^cvr}UFjeq8zciG5~9-6z}Tv0!K&zUc_HhmsG?~SetlJ8ov_s{cp z`b>2BOf2%5S>-dy?elIym(N_iUtTP|IAU_lQ&s2RDmwqvgnS3}$5795V08 z{W~*jh7CEySPlvDFcsG<;D0{Y!~Z_NsJr?NdeAt$yWg;0zL5|0=Kan0$Etz@eU>N)8ql3El9^Bn;7X3=pq7RWeQKFvs9UhbO(?%f#xz(J3yz? zG(4=L9zwRia~T~}vtrHC#I<3Q-U(aqtz*$d$D&D{ra?=l1TC2i)8M6`sW1&$HtpG& zU(I{viB&=BdQkv-noG(BCOEE=VdgV5d+xvi%UEiiD#lnXDOOu`cvL#U;|$846c*kr z79g0x1K|p4wxq`M{Cd*7iZX3b`Irz#&fus-d(dhFvB^m0S%UIJYle~5=?%BXlT;B! z6wpK-ZOmniaIxF0wrK%|`2@Ym>Rcztn|LW+v2Hd|0LNf4Jk18U2^qi_;JcJyON~Ma zp%k)Ox}aiu#(lh`wN7<&xMORGeZ9o5G8hufOob9uBL)=)vbP0jcr*ae=_V$dQ^6c1 zz`r38rICX+2bg{hpgR=%G(}tctL&4zq2t zTh^M0Xg{(={QB%9a&=hSeq})*iZ1bFL69D`eX$&%gw5RysiIpJm|ac*@G) zS%G&1wLlDE#$QE39C0>ztHy6txb>uQGid^jFHkhNUc8}+EA^`F(P`o zW!1EhP4gl*E$F{|=8z>bM=Y8-Z1K!N%VvhHoM~N$6|{8f6H8`&Hg(dh*WX?5$O4OWR%r33)Y=m3rL-+4NQR^rfboUfx1u&hG}M>{}YZU^Y~LTEn!{{S@B ztsDM#0J?}50XK^T90F8^2Ykh2RKc`_$3wT~N?eY}wlg%zmr{HhLq-z;X%tm!3vP7` ztfrl%21_Lqnq#yi_%bnmWQv&sW`N!5sY3GtiA-NJn1w3NUP5W5l&z8rf|)ukyjlt> zXH)>(N(!i*siMhBipcZzcZqVjqUA|aq0Lfg0b9qE@kE7aE>?*|B`{6{u+|bODXklq z)l*5q_-JW#48%ceJpQBuE@cTtxAIy|0O_WLT1CStwiv#g!@=C8ssiS;)=%6W5WF`a zvd+(uYtqsbHOVO^+KGG{T_RKY;NgpoBHQ2$KD=Cv%%^}gm0X)vW3$%FxR-E+nJbd5 zIg+i!5>_Dumj{Sdq*SgdS#W5FA95A5uF&>kRFs=VazrBd0O_fKKNM$JC8p8>5@L=RN;}Y z90M0Tv1eCW)u_Sy1#Q19A6Dff0v?9&BqyGx<@1#F6zgnb9L0nPpa3<*t@;&!?z8V3 z0u_Y;K>t)@yk5^-as~eA_B&V09jqMt)W|N~eGT{Z>;HGZ@cRP?clRCKv+uAjzGJ)e zHhuVZ-?Pobk=uq!&8U(@mE7?X%d$z2gxP!sM|By{|Ndcv9vBgE*HG>6FGre(%6&%+ zX8I3Sx&;Ju@s*4e>~~-n-=U8Lj=0}A<{tmh2YdDib>7!nGz7r?TCI480G-cSK>uG4 z(0uy{EHDLM91ns>XLH1r%LEnA<}*>UMc!paGx@2vaE$ zn90!@Jg^1M2mySV$52Tk4IEHzrs@Nzxx6C+yZ14uV@*JmPJb0 zq?$+x$3OZMtymg2WZ)u|+vK!go-!FtoR&n3okk(i1@q}9E?2T9bJ7Na%!mv>_RSY) z^Ewp24J}!Gb>^IcsNpO78S|W>m7)F9jC7`f{3Sq}^60=^CNNPX7i(hT^G{z`w+dxv zplzGc`ZdSD`6kY4O%QSa<4hLcNr2!oGg}VOW@3v2xnf2GE>937py&9(5w#z^acuE) z6u%y&#avxFuVUQTSeDPAr83?I@2{uDm)4~NG|(_S8hEd>Xd#nR5=gFMz+g0E_K)98 zT@1x0J*&*&1|~8%o*Zn5OZ zN^$@J?C$9bi8u5#%If*}utnPY`WvSvjxTxq@zpG|O;fKqnv!SHRkfBt$XLp-!f=OlBjk9XkFO`DmB2A zFRK}nlq3nKK7Jp?Y(xuZp}37`&62iPp96+o=kJ#z$)&2blv9ccPa@I-D2zJ#p)J39ll}7yK`qveD9-G zL!V5w4s`KO++UCp8hEDqCP2G50br$`6#f?gjT=7o%zd78ez!{h6^HBmy7YBA>Hh)f z-xfeK&~vUR=1P3Nh(~@c7VrqKB|KFmQn@mfsWKTdi-UrA+@-Yythypr1Uo7f8%~93 zlz|ab1I1XgTt52o)v~f$71IZVW!tT}G*wMd)q&;)*-|6njPKy7f}Jm7EJd8PfVU?2 z5#YeXtC7z#*`zs_GQmMzRwmERRGax~16u^1 zDo2CeXds-8bYwXlnk?C4tjZeEe~ai_Vlg*bMHe13MNTIiF@2?CvopsaWeRGxD(8|! zk-<ca6+Vk$iX<_SG^9#oUa*#Fm%$Ez_r8s0V`*-SzbThf-D+?-BLigTvvjV; z#nA!LCjWF%Ojm8OjIxzf;(2=-ACyAL;ItGlOd&%Su;v`zoFS6Q5|gMfaS8j4YsX@OQeG0^H+(td~?a!3d|r*yp_{Pm*THD9Ib(@MY2$oF}FB(Z$ZhNb}rPKWQ? zZ)w;waz^g!ecv5<-&YI&_)XT`lUlpaI@WE{o(Dg2b$_pr_`J;gVFCT|)-F#zIb!y> z^!@MF9~`#7NjZ4>1#OPlbyC>SrOzJNmsLA*$U#m!AV~*h@u0*Vm4u^$c$}5b(AJY2 z05lG``AvYv0Uo)W2+Coxlb53O+6w?(9ENHvKUEU|(3f5Peyr3swe?BY>h`4XR`{^sSp{RmHwba#;0JJ0gWbGhVTGamf z_i78rx${PEFL`WF=~MfQUUsLx(pEcX>$dTdoxi(F-@fM1`+GSbH4J*hIPxC9vG?{3 z>)yBL*pUw%-#Pefli`}1`XxYzc>wxh0O&$+Noky*r?ZuviAi3cAk1hUgd9{diI8S zqT>{QR3ePO=tTGf2I#Gx80ZSpmgk|i3&v0Q zK5Oe2L1T8?ET6d#WcA1Zq5jTr*J)*ggPDo}dnI*P@^RsNin8N;O> zJ)A@G#TG{jEvzvZ%U^gJWv8GD0M5eW!1Qdw01dba3|A;< zV2k4jYLmd1z4#PLk3q+G--ug}_B5jXE$0@@Ob-f5G|;7#T+3QvTik9qpef00<0}J_8N__5nN%y}F=0z$4BTW!&|L##9RQ zoGVz)GI z*7_QA1`b2Hd1(IuR8)#eD^PhUN{ZY5{IeU4Mj-Vf*_vf!%E0M0LjB#Y5);mBU1%1- z8lRg!6*bkJTeNVxnOI}Bqo!sc+87Z7H2%uziTl@I0XSh$g(YZ9pMF`Qvb0y9L!W`;z)<;oG{m#%q|mCVa5R=@J2x02{q7W zn`8gPNvNe2)w+TH(Vji%z`=@7K24GocnfacJ$&DAdpRLg@k$9N)&vE|5yYwh|I1S+ zpgI@Yw&8nlJhIbJQf%Y1&%_X9ije>hD%VWGjjAB|N&*Wwrij7KfuM|l0GCC}A?a-f z!{JXp#J4?m8x(*Pn#tn;k9YtS0FhiXQ6|W-1BNuX8sA#Ee#nfOQA-zwty`k5p2sep zW?Q>3X!*SGCG!R>nisivUg*+!jurFZCvojO0O&#M7Ct*?$_MYfJ$LBXcuQmzZEG@# zZ8Qe}T_xfW4$oNMIzZ!8)3vPPNlqd*(I7m0qbFmDlCA@Ep(hXYB|U^AEMKsA@wXE< zd(}?Ew?K18>Fab-$EN82ki6jANnQ@VL*2Te4$yc;|Mx#I1%L*6&XL4?QE!CC01Ybe z&~vte0Xj=!^8_zIvze4Jmm~9x=AuBlin0{5_AFai-k8TPZd`-XVo`3&k?+1t;ORVq z*k!d>7)%95s+`quNNyloMroy-hI0@xVv%MoP!yo{e1Y{Glq%qfJl2%Q6GbwP9?7G~ zB8n=fDVNz?Z89_h*|Vl(%73e1-e8fpIzyXZ{s3)=MJe$paqEe<-vu_Uu{)Cu{@DVR z!;|@xxqu~eR5sl%CRn(1k*}lF7DmhGIk;r7jimufiP4hJI+8T&7K@P5UyTv`vPnM| zLsS|_uqs7DXptCRErjG7!LV>ynw-s2`3zCPv4u39tEd3G$()oeS-`MlkW8XPr#Pe} zrz75G+rThMB-2XUcLi!yz3D=K2J@1nrUP>`REkYZwX#{PxkzBjoz^%KR|LscAy#3d zC3-8%B+GJv#hFLRK;sN@n4YB!9*1!JHvk$e>1~Dc zs!$v_*&z7$CNYa}>p|%^ht&nauW77+M;>8uTq6MV4naC5sApOAG-Wx=MI08a=hdF) zh5If^euc77pIZ1uR=UrZ!@8{vo4!5LeQ7|;5qsmlk?RUx3jX@3Zr`qXcy8;1GY>vE z^;p;Gr|u#-&<>TJE*C~hrbOOzWCYi zcjYt>8G6j59;Le2`7g=sd==LiB! z6SZzTCK^y_7;-tUmGd|1sVlX8t~PYP=r&w#8(p;Zv4DsF-0cyvr*Xvnfn)DuAOCCM z(1!z_=+?&>XuA8e_kE8vj<~Te_)K{>)X?vGjrmHYc)2R#$GVX}Gz>mlA9kkRa;{Z7 z*Cw598@k8!#jFX>kc8pUz9wH$y)Tfw*WdbZz_5pVywLTbk$oQUoA8e1`q43G8hTu* zH37<_I$z}Kja&pO4Lv>EmJ-q>TQ&n?dNM@_Wef`lTZ9wK|GplCK+m2oMA*{Z;S|i4 zK9A`EQeN^5C4hUPK#h(&GyQT}!Z0pCWLaDrJ_NTwUj=~v z@%zmn*AE-dwxDKIdD@is|yInaawU+KQQ$-@H9{?2vdt zEheQRMahwPFlw7P{@mI%=;*PdtG7%Og4WvxqO?Mkm9az>vjh>y9-a$Mu_xd}doCO) z2)9cB&jH-61YR!w@O9MYu73KtZL)m@KwE4K$}h-{7yxWqELq_}R5G}imCG|uN9E0N zq03n&P2$&$7=-dOQAz0rN631`UikDgsIjWy>yKkG;VE!us%gb#;wlWd8)Bg-fGJFu z*gA`&oKrGH?Z_t|qx#C~uRor_GE1CR<6AWC&1=~ z5?|#>Vc`~(M#I!Zy9O*ura9Ah0?QP?V;cs*N|ef z83*Q;NJ613mhmdw!(4+2muFFnrrFjBU!ViKc7E{5N`E$%v7h|pTU1<>FnD0DWOZxK zT$0Q*1ypjzD%xB@NmY!sMo?=+p;};b6k$_jBq}RMg@sEUIDn*N^cb{zPtAAZ0c5Kw zvepxa0B@FyRdGHIQUu(D0uK)b>aC3|dwJd*)Y_c>@=N25Wa?v2psMQAUr$UWgxo+z zf4?euoIJ6S;_7IjRD?^wWC`;XCSx7E_yJsWAh&z&e01t0s&7u|Kca-RR|nvveiZ^v z7?MFzF=l$(Q_qw%Gz^_JJ#yxh5o?y%7fcOaF(-800?X3r!K>zmt(+UaqFpc_;!*Ij z8Bt4TJiT!8N8>-4|HRYL*05@`wx3knD7K!X$|SN>!WqzO;KT?K1jVBojH+iKPn_q3 z#GhE<-)d08k4G0f5R#yxxgAA+=YP6o(@R zJmd{`5+^F*Wl+a;?nE5}OFD*~=*w>vwj{q_`i32+_z<4KCSeMPhC6)gI{$JC01d_& z1Z5204GJn9Dvzf!B`QN@K)DhJR1GUb(Zz2WMl}CY$xuQD;H3DRvayF>TzJH#Z5z + + \ 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 0000000000000000000000000000000000000000..96a12780f8f042286bf380ac44bdf3c342d0288c GIT binary patch literal 23708 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 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..ad55e5f457022a1692f455e10e1670fe2007138b GIT binary patch literal 25898 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 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..f58cc2169a48a11d3e007d415076ac87fd2f4395 GIT binary patch literal 227607 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%0DZ|UUm}(Bly;hP9;I!kxu6nB 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 + + \ 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 0000000000000000000000000000000000000000..96a12780f8f042286bf380ac44bdf3c342d0288c GIT binary patch literal 23708 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 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..ad55e5f457022a1692f455e10e1670fe2007138b GIT binary patch literal 25898 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 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..f58cc2169a48a11d3e007d415076ac87fd2f4395 GIT binary patch literal 227607 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%0DZ|UUm}(Bly;hP9;I!kxu6nB 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 + + \ 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(); + } +}

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 yZg@JDgY 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 JA!iZxzW_(+v~vIe literal 0 HcmV?d00001 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 + + + + + +

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 yZg@JDgY zBRtKdo0--ZvSJ|u+@9RrtsdOmtsZ>*^Me2XF)06({u2QG!9dfJg+x8lYH)*v(x&lp zJTE1Xnv=BtRKQqp^*VSDqwm+q;@rOvuHQhTGIyQ=2)B2h^;|xD4IaJjxqSQ@Ja`2j zy@Cd!=kmczRQIRH^4=3v5AMNT)FbLi3wYEB9(6p}wBekRsmAn8N^PxLsK8iAOBS50 zRTH%;suZWqG^#3C%%FLY4FuhyMvwRt7%^eOxYqpC(IL~dOJ=cam-dZZ+&^}See5EK zn4r&;B6^WJI!uUInZ3W_P^STl7qZH3;sMCaHj>FX7Ey8>%d;ia~=HL_SNNjWf3R}pzCtPE3Ck*Zo& z(MGFo^mn-4A8S%Gs6qm(h3fi1u}q0K>EvP&0t8*k3S~;M)y~-2U(;cSby8Rdi`P@= zL+UuPfu$jyw&GNW8mSdS&G1kspUyhHvDECOuXu*_R56VnJ2PV`UtgfLKEjwIta#D!u`e+G%Z*s4Lcrxq2=~M;Ay$6{W7jRSlS`n!w-*%qJ;S{1Kxd z8C0scdR&6JbdA)E+emMzvT2^3a@GOLz+rZ}kO;lk<&a&0)iW--4iXlVGHRpTd| zaQDlS9V;2Jfud>|yig+Hg#-hMcD2xfNgbF7$-Yg6YS^KvqKsG#|5I|z7PLwJz92UZ zJh_R=0C#qPM~}h%=g6=i3-boax(hbo!xw<{V=ct_G zYjCj|zdF>{`bq~HVY%}dd6t)NP;66H**blGF6nAkI+YOK$NS1DV`tpIZ~?U-dHDbh zyWZ$PBQkJD&#$AL>F4*r!@D3g>C(uNXJsS2j|%PCCbg!n4|x^WLH|<5%4xK4Q4&uZ zwAXfSL%GQB-+-sD!L6s@_EXS#3*3eXeis4ygL|Oq%3kkb%P9TTV`tGt^6Wl%bltLe z;o;u61$VDg4>42;9C6ni@fS(<|`uEqDX&zrMNU z=qA!BH!uu5hVJhscyZS2>(A|+-L z+9b|thqKqXk%NWlqx%F-qGpbrK5W1i7srnQI+?>0c@pAi4k_p3nru>&%E&1kpTW>s z4BZXT-RPXjiBR20{h8{)&E0|kjhe51suTuQ^n|j$OyfAKei1<5C-_^erd?yIbaV$1 zs~=8Wm?XJ3FAM`mPlD(*;Lyo?VWCx%C%ubUUNLy=^Oc+0LzdlM7JDly_V(J{$CxV^(z^n#+}lcjfo>cYw(>?uZ$zVZOOx)*1L8jORX2ATWO{TIj%QSjG$r6tu$l9dHkW- zRCCs$EtzXf6z&%dY)y8*S2(=(g7dA+L8V8DN5v*^WprHB*M}DU2{g@qP~dw%-}^?E z_P&{WTjOCl#MGa50&No;FHt3N$ps>UJ#&jX}5gR!%Vsq zGTH);FW{L%jwytw^a(vfS*P^<4fNNn+^wG~OV{HeV7ILGo=dyhaa*^Pbs<_QqqESu zYEomNWO&^tu~IUwIZNo{2aX3#*TM6b?;k(DnU-I>b${#X9amOvZC|swW!=WswHtdZ zYhzZ{#IEeItd3n-w`N22+6}dzENfP;uUfOd$FgD7+SbTb<%`0qwyw+Dy1Z=X+Bi#ZMx`~A~|L9PI;`Og*QPMEn;M7n6g!@SuNMn zo~>H{I-N%$ugw=UX00Jx6jRiA9?3T9oFNJ~;&QWEYQm%%OfDzo5*of;G^>e1m9m&3 zDkKpK)$oQtIwu!#8p!LJk^u^O1v6_bBTZ)3bXITNL1IagSjcfrf_OvLR@*BYDYk)^ zpqnqn8A!2p4Bf=jb&R6XzVDMh>Zg6^t4gts(OX2PV#&EoaIWN?${B5*nu3RSSxpph zh6b%)Bj!=sUz4mejZ3zr!cpb#VR$AXq>e?txCB~G?Qn8jV zlIc>Os3Fymo*Qvx9f6msDfnIsE;mW8Euw3O>{Y4MKsC}%4V1Btg0}|hx>Ch()ht`f zu+>WJ3MHXvhn36JL~eh(as^qB@vWq`iPFQ*sndF9E2U!DBUx}s5}XPc$1=(YW7I0r z(Lx&w8GRP7OXuZWQIqbVEV0MhNUoD$uhZNWmZ`xoRPm6IOG&AK6yTXjqfjZRG@OOr zD~HfzVVV>NF^x1P)5bF@=>nlUuhb+{P6e{pWqZ*gxEH8pcpfrsRmHqmAPIRgW2NU- zoV;sK-nXN!Q*u3lN~FO^>=vPWD!aAHni6;`k*W%Yu2#^g4s7oH5KBV*u*LJF@Ok`- z5Ng%p&lJ6CF|#6+UmZ@Z4JTKIa4UlcE}gq{%B20i1JgB5RkRF4sahJ+GXm&3s%wrT zD^+l)#|O>DV;{lq zavi*Q3~t;6MRoV0zq{ly{ONc5(9zzg0r%^h_pCYZtV>iWEjU@ERA#ZNR1>#XR39Dg z_p~4v+zit8H{m{$z#IE0Dk81FN4P`=Z>B_-1nCPv{jib2bIO~P}#iD zz5O!<;r2)MSpfY3op~PVCjc744crX`Xba7B1N0-DeWd1YsJTv~2Z&e;CWmCv&NqXX zf^EC+4x0kzhP_?9^v>*gVC$YN&U9;T=#$7*FP5*ZpEK|Fnib&mk&4g-_tvaznKBK0 zzpG^8IPAIf0E+XMmOKo{yj0 z&PWevlmq<~qwi3BCoe+7hZ?Mt{{cXo8Pt5_2Y~)#-Lfx00|%OZ4FURTlj2T|Q>SHU z!8!Mhi+;0Uh)qy{&Ec3o-YPM@x$5-digeqe1`WQ?vSd)B2X$IdW_X^j2jxDmOPoNJ z7BuSKROz3WxxOwR3L3}XFK~WW8}P1tB&ZtlqFi`f#2pR!r%_6qqMa(Z<#m}es5Lw( zw0%{=ye}RC%Ems)6+xZz)7k;|E8OlDDc@B%fI?f4Bfb7ko9Otv43W)cobxFcGi54Z zWk}EY0$~=(BKF4zn|pHbe_9_w^T+xx0yLs$POx;Tl~d?bvp6&vHciD}RBJA{ z33)%QJ11z*iPERKAZtF=d5z`>!yIORM28sqQyr$*WWDvp|%qre;##RQD2<6W9ns7-Vw&J{3d4quW)riggDfI5vshK3|<1?YN$Z6rj9 zs>fKtvTlVrJAPo;bXCwK+vo*-BNz9H2>GP|?GU|$hzygL29BCFew&|vvc|cT(ICeo z!M(7x4ph5ZDDS6eVW1VZhop!qMQV(h&aP*@ybk&g*gJ60VZTAgeFk2DOJ~=kZY~!G z2P6(1e%8(RjK=$n!Ec|7+kQWKs7-Ca-ncwKaJyDaPTIDHMJZNcPrC7NGVhofvo zNWd^)E3?+;B2a;6_>+|jsOH9HC{K?weqKlYeGd)vJL2zu(l_9oSHKDHLAyo_**e%a zdE%%Wg)YSbGb#I(_3GbJ^1x_Vk$u4c+q>KYPnWUy93eaD`5%I{28c=RsGu1pnblF2gQ)3^_4mz@A|qy9c@M_H#Ml>2%uF zl|9SHI>w<=35E2mZeKYl>Sj_l!`gFLPgX$5OoT=oDi}#j+fj#Px=iy zFkr|Y&w+=02cH=>^!Q+(eFIHLhkG3L_dGtp_k^GCNk88>AK$Y+z8AcFFM9f(b@oj3 z@xSCb;DU$GC2#+89zJodo)^7+5(ju)aMWbVno2=erxIG#atEWUA%z-ATPeaIpGB$I zI9`im)sz|{V}$Qoi0Z0|qlbLz9hO`M$%FOki8z+m{*&Up_y z?~Rrxef^L4`NDH}&fO(Rqb*^?dL`4;PjwxmZwLZBo;)X)BzNx%?w)ZT9>+Y~4!XO+ z3uC{l>oIrl14g&wZoVfx2Ojetyx+rro5^#ZPryx7B@5N|O&U!-C1r}H z+^Fcw=TG@9o-0Kz;C=}}BdrK!SBEoe!l{)Z?1~`o$iTqaleP^WoT7C>l|V?QjwVY4 zC)!fTSdVt(ruxZY!VnHQ6IO_Csex=duHL{8|jjOXQ3v?f986;F8XwKJUvnALeI z8Qgz@a4jYMw3A!5#!x9~3KfbDNorRUH&_vViyr7~RS$IT7G&R#`S?FnH!=6n#}NFV zmbF^Q$8Mrq-O&88puwrb#9B4#U{%c11)_Gpv)kxVLy1|Vz6ctjn2!K@yPq!JSxnb+ z30f&$(wtV{Hx>nzt_e$8yEtWC_~odOyk*O(*RIQ19$mbCO@8E(>Lp>f7KRoYJuiQ& zY?7Rd6hxzBfH8KR(d8mVUGjE)dVE*Q!L2W|6F_keC@ulHMIbfj)~R!sSFhbWVf+zE z$Y!`2O0KkH+Zd+;m6+%1v(C=`&_LhBc{7@~ZF-X!4=PGQZFxstQu)a}1xtbt=%wvS z`$GQ#IXZo!twXE9xy*rtU#gB23vF>2ew#T>CMTb=Q`OCwogWolx_w7}cua0kSYhb0 zlI1bE>z1diS(dRrA}KVmZPn_%8sh=UWS%;&GCZa_Cb~5y?2@y#Qe$et9Ls-4G^<>S zG(HCf!&+yT)k6c$MufJVK7Q-W$$O_yg7oCq@$px_+jVXAmimbcE(;z;aU_4TEH=)PaWq#%@P_a`4Qmbc zxxB;}cqG?2v4-YQ;lQ5&Xvoc7=!_WJO3zR!QooK^EhrlJyr9q1^8PoAoj_;U%GqC= z>}}XT*o@KJIDTz2kg&N`IP7+r_l%d!? zN>ER~E+_A2XkHh2zpvE4sMOx8@NCc5JgUG!jRN)h&J*sfRwp_CTe^tl(z<-wWTthf z+>(G7NU8z}gXq>h>ijwM+)cgR;A>^y?u|XvRp9BD=o3@eLsoQ#D(A&AUM%AI5|)8Z z6xu`>6=btawu((q3aK6=Kz3|66*FWGfn||DqD(?4sFNr&U&~g4~Dr&B3 zZCL;4uy4Z_*hK}|MF)PSY@>tvMJ=(548fPp88C1BszC$J8JzN1sf1*Tco>Z^^%&Qz zhC78q^JXk0b&jRMslzqLc7{wFwrcaTkToHTV}e(&UA8KA@v7xPF{>6tu2~SZI%xTd z#Tz4+Kt(TG7#=ofap0uIlSf313|KeN_kg=+yrXMAZ>%OY&1#`V&DP^YC9W=_6h(xx zT1D2`k!=dTlQx$2rAs--3xc+B+0y0%JJ!z`zcOs*=CwB`Tnzb(DnWJ5p>tNkX_R7o=0Tx-oXCW%s64i>9wy zzG&U5@Rd=)>y`(vU9oWas)f;Opn{jL3|$)=zAh$w&5E#<%NNBi3ycY#xnjnob)$#x z^b0ud?47RnvIwqqv=I^~j4N7cx{;$QWg^Ewn@vJ3O`(~5ws=-=hsR;d?(W^YZ&A?Z zh@~52VxYE0MQn`@+ZG$VWyPX3tCp->9lmn)l2xmhz;&p#E0I=5FJ2iFvNC4zirA3Y z*u^o+kygjf-?D7duBm<(yqt?PhF02m6+_6|$Y@$beJ#P)+T(X*Q;m`=uvgT%JI5*P zlV!Ig=RqlhCnQasePLnH@$f}^B0|243|={V(zP;G7l)7enN|($mNUa<%^iuVCSWCCk9ShGiLZD2+#y7=Tb|O z7J)1i=sJc)x#=R8Cv#?rE8$Vkpcpscq5Z?Evc>T8oV#3oQhc&Gw%ptBA>_e zIr4Lsg)Cl1zhol8NZdiQUG z^o&zZ&RL=X+T;pUDulMyld1Uxoqt|E5cWS*4{rW1s^^DusOx(V2VqsWn}F+9dPd_f z6bH=(4CYH1ypV(bLUYv7ZR*gWx~Zf4&mN(fHYj9(>v5wlpA+G~l~9H}MxRI!r+Dmp z1F^-C*{S1?2;wDNn~3R7VB%p)Jj`&X7&e8Vb1^!fr1B`NK&0~ps)(ZsIVPLuE^CB1 zqvn{S_ME$0qO(Vq!7Eqt&J?^ZaBc@U(@su0ZR8WQM7BUe7hr*2m=m%jDM_a}&T}Va z>8#dp!Qgt{+4GdE_dyS@L+);;Bq?6tF7tdU&t>v#9%>)}zYbSSFgnC8o)ywUrJQhPNxmd7j#bN9q4pBE>9tt)p8yt zr{Mf)l0Hab2RZV%$i~Z3ssIU)N6E1STfi`xjN&q_xS(cEE2I-j!)aW5o)Iqc>;;ZF zO)y7P@==vB4tGo+%V{1f#nr5oR+&E+rKZ+MfdG&lKcr>xz|+(t|=bMwe?GQqgvx%;42){y7!9Ph4AF~QTsR_UEv-3AnD z+>$6=0&UFEc+@)&gm&!?rGKgxUMiSZYUT+g!B`vubRqt80R00!f2hKNMxdqsP2oC_ zKjLww3beRAubvjS(dgn}^IZR=Hv?ON$s%vm0pi3N55;C_qcL= zN9N!smY^FslOI)#cv?B+cK(q2g@f)E>z|YxLF=ejRm1M&y4*HhoCNy6_BC-uLEePzW}tr7sFefMboOPNxYDU zR|}b~q7#%{lGhMW-wK{Q0=I59$F4uiy5{39)tI4y6dEWJ!d5*=)Dcj)bvzF}ea12C z7Wh}|_G%n2RVj+qic+Pj$FfABEK)hZb!&xz4_g#?p@Pd(is`tJ+|}YJkCv-&Z8N5A zQ;4lfz8XX0=(!w)YU_w3TtbIx1!(BitN;z6Fq_kz^6)h8*tGN5c5(hF+wiIVR|NHo z2<{y=|Ca)E-{>X%qC@PX=eR5!w`}-;V@^&Pf`nR8@+=BGFt!2bQQ{`eK+HAMOq`q3 z%dF(Igv0LB{5_Y?=E5g)3&)#6rkNIuGcFu0E*{B-L5-Fcjd7Yk!6k5#$FjN3;j>(W zr})erJ8as>>Enh*4jc5{0N+z4*L01sgp(oK!e6JBP*f28D>3^jB~fS3w)AJOV8$v3 zjahb&bN6mOw0r-S=zu8$ycdr0i=O2aJkfRWG>=6yJcFluh0YkdXxfax@!{hKZ}oLO zZP3C1ppMcssiAb$gsy_pmC=ZyQNurq&(-RowJqAZI_~h6!Slzs1dn$Ko#Gfg0e*ew zpt1VJqh)yTVPoacar#A*jKNb(!P8xWrh6=$;X8lYu(?ww&zKZ6ar}xAqj&lZI_2t{ zs&g$847H5dO48SGvXLV)j988{RYPMPO1!l{k<}l&w|rIWnUkX@jP#s0*=6Az*Pyu` z^JjSn!VjF{9W>Q7c$(9q8BQV7J{CNmj*F%mLZ<2$Pt`7-stKJchank4#|&OJbjDQY zO>S}$uc=dOI~+t9gutt!+!nhnJ9nxi%h$?EQjIvK)W(3J5jM~vR#GyJI2;7eM+Y}UD$(v`x?lHl7E+%7N zM}`GW-ZpMToZdN)(6o^T$k33+(mhNS$tRcYj2W_IqIc*x=g@JE;S)^}Qw`yh9G6US z4x8o@Is?i%bcQKxnjw4|+~^%O!#{k=h@eT6W{sXdet6W7fNh?>Ck!5`v|~AD>`)u7 ztK~MFuVK*ef3c3KXPIW2sY3-Zc(}a((uwEYCfQEwp3*sh>OrWzUg8XW5nKNjx%Y@P7j8QHV zhsJn&o!6Qyw4oj|l;f_2v`dyCBx>0>M=s7N#cOpLys->3RjQq{aD5V^y(Gvf0)p3a zk}TrzJV~9Y#WH2QK){PQ!pzdSJPTv~WKm3I#e7mzsnXRcjI~N*vD%nU8!qtTIRkZ3 zuTIloxdH~?0tFE~SAq~lLsrXUHD=CGz&m9L&MA^pvS@@@l|#`;43o<;IUECbfy6R- z3~Q$NBGmg+EFn-QtYXNEls*$;52eo~^_h$|h1Wo+J+F~2$kJs|fJjh6$mJ@jTq#-< zQVz~uknnRlRhpnSvt$`Xmym2O%|Uoe5mJ#_w%~jb<4{OCSRB}r{+fJyT{f=G;Ft`V z%H+sQipx+N(lFOl#w|rKrHUvKE<+L%CG82F=7>gfMnHn=aXL+sB&TswCapi9cbqcJ zidd7+4;+k6M#o;I(1!sJt;2L4DEjnj=$V;|3&S?c0(i4{}4JS#?z zY4I6yW5Do42fW>N02na7%|UK7xRp7%*7^9f7~LMJjStkiVo5&7U}Xb5uZ$Q`LTk$y zW24*9TVv-m223b+98k1(oIH$=C6?W$rO%{==mdnmU}ft z5TJ7K<1D+kwNCd-W=wFl;l8rj8Ew2!H2inx zwm99bn{fL3Z=z=XYL&#lG!&lDdtFp$nm(E!?UlTT30YC84UiNioQ2ZWY!H|ELJLvD%h5o)W z-RVt-_qB|#-{#wbYPWl998z8WIZL+7XSqUJDx?KyJ0L*kOAc`PQvlt)-b4T00BwEn z_o=M2K&OW;NMkS)d~F)i_)?<0R_4X5E6s z8Q&{rJ_P9g%Ytnq7urV7|4j9dTG%@>v{&?^KC!cPi^nb+ zJz&2(G{jN?nuLz19e&4ZG+PTz*s39j0-8PN>IuvR>B(n>alTaO6x-0Ls-S6X@GLoa zh8QwUy=<~=6x3AZvT5AnS={0|{g=$@y>wQ;B{NhZQ~01su7Tr5P9HUQ{E*lo-aCC< z&N}O}v;zE%>Ir4L(ym!)S5BfVy>dIIPOYz`oKiII$4884&AA-9c?ml=Kpi#)i=EXk zY_cMJwq3{!hme^Lp);9~DXxKI#!Vd@J>2K8mrJ(JRKpk>FkOS%fO@9ThEfJGbS)v& z5b(Cu9OX2X-)}#AbdUR-vDDmgRLC@X@k}{%mK-{R4WCXfn~p_7&A^w=I}XFr%xKQbmY+Oem-$dP6eX2iRAAon5zVtX;7v+V=x}L z;-G4`C9@sqYnwKeXC#^e$E%jj?H?0j8?!_eu^3+#LPjj&mjz2p7HGp3$Ug|a6v7wq zOBcXDu@S*cL@*T@OhyG0(Ort2MJ^xeHqUvPui>KBSVtK;Rhm{@Y@tz0!e%A^K=v~C zp)ab0^uZ&Jj~RU|YDq}Qym3qB`7NFaDO?#bwb#n&Uv8fJ<@Whsteeqm%}gqGw$svC zLl(}MJY&kdapPkLjW}fTiq|+_);Q+y+Ioz?;=o+7Cm}#X<|`HDbD~tWI;Jr5tZ(3O zZsG90AtS$CGwYi*^Axf3$jCV~(kwb^x^c5@RT{Ip5K!-fsq?Cx<+?^?n+HxY(bwb)E>6+BxZG7SvV#4xpJ^p|ZRc?hiK9O|{+ z$f7H`STvq=^K7pwn)Uq(I&==TVhJ9z=<|ieE>f-tQY{anq8HIoaJf*7oZ}HXdEu0i z=M5e;xB+z^q^NR^EEi~a0QEFmM={WGSkbvd&0JM6?drdjwrIx14wZOK0Wn&J^laf! z&6#Eb^(X(FCH!zyVTMHsyQLfrmlnQjCM%Do;aazRyo7;7Icr@Gng2k+KR_8K*;9&RhW4IaP+$N8X^zl2bcgy9SODWfE);FE^ z&Vr6ZD<|u4HnV&heZPZbw~;s%fl9RODzC8G2QwMqS9`7KSLL z(YP{nySWUXr(#MKY@IFFYAZB4h?TgM$IGc2K2eJ$Ym`}%DxX&sa;j2RUCQF6EK$xe zT@MP-^ltdi7F;%y+CoAq#W)KFxt1~0keCrbXYx$C0GDhQ$L2A}R{d8O}?Zu3j+ugF2VlgM5rLhI|z|$}VWwMxbG(44j536%Bar~1VJZ5@!dzWL)ac0UTxPYC9@TK$kDT137?s{#8Df{JQzD(>Z` ztuWMhww#|210^akQ9EiV*uMjuJXYs9ARCv#q8N}{2`=S=W0#(e4=lE0KOTX8N(m64p|vXd z*&JxAx(Y%gdhP<~Z|cHrLF15jWz3^uZC(5@$9^`$jsMh`7u8WVvo_DaxzNA8bkK{= zS-V#D(mB{n_5Wh9;Wq>I|NF>xmzm@K(f%u&k$%5()BN)ve{C~i_@69!QR4=Gqr?Ah z=}a#d`d5Qp|3}(|i5^B9p0Ls2|2)c<8RCvRd}Wi7I4fe2^6P)L@s|I^-_hp8ZvBqc zgkWzY+uKYD_*bfr&ElyxcdNZYyZbvc4$S&{Ym`}@zsZvOqgrXS06`f&VB%qvtcHOy zygmLV0NuUbL(q=@B6VB69_luN-CMdCnkz%q-|!|(T~DY>SR$JxQwaJL$()*xQNq~vXX`Qi%MzHsuBu*FSKIa2w$RSVHBT>vCtNLs%&U$Fk~jI zeRjIH?szObcVnhi}px$6432zGM zY#K?ap3;<)Fu2#B8anh=an{tBd1T1AuRlXA{zQAr}7z`Nfq8Im$4YG}x!-q}`m^UJ9(xCkTUTFqX1*L0J zBSC;J?dn-=VKfk+YYC}9C7q zSnW-P*oo2E1}w`7tH9UIXrW@+!( zaNF2WNYZS0FdZHOMJ){>mWIGBSVRaG6{e03Q^tfTV!|9^!|awL*{)pBf5SxG694ew zUKd^58wA(um<~0yri9xXQeFR?8`5mXAGU=x^TwmX%nIY0>1a~-sR>JXD~vC z+N5MV6jYm%=-{;_ym*S?N>|5Z=AG9r8tJfXY~MArzg#>2o7D>xF$;)DBy}`|={bDF z^uY@!hmIe8z|kj*c5dd}nqe5j^5+M5+mbpw!U|Y?sb*ST>7}m?uTe)kVxPg-`bknlN(am<1ySZ}#=OXmBs& zoN7otDiF>?L1slg5v>3Xqndh1Q4p+ol-FUgCyGSVnSfzcRRx3Bgb`tZs;I?SbO;t5 z{Fze61S^&=RK_lZAq|Xe$f$*o{`E_zOrJ68tfO}w?ucr|P;hs2xj?}Kfa|RU+lHfM z2hQG9vbPlM6%6G>!F#HN7aB;RLnYjBKuZfJ77AiDBf;DJGgV7V&=ePONX5JeRU$}M zSzq>)NEHeFDnz?lTvf=hr<{zB6HbG-x53M6uk%wNK=$9 zTf5&`$l|Fo8Z-0uIkH2JMg>_A5-=*DPST|mYX#^cMyw#kMy1fC;Of-S)3F&cm#Sm4 zcp{I(3RnytQVF9fWmM&qs*=R&7*sv8o}gI-pW5iVsh_W873y#w81Cs(UA@G4E$DN_vS)aCJX7UOtP^xok# zV7a%~qJhRBe@(29akYojS}%{yZeIJ1-un!m8(rO2dN{9fH?DIvZgFys^zs-yZXi8x z_@9@IQv{8i+LZ(SDL_LU{TQHAc_EW!P#q`g1FZfx>Ax4C9}~=5t){Mj?^=yiH#h*C zJM(n!o`#4Rke+iRW(7ET2CUn3D<}k{rd z{J%;Ir**W0aqFpP8{}6I?N{VfD&98@iK=4`L55mO36+=Xn?v$i@T|}ghc6OKdLhF7wQw+XBD(KP(2vBjA1P- zTR~Ax7^Wf|h%pUn zx?V+9D~NI>Zc*VyH~|5=gruOeX`$ezDwtRwgUSsS@7-Bd4G#mu5$y$<;l6Jiiv}Ih0pvldZF#IVAY}p_=0(g;8|ZSo$>F{(|;X1>$j0}dWFsF zyEyRMsNk<+7xjt_fu!3vdOn0*#nP$N;_>>0BLZd*nmx{E?I5>P&V~YBYE^QLDl$!` zlMO;PMit{yndEYWmX6JuR$83u88PMCMZ>?1n(|fD?B3z?RZ&aqf`jbCL*Xa)ikgEj zp5Qre_<~9P-}$>G%bHRJ+oIAmt2B_Li_ud~6c^RwLIWn16Nb~YuJZfuj-NWH51HO) z$;@7n3%^~uz&32Yeds*fusMB}&iW=|)|ZiUzKWRlWyE|K0DK*_s8__IJ`o}PB0~DY z^_YddV(0dcn#L>{?>TSi^l^TheBCeUO*N#kfe`a_M4=IHRythkr)ua&TvXF#-)~AZ zU$ze(_wUiOej6L|MNIft5lg;Wy7*5~!QVs&_X`hnSTffkED*|WNuX_bV88GMeU~oi zw=}5lGN?r`!hwPZfD|>a*Q$x~qQQ%Y`JHj`tmK_qm3)H(-k`$JWuq~jw8u^l7@V?c z%c|(;QL|>50%wxZf&Ev{w_hD(zdG1%MR4D!g}s&peiJ&^A!e~dRIo$DLWiY+itu^L zrE}Fw=Ndw$kDWYn!ASqGp;ulXHx?u9sabu1;`sGn>EwoD`u7&RWl&@=UX5x%( zYYmHLX~F}!=wOJ>eU~l#ddWQ7s1UozP(?(DRrZmKp!&uH{b@z;pH~LKNJbU8kXSaK zTQ*M)pXIh_>hS4ff=3Mb&dcw-!7WR6EEElS8cm@fAZ(>Sq)%9DT~~C?+q+7L75#`p z!8vvE%!0C9r^xwuSdemACiT7s`3s7g|0Ven#3IO^y!ZsbtKym5aYIr;CS#;F$!cADYiIo;EFrZ2T%7?g3E zkNac~_enlZQ+(wa1GUo!xlbJAHDRFBL~oCY?!(5ILj5&yGFL#61+3c4sfu|5(sMPz z)DTQ1jyz_TAfP;8jW%EC8n2-^Gfibk}u2Hd-7*l~$Wdu>yRW!YVPm)k61W@|&)}2^qVj^QJ}0X$N_Yy7I+f;fLKY`NPPI;ZP2n|}j21#*g5Z$C zDIm~SsI_KBN)xGzM%#FO?@X-Rk(9qEVp5y&Yle}DJc)3pZ@|@zMpEa=e;^DuF8v8$Er+gbScH(INp8{xW9q9kB z19WOvV)Tb$ZQ?Jjynhs+ACb&+S<{56YjuW97q@5o_gGfM=FDFV&LutFcNko}e2^3m z(=s@5;>vehlY@hvT)wb!kjJBxv$v1!0||*>MtBOQyL)JN@!mE0YnOtfN1AAl4$L(} z=W=6p?92FLAo4}Oc*;xo)@GFZuRF@tU9VpjH2oh%g^lvhHbIlV z9^~}viGKX|%jfS{H5L2TX5v70+(5!v{@>=T)txOzCygX|#UG-BX3>4Wm^<3#{QjWT z!OngD*(PkNNr(T@$MsK*Eel_~-Y{hhCSiXZ>BA_#u{p9|d*kZl_NI|J$pL&Hn^A6m zy52DFdh_(18{PYVVY4%)7q~L@ahe3OJYH-y#B2X4M^<*-ep(BqEhU8#O0cGLpp>Z} z;P`U@y6h(ax_e^}p-KzCL?7F`k7Whu9t@50+gSK6u2Id^W9ay^86gFej+64SA)~t|`Uk57%%HK~{!>E7lOv zx+Mc=@(9X|<0#Vu#|y2g8mQqjZRyIAMA;)62LUuZX^@_~1{F|q0W*(=xXKAOhZIj5J>M6WUC6%NcXGg=BWC_KGVq&_z1lU&6v)>@MBr1IWJzbVAxl|L%)ie z`o)r|5TMnOOKlefIV@T7O?1e&kl_|jbe}hD{=@;_4|Gk}YO660rNpQN2o^=0R3HfO z8$l*$z=bMYdy0@sHg7s`Y>yZ+_3LFb{}i?GkKywjq84KjA*#q=hvj8QdoN#X8?#gu5w3^`?Xx_j?MHwCV zK~eMJ-l6QHgS!-h6t(yVg+b))yKItv-q5hY1J5}7mI=;~b(;Qv?7aneT<5j#J&7Tv zm@Trz| zLzchIgY9+-wp;7m1_0C)eR9EN|U9mem6SuaebTub!cO^XHWbL-5 zw(DxF(w2sb?`+xfURM4oarPN;#sCi`+Fe3J+i(LN2BrzYd9HAp5`KZFUD!nRadXGJ zb|39M4)~6Bv|u~7F?YaC_smzycK3WG?sUfPMx6)z|5v!#+uSKT?5v%-I=l3p+=`2M zE-Lm%a%TW~nxwB2)D4`vMsROn+@CQ~MXBpJf1JlZl?u4bouIfk*woJxsgGF10G~RQ zO7)5a{Q_X<`_d3!IEJG?@lkpb&PV^T5P}Q10QFG3GiSCPC+R*OYeSTWv^Z{o>sU#%|r>ZPrAm*3fuwfCd~r#SsJm`WP(+fJOm(8Zh-XtbSDm z_;^l6$9(;>0h)UwA^8)5=u$@R`@(eJ;lsX>QQ!VkfBwmP*S`6E-+`0wWt8sEEc3nb z&h_uVF!$>m54}DV?rmXgN+2jRr#;26<*Bt8KFzPoH z|Fio5=z#nTO#}e?h$!yo-ze~%D*Lx{$v^L9O&`xM7c;U+#>BbyPcH7dG~D^>vlXdK zhF#9&Cob3`OfE}HZrHrGT)1e5p;(rexS3*fAGCdX>2XcfhPq5ntF$3y<%5N+WtxHo zj_PH)oRzQa(pC$&RhgTvO`ESwX&dvS$|zEmUBC}#y!%7Jt*O#qT$Nt$v2BiADHFtB zJ*WEpr|zeBp(UFf+3?f{ntavi|%J`6jDan4}uZVqB-coV?O2>|*6 zmO6l??c-)le*GKA-g!l+uSjTDhV3-1-)7n9wZ#Gqbu$jU?c6nKk z?Tl&hChgc3wY_=MHXGimE^exGt4dz1$mz~Vy+H{-N+EBhpk9M$L@@zEfoY5cESO*m z_i*@w-+Jby*I(eZ88+^)ZhWjYe0Ll89?7jPW~(Eq9p!CrLJo!_a+^KsF-O!Rwv?@Q zcAJfCwzHb8F>RKhF5{XfY-=7jM(k8_TOdu zf0N>#d-0n9&?&CQn09?iOB3mFah*+s#}?mdiP>(9+p3H2nvnsi(*$27c7UvKFv)Eo z2OJo))x~MCQ!U0KlWccY-Me{}L&DrkxbPZI-sDoZ($fwKxI<5DKY8%2oHkRiSt)$_ znTTdD3N!C$O6s&Fd#x)Dhhv)lX;33O<_C$=vztD6_)T^is^W_rmGGyCJ@^cxA(5Qn+HICtRa2j;IomTJ-PJSME8DG^+k zN7|WB?TF~~f}%S-G3}n14)_^^U+0YIa>eZ47QbUVyJH*P-o@sjOah@P2Q6WfF@-i@IwjCpgVTzcd1XmN&#+msa zh%5i{&QUZ##_xXZJ8^nnTEP@M^V4|2r%CixHV!_(01qFh{X-|-pZ=Qw^b9=@amd;4 zh}oL`rU=X#4dkofG^$~OCr=Qpaf1I&TCSg$i*ike zF1X#evBezYu||1p>)V@xTb=RFrj#aYl2cFE6?yu)rrL@nYS_Hp=mUcflw-eT1FegJ+zgQ;%`^ zz?!E?RL}z;8%SxGq;B_vgtsk@qFn&5r?@EI+(!zB3DFoPn#9CY9E9LwY((LJ(ZJ1s z%O`mhVnmGS;ZW!N>Sc2WnAAuzHJ(I`rO=}+lzZ7r`}-jBNEC{uX+YZ^One3x1$wWY zriABcVK-NF8<%B)FA*Vnc^+eTP1_*_7xuY--U)v?(`kRRwR8hjhu-b}5!^)2(i^B$^$$GJ~_G@_qms zXdb1EbGaum@+1bN`jvGG2ls$`n&1T#_&8r*J%z(RGr-L=^bB)O(tL17&SAs|L0&@u zE&2^5{1w6fIW7EoX5OW=yyN1{z5_>mA0GbM6VDx}(_DMvng4v{%~KV!SNYk0ePeI; z_U)IRf8KZQ%oj)YKW|k0NG|maj{niR<42MB7jL{e{L|;VpLx{x#@j=5;b`*ao}5bG z;p2bZzxTI$U-g|jv|lH=`Yj;o_rG}IyS~2OLAk6yw_qwY{T7%11y22%pngSjKjU&Q z;rIxP-G_5$bF)A18QIfp0yGbx<0spAzHyarO8l##l;2(`v(_^rS2BM5T+z)7-}=)p z-hK7EWA5mg43-t|!7yI5lfBcc(U;g2x8Z_K&~VZmCVqiVxeWkfy9+d}mkuXBXsu z{@go#qA4?cg{^>l?VRP0pKg7$jmwE`?aO>+cuM^OFoj3!p88uU95XX#YX*zQ@cXv&n$Cbwup#iD9Zm;= z5Fj|zey$j}c>)uFfTYh7!c!^YcUb9rD*>QCMdL92>hq5td+I2e0gnF1DT0eE@;nEh zM1QdnQ#cxMI8cKE8di8S1?+kB?;AG8g5Lu+z-0Hc*k}miyKP?zr;o{kX*3Qq3lGfc zPhr6-BPkpN&?yL}(O_&80nHNtbdQkR&!hV&6lQ=28|e8ghuzC!!xm5q2gScgqPkZA z(0l2O&t7}&y|;cWu++zOY9k+Q3fg9mXtT$6x})3eQ61L%6f7L;1tK(s?a<&IQkA~^ znacblX_=!mcuh3gDGMKGQ>cqNykj`L)41qBVfA0m_Pl!Ftw>F2_)hEk9rno9CT6pT zayU6|6j0o--MVtOb?r{;rgnRZ*UIj&r?lIEn-NI^Pd8hmTa6K&`p_;-REL_=tjV`1 z4ARE06;TI-In$3x`=JA z_}yDWT#ij0Em57W*bWQFtIoC7=@lhUmu)_tntGiC2p~U7!N)1QSAaCcMU_Hg%Yi zS}mLwE34I>+|d-X%@(}dw&788*e-2KyDZ0EuTpbYvNWr zD7nkQ>~P_2NSrng-sYga#!{nVM^)|HIb}WktO*uif=~b5xywcwft zVUM`up4b)I>WOS`ifgyA+Z_OWM3);Z+2SF*?qrW6#p_|WwJ^I{;&!w|>}n3%si(b?a%1K0vi!Yi8N-zD28;U%lXnvn_b`RmJ9nHqwlBL)i*?!HI)puH2gL!S zZ*|6RcgF6tNAI?>w&_Ydsy1cA+o=UZDQVYJ#8(pW2{!vkaqjrx4=qnU!nY~OHVX-y z+T{R(Pv~k+-rf#M+|e4pvjt`QJmOB=2_TF9#9(%`<89mUj_u5C+oB)sSow^1>9fw& z-?GL$s!w-GmFl`jtIFTbEd+qR%;sNV)0a6UJg^r?-c_7;4M*YUtEA|2R@(F?!J(AY zPha@Sj}N>>v{{neP1x2B*0$z3=p4`-bPgzKyCZHV0%&%Z3-9m%Ml-kDHa(&*a!Xz< zsy@#xyg~v%^C!97F&=rIrh$)P8t55*)i7~|$)|5Pe@kczfpNxBp&@L7zydZfXRgKYF@l;V#5WSsrc!baipu}G z=cw=B|K$7azxj@L?@QY<#mNB2_2XpxDgYdh9O9A_)K>%Ozs1m_7)s2YFBFde{Jn4c zw=^H1fu2DDz63u0a!Iru{s@jp3)6C@h%W}HMRf1?C*jO4(Q2Zfotib@+B zYO*b|OiN?Eyj)#htgYW7k(L%|YO?jxOrtVeug%x!^R)U5gCSFIC|2n!ZW`T(Xa!2RPX6@8ma*i&2(2D|M2cI>G^fPCL#=-EWSNC?p48-CzkmW(mM$o#qf@ z9BK$l?Dr`eTpFZD0+}Wy;DX|HFN>I=>|AlK;e@#8gm0Mx|>F$ zc8?LlNg{O$7oq-w9F+asOQ0|_O0n?wECiOFiA=+{u*?LDH_7CUCJ@6(X!z1@9OZH# z(KxXC8CrCLMoA8bDgIGfaEvQF%|rbi&k2#v2!(*rDBRBGjV5tNl2M1kJ`5#i1HQw? zf#4BA;UxO^HH9+}pFEh50`I|I3IlXLBEV1a{fXLa@fo)82+lo7u#XX&&T^tgSn+VE zdov22EUr=4Nw&zPIqLd+OQG}iOYl5CwkS1ZlcOR`OMS@wo>du^({MqsVs zStJ>1X>GO2Qq=fZQPGRp83*8iab7P*o+GfMTwrM8I7Xb}(EifVa8mqZeBLP@Dq!+e z0r~{o0{=vSj|234h6K31i<@V}n2Ax}p9Js@2F3?_iawA5`Q7gx=M=&lZY$1#lD}u_2;cSj%4P(#TQLlEWYDMCv27htI>D%__+?( z$P+vM^S!rUE-iW~JNvDo65o;Ie|-EK2P>+5hu`mhv~%?9yM3pQo|MY>Y|cNU(fX#R zeEawQ$DW`12F^@wZT{nn&-s4z{Wmhxe1{JBwr)Gg!KMYGn|#5~`21h;>0j`u&uHux z!MupG2Qa(`=YA=FIy_joyYqEa9DjLNs;{@Ph+c>AVkKiY*l};x{n9|D^Wp zp%)(SQgPy!Z1dKrB;pJ@a?eZKuk}51c8_`T=q_tjm^h9xa>VtEsVA*9tN4+Oqd#e? zNnKbiVq87fb?Kz{%JA)XV-_~AEXxjaTH!Px&=#koU< zLvQLd6)|`u5NR8(er-F?mxY*B+-*X?MvpqRV(v-@-Z6R|F@steEg}yd{n<_8lx`&E+fJF0NF_r6`TS) zMG2-TRN4uRC?T z5dt5_$ji{W#U%|3_`udc;gfXgAfCQood4Oo`+xA`=aY?fAuXEFt=7ox&UH3T!d6#g ztM#6WYO~E(WV5-$y8LlR)FeZ-QaL8Q`7|-UM-@t zR3`ev=iK0)6Z@icCDB{;q1!FtosO7RSEAdU-~xblhU{=HdDOmmyJ2ISfz@tiwP+GL z^lLiJ%UjIJySvtDWvnhMXO}&^T^-eKOlYxlUA97_##UeVQcnI^fq0sOT}er~M57eF zKBn+cR?+0^FMs#V@3LI=5$%dNuOY70va!Pv*5Qh3^+dNg!EK0bv$8yTkxgD}ly8Q~^(3zG)uWOyA;v#E<5{xD1UE}c5|{Bu8f{dvkG4{6r~@35`! z0(Sy!C%(-b+ir^PFhzBmqmhqckLt2T?F7PhtnM(yf1@k@aqk+FgxJ-b*kMiVG{tx6 zm>p_DYRli;oPJ)E`bjeX(^&dK0`GlNH2&gqhkHKYG&MxG>EgkiXmjJu z4o?Z*r$6e5*5bn=7Kr72ECs(ghbKuFV?@ zh`-H}(+Ltc{mrKeyrvMZJp3tl_Vl;%+A z=k`%8%EV?ve1{_z<>c5mZFj_Mbw_S>MQ?S) zb(qO!O>vW?LsR#DR>2@kfSz$S2T<>HUf$&c2W(G0n(R_Ucj}V1fj45~w7G~@58Ks* zcX-*4v_(GddH4z2>c=dx+st^oiPNITJ7Jsdn6CDeT|1(;wXEA_41e6dX@?1ZNP?E8 zLYqmZmOfTldNwulBT{r7=U=3_V|?y7pSnh%pf6zS6+(C|85kn-u(0x3YlsSuRkqT(BY8g|gOjMFH81E#NXP=?G^7CD8Z;PEtx5&E{SoLt_)hk}lT|!QrQTrTH`%N!I6g@WM=24s zqW(7UpC{B%-@pAz8m0L|TzY^@k5Guz(UACogcblFE}X)I@GTJb zFb!`pAa4-e%@=-IT^3#X1to8@ls*-i(B%Z-%|MemXa3= zk-opB1g2jsD0wNrKpYMJXb84rWGZ*8=Wo+Mi=hBEiH-E`E$h9_5n(tPjM|kE8St>LedK z!(*SLF(BGQLebvzv>$KIdOm;i_X@JUTafjg{LJSHGM_F2Wq+$M``H4pnV@I3q(5DB zTi@`1^?c6eA7^F1nV$NdNO%OLIKwee{y~3{VEPP&1QYP_1e%G%#2J!%mf(ZV;JkoN zW8A+b0Adtuo(sKyPhSn7f$q;>;xkwp8nu-GeF@N~aq27wA7Bv^9Qp<&{1oV!PW?HR z_H$9rC;Y4{gy^%(0yKQL-ZGw%+mo8nmtW|6=4s#i`+a9l`dT?7ESYdy&h#&gFj0<9^1aKIH;ECtv3zOtBM&Fb;y|d7AkN z&ekz;{IHYdJ6`4M&;HG+WZ$PHf4Nru((ah*R0cbQ!Hs2535;}-vG*0jkDjZ`6*7d$ zjC`C?!Dl?%7H2GF04tAtpuBplNR9f*@iTWGo{SW4!somJeR3t=i1UC1c48mB9)8w?L>2;QU`-1B)8`L13;fUXm+t$FZsYIWLS*buI}SkeUGhWo zYz0;s!+8_fJp{OXZ=nKn_YgF%^EE*Vpp_is3gLA%NU#P-))2`VO2+r6kZ;sUe4l;n z`|H2?e)rk+C!RVWOoLWtoFr$WDSmnmYy=6=8PPK>2*f!?P(KU`2pE{SoBdUUp<0*$ zK??;^xUAL}VPuD!H}q{oT(# z6{)KUZ8wE>SR=Ze>+R}I?e^$-=p4`-bPfmrI<(Ca)@2FV1^}l^v&qc$)o-V60axm@ znBOC0U%`?;W~JP~$&1u&fPO!t!gqG??c?u8Yl}8@YC^Y}!aAG6+njM;PmI$M+1wPi z-M#!t*OJG~5$%R#uNLztVw&ZvcRQDCb)-D8E1|`~>9mI1>!VuL5$(q4w&vt!x6o#i zD;mFBn0s0zx{49Em~3z!p!Gk_7QI(kKJ@OJ&EMXc;AxC#Qzv%HLEEhxIxSHh)=ll^O&zA_PD51ZZGeXBncV4$+v?h|-M*yLuzGh>^ph=d+Z-va z7LM1_WOd=|^UoWMUoh^Ah6?&!Jq0iYw= zbr833C$<4Y+vqMYu@!|~Be%op*rT217`t(!(-;gM(N1UZc2`uVE2#x3 zy2BII)s)zw&9T&X)Rw-vrKmq6dzuj5N)!xZS%-DjzCCZdcWtK~`t_~KkSDEC+q6+# zx`^HG$Zej)7HdL_F?_o={1JWp4rAE&YLDG&i`wRl*yh@} ztvRaG2^WXw)|A*AI<&P1GINI5Xeft%5}RbRyL0lce{jJ5)b7}3Md)^2+zx9}yOn5Z zqMMyuw*zl+#&>#FWqd*kt`Yocnma7yjtZ!2BzX%XuMr5KuXECe@T{YS^`9O* zX!y>~Fi#`7%f)Q7CU-QUPMq^Jho|qz4nn8A&5_vUqFWp|xS+fBf>zn?hN=&rbXU1kx` z&g{=j`}2Ey5kUXjAAF|<-_9-`O9bZvl{!wMvYvPI?*DRq*<9a`X5jdK z1dVE-gkPZI8=$jaLICIhJr7ezz|aVwIbxU(i^0M(0`d;@L=RYye}lI*z(u3_^>WkZ ztA|dVFQ8#S`93b!PvHoT zQBgU+4b181^1;se7U0_t&D{C+Eb6m}x*Pt_*fZQfjS=A8`?4SaVi2NazXCI7G=ug2 zT6;*{#Qz}xjYuCu*`mX2655ell;|^BgaDdIN1`&mpfi0Hvft&D-W26r6=n}`_!l$s zeQi5@kALG*N!9)o;$xZSqYB9lLGI6mg}12e3s|a8Y4Pp++Rv&RPjIN|!jeCm?SC>@ z|I_OHysF`&;;I2atIXVs5@}yW`GtnY%e8f9Xu)r#%Fm0-r@4Y_T){0K?;}3*v%C!Ajl)*N^t`hy=t{@aDd-&|-o^x~%1zp>$um$aV^)%L!{ zd#?SVomxiE+v4Ay*Z1woeDleur`=2Te-HcUOywWPwtR7jp1LdWJfk^H=N)|s z&_g79kYW#0*l-H*K9lVebU+bp){Owr9p;d&rnok3 zs#R)isD2}DOD~-X0NpFVu5!Kv=!qGCK8FB0O0y-VLmk#-3~RSX07$iXqa97*PHRY4 z)5A|RJ^Y9%vRR#Mm!@}^5?%7}C%j8KtiahxZ7z0)CCVv@Y*7I~N49wqnq9mmQ=_W! z+2VrZsiG?w@ezg(Fqwm*v_ovc!J5YD69*f+O!5A5*NJXJq6fCq6x!Yt+2V}y+9O(Q z0MNedCWy?>Q@#Y~VLE9N=UnE{C<5&V=!x$?_wsAs2Y?Q3RR#b$ zvfZ+&&9te_7}Ktg>@Y@ln4;P(@hvDkjI~%dZEXsF)U~2byTYqZ-04ngwWN4W$t{M2 zHeEuyhSj2`-O6mMQYWo?DIWp!$4uepae^y}f*F8j+iOwKy~7&Y4)p9u_Sh0yt-$EP zEheDzwNJR$e$5%Wt7+3V8+(Tfd#q){HshKdMz9f`#ssek6wzUVW5XPcrHZm$rCavp z7mj9azD$d+CGpR3(yl%G-S>a;QmxgLWRM28>oz=U-q@y!=`u#{Y7Xyo#=4D3UVZEi z!=~-JM2|AsE|2K2B1m%yp@YZS?_wMroH^-T;LL z7zcp9_Wp;CCwIqt6d~KR!0`#~7EX(u^f)MwgVk)0X)%ZHFt7TWCFD^P*{l`YR6>uM z>NF+pXo=e17Sn+MI&zyec84jc!^Cd0VJ#k>%aLQ%xFl6a(=%?8`~X0Y3bsa z=M;_bH(#RCrn#aip5P)a0tIjuSouEf96tVsf>rLRIp`b^0PAglW}_Nv|Gx)lP=JF` zgayCd)$%+FGY9Y##ehM>6pH(f6DR_Gk;A*p{!(aU98RGBF|r^u-sc_pwd<)IRFh<|M4OHK| zPm79sFp*%Q2Vj>%=`M%(+=Bw7BYf^j8s+5l@kAfSN(Oe=9k@~KMad~ zSBn3~NRDs3^3OfRzAGxQpX?X>M}L`bsPa$UMStll{oTo2-)N0*ybh*)Bh`N$toY@z z3|Rj6-8uh$Zu9>bDE$4o+&}gd`bMgLbv)ZQR_`0B_YK$o{%q+V&sF+Hq`o2Pe+(*p zqaNS+=0BV&@xhh{>Th&K?-MROBaZJQg@ai32qz7G$3v*L8jey6NbtPx;^rC6LFXC4 z@^jERAb(ZnyRtz7ap(!S?6eRr`y30bj8fC?VbR{_TWBkRLFd`K02%}UJ;EeEV9^Mm zKm8J*4+;K@0F62ba=wE84nQNJ3_L0T(C2Xi0QzzYIiAQK5%Ky&^ca^nN{PD3%)g5!uQAeVj%YS)Y&P9f;a>ASwXp?A%M{va+|;5LTO|61s#i0L z&+@X*iUb2Z0BB|apfAI#ju4$gDI68P?!mW?y%V7-h;CJebr^u%!&~eC(3_n0NQXJ3 z)w*n_X?d3>&Z(lU3ZYdN1C+nRxu(mp&Z>`g7!o|%l&uD!Vc2hYt2?&YNj4d4)D2IU z797bGU%;?WN$y}WYcy^1`z+pRz2(+ucd1(y=W2}bsuNts1h-{lt39O69^rLFHrv8c z4!0$-*@)X!*%p~i+4y!|#VDEe8B_QP8yglRcZ(DJ0L=;j^av&ffFA$ew}0}}?-343 zNQ)wPs|5f$qRkxBYK&<$M7QZ8+6{iVHz#?_T%(3>RBzPOM79|scG(|x%fp(ro4f`f z+V~bk+nd_8NiAy9rAoJ|RI=(H=4XzirQc!+KT8l^P8J>{#gjik0L`>khqWsGnC?hw zZc1`n>)*M&4ILL&vaTVSqU<$Z)0!IM7zx!Q|SDxU~Cwd+6ZRSnw=EzR_#xBRkPIpv?0|1)u zR2Nz60H6C#@w}rK-5;}~`HY>BmO}dbC~~eFKNL1NSm1{D_}_ik;T4ZTeaF+08AgFi#`13-x+TYPTnL z+`p_z;8t~7W4i2does=v=d@ZPc51mTl1_Q;+xaB}!kmkD1N3Zuovk^%3l3^Pv*GxD zG-o@1UsKSS|6c~schGr;chO4(-bVvmem{@b%R`-v!ND8yhj?IN0OhNJlKgix2c~D_ zuh+r%$F0RvoU}Q1lAU^fTLGzFD_(zb0 z$GE~Xgt!kAk21yQlf@Sk#FI(leva^-06p_@wgMT?bD;O{>#GAaE}8?-$Nd0(l18ER zb2!<HZt+*aV|A)Bv_hja8IQ-vH;yKDJ z{ZoqnOP=@&lb9xipXHT8t9OwU{Wh=c3Wt9K7yTkF=N2Wp#TDM*39s;Y(>!{DM+{S( zegJ5a_Wz?XS98!gpmQ{FT$pq)HRPt9>3gf(cd*R2Z?o^iD&I-1@0iZlZT5|sd{+#< z5y08azQKIoxjf&wTHg_16sfOIfh_1ugKt>t8#DM$)S&6JjlL0`@4VS}tO}_|;u})< z`Xs)7sc%5x8&dg>Rr}7$d}rmp6AivGyKl6~*K6>dR{0J#_<9_Fdf(#f+X@HpA8+Pg zX^%R*g>gJ>!*MKT5EqYdGDkS+BbX474goYp!pTCj0=#(tn&IQQy4TRDu%l6000PpT zV^JoFzn9@WdprH(ek`m4{w~63iXJ3bGXQ;nNxxP5uL0;@M9=pCXxOs9xu;Rpddx2z z)ycog;a*^o<05{)ke=WR`U!Yg(g!V`>t{}HF)AZ1lJG9;I;SSYV~A<9MS6{4o_lK! zPk$+|VPlIiq)i{=QS!|abwlM3Hy580=AILZhPn84HUKmW02(M{3Pjuq-sH9ckuUGitZr419(`$BQ?WyfscM3p>d2kmxHeC` z%N%Ky#7lzJcSsUUV zk_e9~&S{8so5Nac!L5MKwg``PW3wf?)g0e!WZBhXlhmNBe=Waqh@0~%>o!35h>}LQ z$x{UT3d%qgjN+;LxM`>p;j7;zni_+>@}MsB`VRAKfJUtB2WXDdSZOsGI@$uG#*-o|4qLxdle~_O&oSuG*Bl;`}^|e1lrQQZ; zOI4Ux5#DNwX>CgM0MS}Dc}+mwywhcTN?QL~Zr({@+BlDYiRN9S(|YoXK0orIqsvVx8xq~7m`A;9 zz_D>D6WT36&*7~$@B}!`h7`AgY?76G%!-|z;#NnrLB%wh5)7u;c30eP?*^wjvCEO< zam9O@Hnv$3n$`Kny4Ko~57Tlk5aKxijWx>>9lCgrJ+{Rd-D(VPw}y7uL))E^?M+Eu z6VIXAVySJ{)Br%k1Bm)L(IfzLUrzqb{U5jhpk317t(wSfmZ)}9yw?UE1=H(H_M##! zv0JShyR@tpjnr*(Z|f*(HpCffLhPET4sUc@OH8LbW@l4qhk8?+KB3i|*y>_?9O5R8 zQC|ICcIG9n@FK+pfChS=^aJ#D;x<5EpPI+V|4?@|w*OFp*7!aJ%U{I#@YI9+)&0=SQ5p>k zh3J`2gV2zx{(OvK8pWyuf$A9na|bk&L+Jk(bhd)*TLFDS6K;hv#8YYm2$lEqh4)69%e@Tsi0&_-C(T_W;-1%w{;|125FI4gR zUJ8`kyMOg#+`#aM_hbDPApEuVNK`~GPzRz17b0QeK2B;MC%vBy$_xlTcH{rO02+29 z3J3wTKYs%N+RxDRDUv=zp(4t?9DD#H$8at@@Rw-8Wq1rY^ewLVd_3zGA-u&AUQ42{ z#NpTD$uBr*zoRzah{AuKBK|a%{slYr=cM2xoVt{l@-Yt_IL-x(^KoYSv5g@Yxa1^( zU7(1Ol%$dP_)8qlXF?G)uNPV5N8I$O1ma>6`8hx9Vmy8!mURO|y}4nhQ#gH|AV*1} zpTv4d&N%|>qrL(__mI4a%)Fym(h)jnpfqG!9e&G|@M#Biy_I{>O?|XIt=|}N-V-_9 z5_+jEX2W2O6Bv4g;Ec`z=-+;J^YPmN4fp!1 z0(2h-q3~DHJpdY5Kd^oODB^Sgpiz$^jJ%Fs0Nil_4;uRO0&zFSJIu?P-1_Lip#y2^ z##pB&$ZOo-)B_?%v?3Y~b>CaFVS2X0J^GDaU1+N|+O6Q48)c1E-^njIoQ42;j3TeI z*)sqQZ=e7`|Fvi6r$^rjljlcyWT*>c3xK#a!e-uNx5l~ck*(I%?b^^*b#|*oy{-L6 z@9*h&>3fkD6;N+VdrP9r5@nY}x}~A5$_?$t4Q;nTl5Ks92GEo#mRR7n!1Py#__ZOK)>|LcW`?{aI*{mdPBPzt{yOPbc;T! zRU6T&k7xxxHj#F{%iHqa+i$<{;U1w&6KbhRe$*N2)xZ@CZ!v=7;r9XbQC?lLQ^T`p z8YMN~FU%gwNWY1RKTSa+xg4g`0sx(Cst9eC!zxi;TfEB}=QKro43S=av_~7|P{h0B zo7+t8?QP%Pwezj6?R#5W-`Tx&&m$fCcXk}w)^W14>v(6^`#ZYc+tu~9%dth4#HpM>Dy0*m-;nv5a)SV{SW1`!@a;VtWh8%~g z>+#($z4_Lo`}gu)cG7G~G#NL#OfkDW>zlO+J6v%dXLPfDeVb`hvnt0_*IZZfen##z zopuGD3sggioO*QId*|Nac%+F<+61?4lSdC{0lWHm=zoo^xso9p??go;M^P1yYjj^qo^cLf`ZQFkG z{pVjevbW$dZuUi>ODDGlYGGi8UgeL z*c}b%OkVQ?^hHv1fy_KaWL$mnn}^@{32CX1>d?k_TH{(R@u=tMJp^CPSA2^pp~VPC z7|~&gY_}zQY{|`*h)yl(mY9{b-z_RSCdwQm#DPD`0)bC>kOMC9-?H$$BlM*1VD#O{ z`(M^fNPD&}&}e|}|9b!$T5>?=tL)nV4XdNEX}M^qbAaXn9tj%aqW*#-egQzwhF8%1 zS6kpkHY0y0`}oI z)Lj7WuOm1E(5N^x<*(-LuLj-2!TWF$jfY1PeKdYDDSm`cpG`@DUsX?H@(2r!<%4R0 z#j!r-W%P%|U1oA`;-ZNpPEUO70LePXN;t)eKf#LY;d3VQ)4BzmvpiOh5Icz{o+Xld ziIfQu-H)Z5j*Y&+A}=Ii(@EqtHupjT=W+@;8OH*8o`eY&HO@xmBvGm>L7pRsGXxR1 z)AJR$opVKqjz;s&rKG}HoaM%y76zXXum6C%`YqP-cgUbK`Ruo_btkgpKI8}Or`Nqt zt$UAJdni5PJ#pw>-g>a_r-toM4Lg(-^+9_09`3qB+0pNbLSX)p%`tm;>tDkj-Y*V0 znHRH{UUe)hVh_1`KYzo)w2kkOYxnUs?4yGYrAHkUM|~iS0DB}O_Go(i+jQvOw5S)@ z%l3#?p3Dz9n-e^c717U+KbxG0lC(G(cL16PPgg$|1BQkRKD!Z_(e0Fjc?x_RXenlE zHaf$d1@-#xasVX*7&_YmT=oH>&bR(`=i5GvfDO*EsNMw|Ty5?MMhs#paL0#n_DBkG zAcgwZ0yL}z8o&_ZqeuX}cu?+&|KC!ap2R3rK@TS{;?xy?*P>A_1wWxlVJbYphtl$| zf9rd1{P>4#Ndm;Rob!_xt6bR*0P_h^H?>PV-IG}hNiYrbAo zwm&n!N016v0|5FX7AFAEK%c#2`g@zJ{=*N@p|ZRvw=|?#9olS+@L0pGrf92ilhYFI zHLYvYM7U&`7M09qKHYQX#MCI}vaC0$W1B3|7HwR!I-*$?+@@UDZdljq2=O$DKy^ceZ4Y33=Bz#6=Eoke9J1J!krdKX~!==i?-KadugRQyt?pM!C$PUQ2L`CCpb)6>Lq3=BZ>CZoDfBCsJ4Y^@% zS&&<~X}dkN#Sq+rRt#!008hs|wWLK`Bdz&fVRnCJ`VCzC88h`ND>VSnN6zj~GM0yU zWZ>aMH3L0cVjV`f^3fh0%Vi)e3cf*7p>Aw%l)X?X*_T`WK}OMgIr;l?b3e$=J(9Wk zbZYL&)cg;!^Y`W!9WJDnSv zP4TVvSdRs0IMQQD@EAA_HD#Aq_ z<|wZt+-qCiW{mJEGtIT``jYpv@-FbwufXr0<{iZe0OE& zZd0^No7k*ldQ^E<)ozRPM>`+8{BNJCUwm?t%MjPq66JA*I*c1Tjqu}%Xw!n@6xHgA z_t+_?TCT2sBQI-AD467OFH#`tGKB#83Q1iixzm(rm?Ju#vE?^!zWw9ppW#^RHnu1? z0T8#^{bX#Kuh7~n#Mw_9P?i5_!gyAE?p6{_m5m2CMylrew{&_m6k zCfEeXKY-ldwBr~#Mj(cspb$;o#^|r2KmdEbz6@#4(*K13eH9a4?2cc%v-2wr~yke$&?55j<8PGFfi0#d(+xD@Pnh>H(% zQDM#dvHrL4KTiZY3xvzJ)$h+~L1`^~ejlIT>(6rW_x$4qYH^@`gdhslhYr|&8qI-q z!3L&hzU`p`gS?=bb1ZyyjzWWt|4-UL9gq9e2_F8T2!CIUqk_|1H1Z3)g2$NL^C|rC z6vWVdoYd1q`VnsW`-059;>>-bbd=W-=yyl}z9OB%DNtbMe9gw)`_X>^par1Q1X2K? zPxt})2tgdD>C-$eF!X7hIECSW(QwYEc*I#T^+8H(Pb&8W!R`^z2NUB4_}r5z$rrLR zPbDUv7l}~8TADlHAF~Z;dq7O}i@9fb?EVbFX#wY*gvb*-)&WjJPa1WKX7>t-6P)Be z9(J0YJkIBiu{pg_ano$-IxXtn7;_ot0fkRv^f;3QdWLoobxrk;cnMC=Ie%Z&d+IK3 zzN3C%da7uWEE!;n&$5`^WWq@@@;DLEBThMr#dizIcQ-{3XJj2?VLh~HB0U?NJUGI$ zA`A{2>`5N$w1C~8$vce4pAll+sl)+x>?uC0JC!`iWA>)gC%7ryBKCU;p_7HFr+LZ8 zh`5tf@>xE+M}(i|vfv6FV#W8Ra(l%zOmqwA?lkT(G5cs*N>48P2o-vY+Bhmo?&Ty* z34~*qXo8cD02)glCIoi?8iTeVz{GPj8=7ZpW`X$tjpD?9fDWKDsGE)5)xmC-=5gnY z5FF1}V1ski%O?6*)DVXnMtMQW1Dxa`j5U&kf0#_(2I&914bX@AY2ZEoYXKTn%7Y1n z&H*8SzQm?3aHtV~W#~y^8aTus<`mz2>6Is+`C4RcAwa+~vpm9MiD|K}waM4mrNK_! zJvE1?0}69#!(F;?w+1*k!ll4WjTQ3hU1b$-_Cp&kU#;cj!3!yIWdM%fV;1~sd~Ox1$Ain5CGukGA^W@u30ZVI>P z`LQ;6q(dF$0OB_TJqP)dRp8*^6j1QE6~J1VY;CO2)IC>Rbw*rx9nZLhaYqI0 zK2gdzmvtMU2>}4~d%W}jKm$ktKnHao4hCGF571(x##>t3lAb$$_SEwqz8i$VMV8wZPiprtDoDF)0>rkgG~Jt0Gg8q06q2McLD$%?3RW# z>+c3=ZK6$0niUxasZ3t~cv;Qcn=5)nTgG`gqvEXL)U*jv+B84yI+bya&YBQz?oZ1- zMrEF*GSAbgS84uL0t0}aPR%&cP&YhqSkNR*b{RsN48b02u*aOz<=*5rM>@>lawK?7 zlvgLx*A&;4?U3t!*#79vU;HY|V!|{kj@tnM9l6WBrd78dPQ1A()N5VYVGQ#sGR(Ek zhLU}o^QL&|m*_76`n|Jz0T~nQngpj6kT=4k4fC4drT{>Pd#wP_T)Scm0JO6Da8}*~ zDFT2VGUvDo0Y`&Mn(k-gy1jA6Grq zu~tzN<+X3}IKrI9@U4d64%Nn14cvD$3TAT?=F~K*t6nYGJS-BO=kWocuMwz*-DQdd zl7^2LC{YhnaC%GCf1Ez`%(IWPtqnmgSyYP!sQoJfv;p`&0MKFW*0^SWUGp{r=9X8h zt2)aH-xj8y?v&1kL8{%R2Z~M8NJ|5?vWa0ge!tnk|e*vLlseS=s^$C!G zxVrfi=$wBnl|C-jPg7{Hf;)nbAhfQ3V)nN^6amZMQ{5zfPr)kpuX8kks#DYWeOdtM zLqhzZh;x*WpX9>sQ1lJq0h>F_;tz08DejY$_z*AkePQZ5;?(y<;$vKXfQ3yC^%V$={p4v{zj3KE8*0szg! zY;p`oBX^A8+#wtdgV}ed@besQ{`(rF1cRK^VRq^uCKw=yek!G(j_>8h_VD7n>BJri z>m_)-cg9B>1`_QC=b8*C5B0%tMcGS0K;VVEWCwz%-yovR)m z(ap!s39ueMEW;V1Il~k-Mqmx(^2a@Pf_u;UsYLITq&}hNDU`cc%!?*9?00;V1$PtIxq@bVL2A^YaA& z-J66DGKpa(r=OYF&rX^F=y&SnzK?JD0s8Zg9{>75uDG9|r|%5A^|zYr06oL0q5mb| z*f^-J^UM+6kNP-3&onwPfO|I4@2~a`Ke@oZ;0=Uce*S-8FQeQ|?oC=Smc*Rm@kY2@ z0O&JQ6mGuN>YJF3XR0NyFSK z6v=M3L^&yotBSWZUJOZmynlFNAJ4U9j^#|A~r^E~zynz{zW zNuw_F?{U*czWvM_Z~ZV%QMAD=S=*vp-K-1u=z#^JU79G5D!f?})~tm&X(` zAL6A?z3|-OQ~MHirNNHIP>&8AfK5%N7(4P_!2O8uXyP4G%2-<=DSxc2{Qbg;@zjC~ zxCm(VJP!?Gca@?)#(1|l{0p>jj22G`@}`Ka8{D+37;%HbE>k!-awp}IbA1QJ?YaswIp(bvJJ=kf8X>E#X4meJ8waIIkuh?dNf=3(c)rPj4LfUQ7&GuN24d!#4iYt7#aW??)U{7C0bl2@1aWsD$_AXh@t&tJj2a1 zAUiW>wqO?{=xPW7prOtGAUorK?0+W!(0@JA|88FS04==8Ou0pIE|b^<1};6bQD1Bmx<{{+eQs=qkMFPLZ!EZ3}TPfrXCVh>~y^0CI!JfqFaT0C^;$SpE z-^Sk=!Rnx4-tCET8Vw#fG0y^^k5MSXJ;#o6@e$rV>YMd>rfm z;Psv9zhz+=czuH%M4-$GOwX}HuxmcApP=Af39se}QR-xB`Up<|ujbpajkXDELWXfA!4helFF^{4$~|DC4zXSu?&6dKkMG=s=9Bz;fK5bu5J zD@LFxejo^e|5o<^0RQw!L_t&yHUQ8w3=Qaff}#VN(6<*RNze(3JWdmEbx>(*9(58i zGzAQOjE4hKgN_J5oPc2F8G`Qh4}Jsc!TG&}0Mw7)5ytOl^9EVGAvS-6EkFbF(DXST z-pwW9g7%UG${6uy1wbP>Orqg20|4z$SLXvp&&k~Q`x+o&UD%5V1QP>j)C^WXod6i! zM<(_WEVN}TZHSW%3UuHDPW1yl!unyH7$mSE3=MxjN}|$o^X(9go{&MXcZvABq6VQg zAyG#G7H44CS8=zC+Ti6af!2bn+4(RU#^cnVD03GOxH^=&M6G7+v6pp?? z`iGyMXXYT1zT3j;eaXZSi$p^PvXTa|lo6agnoJyI(zgNHKadIl^kG^&fd2~sdXPBT3K>>iiO7X^%Sr>Wy^F00pFYOqe`c8T6&(EBZce=u~H4j?=psni-icm8G=#|#S zbxq3kcJ+NK$gbSjqztyp*EGq3?XoySZJMOaSX26ZX=#sW^EF&_9p_#n$x9$VKo4=V z_heW8v3v04LvM#R=0w>WLLG`AhZa~Q%xMa?X@jh)P?s{qBTF#V71md2$}697dV5ct z7U^}H%=##^KGLoU_ej?{YuC0aS2Sx^cx>z4O_5DTk+#06e#^^cIcG#P!1~X*+5K4B zt5r2u2Tx0%Xb#boZL%t&tlEuseUL-H)}>wRRtGuNp$=u33nrB7UCLmOD$>!IsjS#t zRB<%BY?{cvjsrjwgCh2ME`TNpR}uhvl1l$TkU9R{XW!oY;{;Vnuv@yJRlnAQBH57+ zb)-WT;ZlHC0Gr+D)TXIqPnS2mu(@pF-Mv3}{ReDq*+yI4dbn1thF}kHylHI<2vK09 zOOt3*Z;@Ahqd4B9-z2dset5I~1E z>-~GQrZ_dV>gt#BH}{K#V|-vxbh*$KqezqtP4Umusb|U5Q;qV^x=-kLxMGa8QJv;c zk0qkT4wop}qnoeU+&m)y=tMt2hjf^NI&9#p#Cq&;9uvoj(p^l_;-BW^_V60^BQsDM7gMTya9Y;%%=*K|LMY60+|fgAtX0DYT-?^6MEo(<4YDBjnK#u^kKq)`f(9x0QfZ^j<6rNnI#zV52*l9 zdzQyVA#FZ=nvd#oqXOOF*$}9BI9%x4oks86ync*3d)S_TEP^*chzIfXK`dtg%SDl9 zLO4Ki2Dpj+WPCr7jF1`^3;{y}oe-oy5Du0^eQ#lcL!m+G*d#DCLQ;~NZ-@L0jqF{5 z`S%oo3L(SOMWl{mXw+_$`V5aNi6OFtXNe;QjvvO;hY1lZ3{EgQ3_m^30CYfe+L14H z2cVJsbLIo|SZ$atmwK;;PkU+cuXMmzQl^w(Tx^VHs=7 z?tAagZ{Nq`{(|m$ysLGwS4D|CBmFT%o--%~ zmxB5eQpyt>Q^J8Le^v7mTeSkJHA#A2abK zJIM4WnjH^B5_pGLaBM1DQbCkc6+h|wVX)(`#-(7alJ@jzzfZ#ZWZ=^VA6mpp+}E^j z2eL@1k?$u}U)!#A{%$|ZXLMg2%V0b%s$(7&2adP)~aSLtm$f;K`S18zv| ze*312tU92(W-a^0o_%;SZWS1)h;L-OA|UueV3qqT+cS}H+qBGZWFFIXfidr00N@_d zLSJ416aGRWIg99wXzc6IXsgrds~khS4ANuf+R!w7F_D@pX1->XRr-34CbkSr_eix2 zipHUOgz?S94*X=kWghLQ7BWfvEHVxY`L;bvQo#=WV~dP4wsH(a@Ct@(mD|~v<3&q@ zy%fxHFe)l}vx@)dkq~_N#S|EL4eHTJE=-qQO))VXT(_LgB)mlgb1sI@OHeu@)uw*G zO>M~>=+4MuYPZqyrUmpQ1HJsMMtA$M@TN5X33ya*;V%`-z6-Y{%Hho0qj_cFWi~bG zh>$_E(_S!50bX`Z^}J(j->vz>+HZDz9pHl?OK z@wj|$5Vo@8sZQWw@RCcwj(fNk8Ah)jSiEox;n&Bo4dR34SuONvrP(FM1o8fw^~Guw zN5NXBR>vEG;WmeVoP3?~!;Q;h1PojU2RV4=un`~61cw>RgopOGkHv*XKHi`cW-}0g~GiJFo+9MhK82mR7TMT3Ec(lwH=*XxaMzoxSDp8_5bG{Qck(pwgh6h_Blsts7i zAV*P(ZCLQrDQsjn5tI{?w7{I#3HaoTl}1{3?LqkEgKQb)UJ2!X86|Ep1#YnN2X<@< zJmiEVDE9$BKn{3Mlh6Lb$XSX_6nx_HOIRK7)KIol-9Y9BOt5*ce`Ay^GHx_#w92J# zJFfBp#Fe_BM)}Bo6QTPc^uY7xn8g0}mm&`lArxitxnV;BdEbV#q%jy!`UO^d5XCIS zQGYWIt^W?Y&`_-TKK`PAD0rotJTb54tKa8-8_M^vU~!rqSn0g|0-n9u{3&-JhCeqT?YxMx7#(5Cfd#e4TPM+|A|}ZkTnzS)}tn>|HJmB_5ng z)0be?3TI5NovG=mE=A{nsEykl%e786E%?KSnr#x9!L9<|+4FN8PfS!lINIcM6IzR~ zoqTK|rU3lOk73HVW=1&qYR}7s!HCv~!Q#`q*~2)JNMpn=JG~aW zb#P_EUq>)i@E!;rgp7Cl4vFf}w6zg1{v=2}D<+so&i1Jf;m7!8(@6qe6RGlpt{+F= z$zVv2eZ(abT$tav8@pJ@;~3&27&_q~!2!wkcLbEaIq0S#0mQwnHEu6MI1}2v1FDS! z6)1P>(s7yGaDT%rbH3L9Dp-dUXMq1_^LPJgP~XpKaPXtXZEQf*P@+O7* zo|TOt-aM&~3He-1MXA1@Nogbb>up(2q88>QO67PgHz-oOB>24QV!{KHVs**$Q6$~H zyNc7$$PlDw$p#MWpL2a%Y-dl#0f-FcuNx;K`H-%7pJ_FZQQcXC+U=z<<%(sPG?ri` zdv!IPH9p7E^Y!kSlOtQ@Y;`wUy|{-InC7%|E?0hUCLYL)CDV`aaNI%^MD>UiR)hEL z{#swD)4pD%f0+hZKfSw}cx_L`bN@x~5g*#PM(;;D%4zz5K>m7p!zmOw>;KxkVz^4r z0w_25tp@fimp-qI6Bw4w604R+HH7)-*2${8{NQe~l+YLrlOJ@me$B3YGE(}~EHK`| z=utk1eaem4jxNP%P^U=nM|EViB#Yp{h;2qFF~|2Cu7OodneZN*`|0DQgx}4654`3a zq8`P-4P(AlK$|AsW^u@%A#_ddL~}^@wB@rR6$hJmww}A%kHFA4BgTvcu|pZoYY|xM zQ#=7ujD23lx2V)Wj_*MP+F?1a2#P&JQY`XTXQZ=tl(;QtgTPxCOgpHMX(E_U-7QCE zA~@2`IBtCiZ_^u`N^>Q?e^>=lpvH%?bD1_D56PPf7dkBQp zP97N%Q`U*Bh9Zk-{5+zlQJYg!IVdIP$Im5=*awNdG60(MOp`QC%k_CSnXl6CtmbIr~CDP zf=RTCEgpF^ak{BNRiH-}33&u_8ArdPN`2L8OD3tu2^K2qOjJXJ_Z~{LXxtnT4{q+U zu*q2P$l6dWwxk(8to2Rrg1$SZHKqs>d<{H1)GvK}-#Gsc73hz9B_#io*$}gyqQ<+& z@%8tLG1W+z9(1178@E+9{F$qcoh?z0jV=Ghs+Rp)3<2MyN2$!iy-6ks&2Eqay<$fh@Pt`m zBz6UoUyhE$uzLh2hd1P*>{1U?7XLiPLSyI1mr`N14(33Fp5|q;+&roe+jRq698y?n z3m*nRwK7NSj^JZFH}xFiEZVtY{7l zuQBPa6#*G$v#ibQ8#-s_`3W=Jie*s_|1%*cJKVuz84^~yu>?I*`9%i#@6;?=6jE!B zi%4%NH15+#5As&o*O!=lFL7+I@eFSkQ_xY>Ftq06449jPR`Z!>f(UAp!D@<>0s__U z%j_N+;)@!ctBeMYytVw9AxpfKJ)7#e@9HOqgS3SboV&lZ``_~SE2zZYrQQpuEp`>$ zlw)-o$IG!=&Q^rf;7RqvjggFNfr|xz8>8JcE+<4vKa_f>4>81Vp@;cvppuz50EpTn0(EWdf@Ip1d*%X(BqcKR?m}Y+ zD!QG5-j^;J?G$LUn?6!FIh*=(Ro3_WN*dg zkbv}r@q0jjY0$|2_D->(S((8X`OY86t5O&Zcx9{dL_f#rT+ZE6J-W9d)%DzQCOV24 zCmEADH%kpp62W(s0=gb^D%Y-FW>HmXWt*lo;D`7+Ye@T<)e6{B*J7^JSLngG4VIHY zA=Jf2U|ng4xY~X>LWIH8Bcq1a2`uCmf)7)U!6!W0m-B1cH{U6!y1+kK2ghMfZotE> zJS0ctFT=8^GL7<+b`0*y%2B1_MhO7`vS5B%%hLHs9hiUrHf zI)tM9MX>?8ngjL~7W7gL13dA{ywZll!$>BeFfY2rr~3wD8w6aPAz}7>x0x&=k8b9? z7@0XFAf&(!3i~Q*lCTw-}YXE82{Y-RB2)y2FA z0yv<6Us@mkTQ1|tB>O39j2Da|#hxXF%49%*+uMDM{hEQAX%)xP=ZU2_3s(7zhI;&B zYvx4$6y}lx)V1`aai=fLB?R{=AJqfD$df5vvV>Qg_Lw)IRy66;vLS6Sb0mMB=o1h~ z6ZotEw{Xp&D-#dOZd{)7wA2&M)(EI*sMXj~txX1zq%_NFQhWxNCkm!be`b7CPl`y2 zh)4n(zmK^5y7qpH4{waPR%fj`m|*=0rv*6d^GsRSt!Pj$EJt2N)FJs?T8XMOrB>8b zSYMzEGODSmX#i>YPEL9f5(O0*Pu>e2btgsGI+EiQ=M*4V7xNK{|C}QIEY-dE#t*<4 zg~>FrmOR1}iUYFE2?x*Qy9otENatBB90_eYqFZp^@AwBTH!wp`uz*8^A+W;4ul6a4 zvAC>%jDZs&!)jouRYv=F`nV^$LeB5{zwG<7e*-Z@Mh+;C{;6DfZvlJLVNv?;eu$|G z_TR>!7MoB9%eIrZ-Y%&NeJ;$4e0s;&^9jw4rU6}`OJW%dDX8t3qu041)@MuUlLM^r z^BCu0Pe;E>1rU=`Sp87S1Jl5k=s~j+*Yq7`QXyO%@)&M&VFu1)_ieL}@_4Iu>NGuCTZFkbJsQ z1FMFn>E~w%HKOip#v$&-+%{;YDa#8jH3}&>!tzz@yR!NNFai2F{~mJ)2W-oI*M)AB zT?8c*uBJjc<`wTQs0|mzP#`ckFlO-id@1jb&-H<-%^a=Wpfu*KLKde+8LB!z=gJB| zooi`{b76UQMO}HzpJQc_T}z7-l*)5MfQFIErcpw3`{+Gw8DO%kCPfLj5kjn`69{%g z6kfIF4UDGqX6Sy{p2g^DdvCTtSgec)iPR)eY~n|^K#(>Xgn+o+53q=#TfJ_fr@U9F zjkiAGTJbIO1zaZ9RYX;qlLVFg9{f}D{sB^l*N-HT z;fs={^V7(uJF+vktw!&^-qJx6Zt298AD5E2OZ-y}dlu>SY?IgpmtgL}0vg~}U~SVP zm#wY#zN7wm^>?jwJ%tIwNmjC50)0koNi0`kJR!H}VUbzWIKJ_I{QWTWfY)(BLq8gj zF7dgw{?QVw3c^MT8OK!|Nav?Au6;Vf#zBFAMP<`&eRk3jAKK`)&slqVF9tUGAA58c z=Flu4+4MScqrg;Q_^|P#s-JXNvw(r&gSO53-1MG{f^!DTPjl2?OksH2&&!E;mm}k7 z%R06p)zQXT5~;(*`gX}+ch$BVL&>5MQ|%8Hw{S<87QnMY0uL6DTecyYqb3Y6 z^ec=U@h&%~=Mwl@V{XFV&EU}s9^qAaL!#G5cxjo~u~O&gN4|!Aq-&@&&U!IsE3vfw zQ>r6Ib|Umu&NjKlHYJpR2D7pg=Sof&(c0nh}C=2z(~`!^K9ln4Kz`uFp2qTKg?f_NG-yUGo>lxC_iZ~)RMsun(@ zUCe3!Z>`vN$+80ST7q_kIs>Pn%O80T>H^caUC{v)=Hm;072u^-uBZeEL>^>3b4_@Z8*o(d$_ zd?u7RWFJu^5degU**9}KXCQ3Q{mJFu;ffntkEZ^njzM*jW|Vs>OByNm#Fd~{fd<1@ zi|lsZIS`(NqRU;zNrxZnjIQ4ohSjrI+b$}yZ4D|Xr`YQaZ9jwT8W{WP=D_3{0q$2X zc6K<$5p6pGozuP0Ypq zAB9M`A4<=_NPkS1Nd%B zpkIBqWy~cx$x5U6q&R%y$yPqKv}IEh)MTdk)_Uz~I6bkRml+sFm_0B?$%sh&$_01a zsK1LYJva&_uCrws@~i;RBGMmJ$L(1%_jT>v}vj?yJHcZ{(1abm0#ZPH`p6c;j$7Z%UvE9Z)=s>A9WW;YTXp*f_<| z0;2UDAZJtVcQ=r=2>GLhG;@$JPEz&>mZ;tqlZm5x8JkamehkadvBPyQurPzDtNBydZzi1Q`6ig2S(%?`d`}qe5oAazGkF1gB9ov#wrxvPN7F(Hs6Iz|&j|K;DBeW5|eA0SD5DgA><}^ius!GA z5vN@t+Y~T@cjO8~parNFw66k^Zt62-#ZUs@Ov(P|a1as^X3+17m7phoC9^kQy)D*s z*Aj#Fep)PkdFkmSY{fyuD)UfHQv1Xh(lg3gF26wNMcnE1;q|vw(SEpz@@>B|px-ul z2e}BbpiTzI)DFFVDMGJG{lF(7t(0PdupjIz5-ylK5QIep4-f&R^)Bnj@oHCR#>sj_ zsnw6L>itpW^gN+#vD@Rn9p;CUDa_)zn%)^%E;->}zMfyh9<~MZO&2-t6q02x#(cU% z5cA8-;Tb4KdRP>ubs<;GR54K*sY6mEL;ONDb#-i7+|1s{qEfbQttP%-p|_4+R)pfj zD|TF~cTh2u>QlPjaP;sPaOaS>*+$w6Dzg z3KUoCGqt-|-~&WH>f)F!59y$j-9{UCLdkv_C@m#NW?vsh7B}we(_Q>j)(ChKl!xj= zfE#82kc0f7#OnzE-DP$|H1{+LM1ZJs8rpT3s&b|vdai}E0p<0?C{)9g+s9eI*C~Po zs?vRKt2WbAI~iuIKXbEvJSQND*t1f&`ciTf8_fr8aEo_zY8Q+6VsjieC(`q|FK zceFMTvOMuoW-E=|!lp~QW2OqW=8jd1pAF=@kJV|xCe{#{H5a7Mr+b)_0b+LoO|S4K zT;=MnRm#}T&DNL8HEVs?uC?bA+pLA_EL47WuA)4TCfvFLDI5Ft7%W%o%vbB5s)ZWt zfj;c3!JoT=J#}Jyl68ollY`JVNf%()32-K{-|w`an0 z(?_j2-ZuC9dG!QW8MJKv?0nlqY19y5yNw&Roaj2t>k)y4LC-Y>>n1%6lN#Bd5y`s0 z)u-#L3^G$WN+b2y+4N#};E>u==al1=6jN2dsxxjCf~Pms(ysjjmwzoT{>G1<$ApW= zjmmv*g>^S(JF?!@Q2>ZY7fz6sIscK574N4B&ibOdZ|@6@G>{O^O*7(1nz`pe-!=*6HVsKcEGVIlk_ag5 z29p6XF%H;4xka6jwJ)WL4X+mXkaLj7DZ=uQUglpcBwt{K-bPyzqziLr*nNM< zZ&_NWz{UCcd~rUO$GnG)MD3C*;{l@Y%7nCi{Q8%-Ga^~b#zi9ai8j*jHRr>$=msUL zvQ;@7Ni=IjlW%H+NnDp_L6diVssHx|-u$(juFsm?k{}+v7;}sK;rRxF2~_-V0w8Xs z)Zk(}vTIYahEs(GObh$=5UYU$ilWbp9I2lua%XS{1bG$THzl5a!#Qzq6>BXWfk9ea z3(G~wO)b#{EJ2cbEvjFeBokX(1lXGCjX>&8gLgH9a`7&w6QD&RE|8|Ud9}|Ne5660 zq+Y$MUZ-}Mc5M>4g6k+{KNHO@u!-TFIuBZ}24*VBEpe^w>XcizFrb};0|vGAn0gp2 znc6JDMWaSEoWsbBo9g^iKS?`im`AuWjpzt7VYWDq7Fax5+CLPhTNk5d?f6_gIO+Ps z6w_?H=)Cw}%KjYwGIHcS<_y)tNHVzVsyk|Z8Y`k+E$7Eery1UOXf&O z$3zXofgkF`^TO56(l0jLY~|m1@<&iabWXLsRNZ! zFKr#`vYwq*Tk)CLgome2xh93<99%*~hO*sxCbwddq?#$~^cEao`q1bQ0)QZKSNB#S zz%;e6&r@UZK?xars54qXxlXxrxpd2TDU6JPC3C`FMy;wCx;2HH>M8RxdScwf+lvy` zdI9rGN(=2O=fwT^nz33#v*e;ZrV-nD4FfK&Aa=X!FQ;UV`V=7XHC&dO zRr8PXe+ztt+t{S;){P^9tEK2XWJTyt<~h|p1$)iY?Y{>WT_|CXxqi|!tA_t3zK>oJtc*llQASi zh|;ki^!FR+vO>6=6dSyDCQ8yF146QzY_jbyI*4=O2 zX9e9;oUP@>KuwL~JyOZ(pJ54q7JubR8d&q|r3!u%Mb$utncfdUDkQkRK$zbi_#Nne zr}qr9|$TgkC=h zJ)Vx-NvMv2;;Sb50J)`z8{@3pITPc)c*{i-?|cdr!raFP<0_n{{G|uUm~V5I=1pWI z6fpg#zOq?wG+@rQ>5c(royw|&twZSAS0}-95bMjFprH7v!De-ia7!@ksMz(tZy*kB zcab2yI&^($>>`8FV+fB(f8p!EKcpF`V92Q=>HJ;NIWs>z5Y1}(7|7R>Nn&6r^u|yl z+qa$SxP{tjn<3rZwN)1w`Qd(=3cvR?>F=`l&Wgu6(R!+)UR=xu#B(RD ze@lPUQG4Asm_rO=V&SecXDNCctFi>=&`|O#f?Cd_uz+3KfHgI>Ns}m`jQVJ6F;+^< zAt~-u=>ZQ9-s)94C{*SJ<=mG`6b^FlL{i>#y_G5Dp-P=9oKHzk!$sb&10;OBFePdX zPl|wvf?EcQuHoOSa=BdAD<0Z;&dX49qg%&Bq}(KEd{@2VgxRNo`7js_gYl!BR!;Jp z)1?-)Te~qr3ZF;m%5lY+ro9{!5qCvGZl5Ugk}Kt#?0IJpjcX3S>%0W6uliwcT6)t5j6Lc)N7goAfl$fe&L1T@q;z66#Fkm>~5z*a@x*KC?H2 z;0Ty_KYzhJ@@gHM&)9Y&L_|fCK?n5wc4%l>a@)}GW%;N7Lf+HcD_4)v+pd;quSdkD zm{dst=9RvNWe_^SMw!WzSb!chy9}R>v|{^%{#m{-p|8_L!-YJNCw{B!;t1PJ>5ovd z=)fo9i!TRds_&oC86=@C5Lzz3_(NhMUZsm9AVk*ZxCtKLbDa4(AI%I$X!QT;`dlzc z2ZZa&e|DJTl|T6CGY$Kr(6_$JHKPf?38dFq*W;YnhMT>62dT=dag4O7En6 zhNVv{88S~1l9Ea$t~4`G8RCYkN|=$SA?bYX3|Qle%Zg|NB|5?~1726r(2P8bKmg33 zEV7Ek2)Tku?jFR+!trtT+b+@lySuzN2|J4cU6n3vg>H4N+1Mm;^t@)}1hvO>^vIq? zNfw@6C2R9jZm686drQe8At!iNue8cAzfxPnsH3aix1@4cN`_xrvtKo}#+I3S!c{q3 z&v0GcHHy~nXEhD&tF_cL7zr_2DO%>%2i@l%ug;Q!{F1BAuyk}Z(jq}!PHIwgbDRYm znPU2c0@b1h?+xG|Llv2;TZ|iY*zNvM6V@)izTe3l<8MZQIW6~%4<=G}S~tAcP6oL9 zCfNzhg~w-(FovZD;`q8OR$cC^tyce0r$w&oMO7%g%qv-oRn?W6gg$jB$DkhczPVa?o(fc;Ys{ysxXK7G)U)`*r5+>g zTPdFlQG{Wnp)BxUH1U$FV7R{T;bk^ILaB{YQhCQMztolYeELqw#?Qf zumpv#r`S~|Ew#wzt1reZ7Gi!~u~;Q5iIe$aX)nIg@O-+sgdXW&knH-BRW z?g_a@Si=d6cWrq!md28$wn9Ub;2g(7+0+zp{0sk3oYTY8>pAiR)sQW#;Hf4VdM0(s z8Ep)-u}68mS$Ta4^H#QseoZx_fY~|~pJH~RTO~?@RwiBeL1;$U@MpklpJ>_z$L>U? zhowhYH;VCxsX|N-=4DZOyDU<{ReUvB5=Dcrx?itu(vs3o$;3N^Yke#ED|^@#!04?f zp;HZUcO%$-)4qb)Iq*>u%lQeKiyA8gm*dkJd(nWI+UrNEe~&9DFQoAS3a&weN?H5n zlnbQb+q{Z9($Iqvvh33(Oou4tUPGj}SX9sGY+83V&3tUMDYcr$iV*z{Zm>|8q&tW8Tn^!3d`g$Z98s{jDimMz`^9bmoLt{7^s~i2l^$d3{FE3 z{7cku(^)NM9OM#g?h3T=eRoukaAl*>M{4hvGPMt#VCuivoX-7U+PIV#_AxShCTJx_ z=SS9TsEQAs#fA2sFPs8;-BceAhn(Bj2j)I88_nLdn7WU?`Kb~kh|y3-E`I6 zOW+6J2CVy`_Q29GGrd}iSN)4jAVLOiz9J;?%~;$&{ z)kWV}OTVVwIHEWEcUc@#=v^m+_5*eGK3Hq=Z#gj~zxL0-zN!o-5=W9jI-~)_MMFrb zPo46hwHBYqVk~Ff1QHb-=qq2BYoAMm^pk2<<{Z0)&>7Vq-s%loL+c77YbSk7|C1DM zUHn)9;ooXxMQG(3jct=R!P5U!t8#bKcy&{;+>g^+$kN-J6)z?ZIF}THjluK1bkI=A z%&{uRuSz|5GB0^!qdKu7O}Npnu?oXO-s+p5X@Yu`wyiun?!iVTHI{3I7is((4lzrb zWEPskqU${po1z!j7|;H6;@gJXy-4jqMT5%lX;N9V9r4ez)^mJaPe{;DRx?(i+lm+j zb_JeL6#c|&ZLc$(7inUl9%gTgGc|CtsiaXWP(Kku zgl}F<%48!zzMTLYD=Iw;6O0M(2uJ+k6I7QO$0Fv5dM5%r z)iPdD*}^i-xQ)ATT16>P?lv&Bzf4ZWid)W%+r~JZx@}*+@c|%Z<r& zcPwwBKXS4D0%|$u%J!g=OE^m?wB5rs^=48cLQSonKa>FaBBXF#*1zI*kLRfyDXK%qaZwT0i%zl%k1i!ZemG6{}9|CJe$YD11tO4b0a@ zPs|L2IDKz?dVHjsYhQpDBf4QuCmqlxLf-R7b&HNms6TNVe=*~qf8&d6(2sVuv1!so zNooJZx^0|P%O@yqUu$Hg_UX8ZXI{3xy{ESR@Av7f*_J;qH+ym^C^xO3FIhSOKqPF-JAKe#+<~yxKGw;BIWjGCAS6I{ zX}d{y4b4DtjNq{VOBEph{%~J^|NFPy+JD|!@LiMmfuTDuu)p8L4aH`r9w2|t#odGk zsWCtrH8$!s9w&mj9ype_&?>n2QFKYcij~eLXIZQ))n(0vu+0ERf9Vb(I`6^}>mi%bwn|L``)U*AveqWXM zj7jmKt-U-UU3g~q3)-h-{Xg_F`g>B+K%yMDOpNJwzRb9R`y%10P}u8lsaC*+hoaA7 zQu_2lMB^#)j;>%K7s(WVgi)|FJYC2@ce`fpY3AlgrMc!UVp&SP=EQLlx5&3scVs+0 z_ZVHZHZLi*;3C553?}Na$QDwZE>CO1mP*PSR_tD1i&)UwfZTL!n(U|6KfV!FF7l18 zP(O-tjPDlbWVFikDdDYc8F_9_6iC{+^B;`gU_%b0tQ%aBLH}PMFO*xb~&o$W^1Yk`?qvGNx>v`Uf7LkBV>0iEn>5^1r%T95Xw@ z6zqBFF22C*yFuz^h2L`s3`X>c13=I|=mP8>P~p+zj@vcAnKOrf)m|(K%$I3tlWxw} z=_r?JDbysHFV)*k;@q|{Z&KWWr-Gu$WlQ}Pdwm-adn+@c@V;|{^BkppBFFU@$QQp# z7X!-=1FN$M?P5aa!csO1W)mesufBY(Nq_l=#zOh8yVb0K(BD11**C8Tx9>0he(#BC zc+YHxFNcijjwO|jaWeIl@`K!qTpN}F&Sl~C8^|~4jw1t}2blu5>y`&sgu}dG|BRYI zU;qqB zW9?*}H6vs^W2!K4N@`5;@LvvvU*#P7TdEzObVDRTTIkS|fF~#iD6Ku^ z$0GqwQ0VU4H8gjTbzTO{kXu3t*lm^B_k>?>ROdlHE}WE$+KBkissY2aGSjqfbkb^F z#VyVbW+%2fOVJ%y{F($b%>-3d4Md<49`m*GmHYzF#0E!YWd~Kwi)h=O2L*{XA|!rC z!gO=s5q?)%_W^L2qR{6#sRG9DZ0sA{xSjx)4ZEdvCE+An`ox4(%s~md2a6Co8yV}$ zayr~%xzJFdy!$1%&*QW+DNQI<8TA|9Ay- z*V5j?_^3g16-g`X>99rV9La-AY>53sr1CCG(k|8qhv5VyvFqnZix!H|3X#;M*weyD z4SsYR9%;id2tJ1zVRhwXGFjiclpr5FU{KcJRyIHciIPJVrNgBHC*_3S~ zh57QrnYa%xgJD)}la!4C8MU(jKu9okw9QYJD`}MU8s)#rvRyCn z3p-gjm=d;RZP7jpvhY(+N; zX@&LG9WNOJN$I4gj+^Ar`e~1nL=l}RgVtqsXlSxU6MP5cY~;5GlI`6f=d+!u!9T%5 zb)dG11H*lF80{C~nRkzDYijw;`>~=(%-%@BG^fQSFg((r*`~3EEdL42T4JL~V&u;Q zC`%h9k1`r;xxUmlF?oZ*7N@?-wb}MLhI1%i*G#%wLNK$KOgZVcC4&Dh;#NSut{Dc9 zSyEeF!{%4oFVuN&Zi-pBUKu{k*5 z@NR$Sw6=5~TA^I1-zH90Q|eCzN#JYVB09--+1ql*J-qb|Dj=c26c_*3{GJQ(IW4W(c zbO1vIlWBlU-?|9JLEO6gv8C$>6sIyAP$V-fQfAv;=^Iy{JNNTFzxIX3;zV8ErM#A= zR30k)ReOx3`=p@zZH0JpC=j`@QF&GrgzK37;7lnL8pE|A0S5eKFUlQtTq?9g7~JYR z*5KSMF={dBoubjHWZ$N)h*}ijM3gZ428%k`bjucZwM59@b{3QEtgf4~4#VboOywxZ zO+TzrcFnZH75nt&wt1gtB>E4gS6)%X{U1oU2#D78CsJPlf8P-$J3j)3s6gjFST3~o zyWFEBAFeKdgHG;Bf%2DysWvN--@#eO4KhSo6U%mjkhw+7yxMTF*1XM*IOo)&(*bRI zKC(H#!`N zoVmm*KZy5*viFS#JLujh=<-is!i(qVi08%N-AMRh=5YMTf#HQZ*s>mNMynZ8W4UU9 zmUA`SBI~Wgo}3WxD@w&Ie`m_HB5Al`Utq- z>htf+!t9!@HHC$EeDo(FQgM4YTHACXbV?bfxU%9)fW_k*uTObymYkJ-OEm3pNr?$U z${&}{hH7{iv1G^}>4Hn6uDv%o#Gm;v`TGmE>EYqNh~FOSfk#pg5SQ@5)@^9{1&IdB z+70Ek&KZ@k;dv#)F$cj}2Wa#R5O^+4O&(h`N^8KnGyvm*T~dG@eF|d%U6}=$5yX#Q z?KqVm<1>5cC_bo|H}C*eIj~1gnY8KH1pqgCHa^^=G>qfkOLxRUzEL4CrUKhn81 z7_gWXc5bv*QfutljW)G!f~&I&IIXM|(t!IWB_x^WO|MV}vJ1Vf5)ZyCeG)#Ha!?%> z&`l(^;Uw-tBw1xkI9Zu4uSzRy5=mRKTShw-@@CbeX0$IHq<`8pc)K@J~*svP}~dJWa$sMK?dqe|8gA%>1gA za<@>u>7qud3d=q1lL`HL>5~xv7;OtVv_D~vArXbnjrMT`F3mEio}mRM-Ibh590@B~ zg8a)kR|D%$=a>7Ix6pB(Q_99;rB5=H6&!mu4L;HAj>=N;vLmS}*U;f5AD0gL-h6>U zjlQ4^Y89r2T^#XH6DnsPIz3U}_#jDvGzayG5clY%v=NWP2ZoHHIC-VU9;>` zefBI2$etZJboXE^?cDBpTfnPLnygCeWRZq(0})z)KJc2^e3!YjoJpNb3xE)4wn9B) zacaXWT{z7QyCP8Tr*niJrEw8SrwY_gmZp0)sPv@lYtYotP*}?hfTXt%umJ-S8NraD zQQ#|I_PtD3ov85bVHLQ?ZRaBFbU-@`*Kp%(GeYxp#5pT42Z5moj1(m}84?#Ayu%&h zVEbU(tky9@ziquz`$Kb7WQy#jfuC^knQw|2g-@WiQJ}VEDfAs6E*(`uBd@8Wrgvv9 zfAXVk$4%@OF?=guJI{2{iu~6oF&6QY$X}}Iti!8PZ!zE)IjKb&Uu@&3{1t3^W+{uc zPwnp)J@Vavm>{&@zXl*}2lqu}LO!7*Tzltsn~RRD7t`khz2w4s&x2e6?|0#stGoBt zj&L^wxyb8z&_hnX)s;OVHI?z)i(uGb$5bBOVk}=AzYoV6;ybF;?J4<4TdY4Ma(+9)BozK= z#AmQI@?yAn;q1vVkhkDCfb@??~$CGncMJP8ZDQ)*MeyoO3E%3l6cotODg^TIFPvyz)eC8q6ec$K>TJ zoIb0IpPSb5!~@Pzf0SQx$;@6LUIuh`nHSZI*DuxeGj0HgPg8irP-XeD>9Q-Hq|$xs zr8`%@t-60x{Fkq{`%b8`eJSQ`fhA#TxLRsl9<$tfw%oqY=C1j|Bw8-lHKbw{C07qw z>a%wAwobQkiLorGB-~z>Z59Y!y{O%fFWnblD_a`yAoJnm>s{)1$wV-y$lAs5LP%AeAc|F~aK*%)A{gmjpjWSN|Ro~2a=QL{XoHCx72 zliAq*r5s%1SQHd|goTDW@ptCm&j7vxz}bkC|A$uoyGiU|o=}thlBJFM|6LQig-w#< z^-+e)jmO@b>u$$o^}IiXUf%b1|7!*ZQ7fDg7R^n~P|2NQqDbj>5g$l?tyc)4^W7nL*Kq8FDez+omz{2yY=|7XEQejw}!< zl2Uck9NY1NbczOBL6IMcPk=@mZIUX3oIfcEfB<6HNcnVzH|5+KG0_&vKJNnY$o9FB zKHm`|i4M|i_mJglDO3_d9S$i=QAVjUb)5ta^9)zfGD%k!9#NMhm97yb5hfKfXh0CB zO*K|!qGNeAGzZZvsWt;4;7qb&OpiHe&*1uw<`))Tu7HyMj>z&b_$vV1^YHQnkgTdC zl!wwIM6yK z#RPC)Wk-C9nj+*_p>52mvrs2oE2*LT^I2Q|-!AYUa(wL){>#o+?@N=HYiJ;AC(&z# zu!OUGTyD;n<%eL0k#h}X7|dk=QSB(kdBytsqtHIQORTtnwyS{mlV+#9-ed(^HQSgk zN2f7ujd3(n@b(~lde{XL;0ZPon(O{9A`EcPlqTF%g|~0j-L9Kp*Kx4lG`2-wlBZpa z{#3*-t2>)w?^r$ipw{AD3_9HKGk;$m&2w}Ka)|tWw$Ze`Zu7DXx^Hc54Y2FHZ>RWm z>F6f0V(Hf+{}0c`!U^<8#_`EV!8t9IiWcGPg@JVB{k5Hh$2DaSYK#oH7^~E=`8bYyRl( zOzl|#$ElvTu9^XLI^B1kQtraRSBORAnAG{$Rj^~?^@BZ7kFupEY}-)B^qGgcwrhFK3Y$NGHT#5#aTcx)8_$jPr>RoCmPDlQgm{)V*adC#EBtl;WF3`gc`GX!A!!3Wvty%8XuV^tWYt}7vC?BxN zz%KG=5K{YL8YS1x$RlU8su*p`1#POut*XUdhyp9x#zEc9`pI8eZJm5|9;Pn%TJsCLp>}tC z=fXtyAO1Aj)jXn6A)V@J>K^Ez$&q(Iy8hDF&7F;RjwjKC=C* zFLrkx&xpTgK18b}ULDy&hUvJsmard08 zhLTj3fS?h_>SUp%cpxA@Y&jipbAm$|s~1LV1ql{Ow33%%mge0zcZSb^Q`Nyof=LA5 z0zk)_#27~F1RmCd`iu+gvgE_RlWFi3cQ3`bjiT+M# z3dhr{UW%%wrfV7!w2~+QXaGthAF=XdO+tc62nUSR3h`QLyitV!-<#x!MUEKdh+ZA9 z)uqZc31TtOYP3m!SgKM~1;zY=j>@w4*)@Zd@*_mnHX8HI!jj*1Y`^E;J2QEOaq4;i zXaHQC4)ePgWeiW@5D>J&M71zMF9xa(0ki}dH(JNLQB>McmiK&B?T-BNqnx~>G|E0k z_I~EL;>%BDh>9_Qwg3&wV+?YFPD0RQbF5>G0w^2cEGXI_h_Q&U z`5{`MXZR?GI!6=&L=P>m1o4S+mf9KO;)3d8e|7zH)xz!E{G$|dKbZ>8%+cBG_sE?7 zC!YX-&fpitD0q0a1Wpt>Bisc+JXkUs0T>%NEEPbd#c0GSQc0RrlBAYT(aUcY)d(v~ zUn;BXEv+5M;|_8d{cHvR^az77NF)J3AEmH&<>Y>#)bHNDwjiL*kk@3{RbW9SI8}*G zRR(~aO*h4$xyj|ZRwuhnRb1hUIecGKugtLCx~w!o9N@eb*C*X}NnyjLnqX;~jH)*RJ9y>Svl2fU}8S44`KM zKwAs|&^SK^&^KBdxazW2B{l+mmR9@;qYwbPmrj{D0zDC+Q(clYuO!7K$+YVLpvhVl z0Q93g!AmOT$_@eYBiIG-5xU z0`xq>q#vizPtm!jXnCipc~_Z+jBUo%rgZvg77*lYK;)gw{MRb0Fo6EyQw*RtuU}bx z8K6%w0nJ%wa~NQL{1rg|z94e4CIar&XuN^FO8wPu{|cZFvp9WB)+mW_nnWF;kq7Bm zIMUsmk{7G$Jc3%1jt^#AqF;j#8lnTb=zt;0s{=+P1kLz>DcYxxaBC2cCeo*i3WNrv zg9fBAq^6LXb%IknAam%AjBH7=bg8gBibD{nFLqCL_Azk(HdCfDAW|(Eb z+<3Pl(juJFWOBX#=DyIkz?VbluW)4eEu7`~!6OZi-J98H#>Ow&fcQ1ZZKhatEy=E1 zcXH$_6n$my&P=}&an&VsYEwIOu}%@eB}w$F(>g3TzXoG^zYgB$c#k33Wyo+CQk@2Z z7ivit5!4|~U~g!!RfCvRh+Bkj)=h0S$EoXX^B9*NJpko7fuaK_s(`Y^##>x09HL3LDn#9NdRN*Cq69GD$KZ$q8^&bT2|33Xc zfd0oCp>jsE*=LB{$pFpFe^+NjPoKp6K!5kyxx4RK&&@l)WgcRXk8o&5IOFRG|M0>w z$PRnqz`Tg;!=Av){tz(_8x(9Q;nk%3$h2M}wU0f4O>JA5Z}+D9p_R`uqbC3+=J}GWp#p|`i_{o{b}N|WStO?Eqzl&o8-_6L|Dbp z3S*)Ge(9AbF9S3b-YkzbD)0t5-hfqOjJW{>#sDbEF2|;is|7JyNs>X8ZqTJ` z)QKt?Ts8ELF%DsZqMTS?s;{qquu8TvkADD64l;R&L_JPr_s?RlCUFJ;pw};-A}j?< zAYL!WnUshfB!z<~z|AsAL3oo4ZU#G$2H;f+A%~YAUKqpRTAsSjIb=%Nbx( z0ici2$j3tf4MtZOpf{-uJGQLmc$F#A$}}_9XG5=px5^T2vJ{Joppj0oTQW7G8&!E0 zZSlMLtRYg~mTR~>a;i5mE4FZocCyKP*_6HPf)BEpTZz=&WZGd02Mo5|%)Eot+_SfF zKf0B3nw)nahp~g4H`;~)G*elhX;)yeC;iG~w`!(EH_d7w06_Z;X)YB2G)Gn1qTp>V zsXj+9`IK37n#u?Pbj8Wl@3`i)Ow~veY<~yPsUC3{pszRUDO#08EPSj61LzYc5328J zohq-JYSE^8Oz|#Frdt6!;~SOH9%Yu(ex1z%04-3}y;%hSU2u%eIl*L%u~_HWtTS|G z$iYSFPM-ASwhg95%`;@YG=nTFXvJAonE^|ZU7h6A{vnq-)uGO?t21rtsaEw&o3`bH zcd0!=;FWZn0-LMq)L@PX-MXnx-4qw*Ma7^Prq4UaKHBzjdT8=eG= zyss`j!JwXDl1`CkpJC+frRTp{UiIU~b?BwP0B9oZ{|rE5t0AvWu=Awfj_XeW8v30> zEH0#@BfHBsqkMkLDE^Vw`8EseKJ=%mu zQ(}`j)~7`r@@Stn%8w~BfC=*y0Sao7Ml}*pAYNIdON!0J^(ycIH9n|G>M%nZ?^ol@ zBJ$iu^PA6WpL)1vUYGLTJDpEFH2=+4Up%k}s1Zo+#j#;Zw?EaZA^22@L4AxxlG7bD zz4(mjk%#N&&JjIwkM4!Xo8Nxr=>vOUXTZVNhWksqnx`0~8CFHILy_gz)9>u$FMY7? zp?mT>f`&&IcfJ1H%E7}QhA{M{Q$r;W-;Nk+W1ICcjcS}#lpw9r-hamh6#W`Sn;v@r zX(&hx$m49nC~Zx=k)LR8NO!A}JW9M*8S7I<`PCq}cAQt6;Kl?S(V_8m?7~6KASKeI z#J3sZ{i=9FL%OD6{<;-|=x@6}x;XITrQ;|nd17(2t}enQ#x?0<+{$Yk9l95vox6VR zoV9CO*R1fbeBJZri|!Ym4nFl*%cBoDZeO_R#ED}lde^44*IHH3XHEC&GA**!ci#+| zAHOuTHD**7-C&c0$&IK>r|ASUHNp&|B+)64f!l#iKsQCVny}!zGGY5GuMGb3>npuS zY8Um8x;>o59hG;_Q#^dX^O>dY*I#1YIR_g5h(=pvn+Nd%L))SP#uS$#N6%M^s~#z> zT$@|6jq$Gm^h6%M8vQ?j{wJD*y#H}c;@$taCc^R6Xc9ex{s#eih{`#U%^oA=o}e&( zpTa@!qj5Ge@>c;spE`;D{1y7mXCK{p&n8yE5jI>ext9$9O@S126vU$UhlGtAu`p+% zfRg*@wB0o7P8v1`1M^QuC0%6-#N3}lADT@+noT>BLpw~wRuT1+>A+hjNS6WnRCxHA z$%4~C0YPUR{05?;lVRrUKyYkD~V1f+=oJ@Pw1f1oyO+4L^cB}){QCBeRhX#cuhWg@MiicB5#Z-?k86qrErId*+a8#IZ5G;~ zp1F;F`c_8&Eavbm)~7eIzqmE`3;=XCD-6&_*1ktm*QdB-5q?EX0J>Y%3@ZS%G0tm_ z@f%VBpv@w-s=WC!K$m^WEIC7A_0nhn&?nZsv=b9%w0{rK z>fjfyC@BHd}b)^3|=ln9i30O)>h!AJ<8&$5^o zS==!ibBM@1#;V*V(GKp}EScxOPA^H(NoKUV;Aw|6w9pDe=R{Xn>J%pi&_K`AjLPdR z>IeGva_6_E>BUpsnsko_E^W%?<%W77=9GXY#jl0!8P3o$M6-mVs8?7-ln$(ulnjVjn37?jyYWP(NqMoH0^(p&=8<_$pH% z5KAV&CAuaC!HUI6>>R&dj!{$JL`!Tv{;}uglXy>t^>&fUG)+BBo*F?bm zrwX(0L`43ly7K2?{S`nTU~`W!xu=P&b2*GrGVK_ZF-XnZlwbaEy+ADGrCVx|CV6DD zAtq?VyA6qMV|u`x;MCx3iqwGVx;cRx7BpwIIpf?K07oEc5YXf}Oaolr@<8VecQsAz zb|eL~c!w<7CXRMUqTDjXEd?dD8gWipyhSqIt;^C&t})3oRrS+Vf*F!pqDI#9>dU~m zM^V)L!jlAL9hmM}Emne4i8o2Wgv-!KW>}O!kW=mQR7v#>a^Zrv-T;6;_}#a@zde1e zPL^Smf_V>bAN&LwMrcXWt+F&lWm;W9x!3x}fnC7RK%$P7FGuPyPx)~kIbK_PvsM1+ z=CvQ8==RYOhEh0H&b!&CB?c{(cXj7?1#YsbZVOnVWmQQoCC;b(1C%j40lQwD7tyhJG|(6(X$55q+6F`HzHsR?d(VG(3PlaiKA7%=9!ePDlP5GA!D^ji)lSo^ zrt0Nj&0_07G=g+R?MzYiP4!hXayjoD+;AQ+IBnLEhJgALFh^c)IC2s%V( z0XXO6P2) z<*nCS(4$AuuRcS+`ux*{_w8gAAImKopirplwQl_QIlk{_G%c$$XrkWTsP-5L#IXJw&u!g)PyrN#M6|5I7XxsKl8iG1mI& znsTwQ^xmq{9h~A}GG{*x3r2V}o3xWid$XYO=l%PazW+*89V1OIN;Jx2OmggxPHO|= z5&}Rcx)q5{#z~ zi}*|tRuf`0AZ{ySQBBcF8kCaf>cx9Ys*kXl2g$QAKklTQV|4mNfZnLmZ{NC_<5wlg zDpRbXKNjqv;@PDHw-!wVY7C%{ak!_soR2u1(?rTSCg(Ua{|Kx6XjA9m!`taD z`E-+Hs#6DDc$`%=t<{OQ$;0#<9$iattCL(9Ku@=*XK1DDX74L!j#u2-lc5()^{BEM z4e@qqrc0aU)Iyr(R>%9*2|o1{2R5T4(`T6CR1i%fy`tgO%KAQT1)wJ|C}8nfO5Pb- z?iihOn!y@nVhnwpK^>t{kKB6ez^v@S+lcVuU!WD9C+2;`D8_bUGGWh2Ddr20!T6ID z6YVNBMx%YgV0=iVoy*BR%BpxPzxwO9mZRT(fqwQOx?#hridwMJ;fXrQ$;EtElc->U z{Hu!yuZ*-3&L96cQ2@SJ7)1tWoR7yLcsys4CjER|;cv$QI@}9Dzq6m6cZ88QMr57O zW}GHr06jp<`yjvkeu03mtWB`iA&nBGNf#3^5nQH32R0iXUdbp8zvSurUi|fQ;@zDD zyCS{Olom81YF<{mJt3fru!^Hyilk-}qOYIYW_|dx6HCqy5X|DKK_lR7TC)*blkJmZ zbCeC$aV@%7FEoa{+q%6;X7RK(QpXg}c(HNl z7DJ>zE?Z=ZSs($#MR23iIXxJgvhdGmu_9$cAN`gz4 z0Ij#B;bwWAqO0X%XfDURO{>BDi?fOGW?`~|ccZ#t_t&4mNuSvIKFcV-YuOt+E`E3c zMbD$?k*~kn`}ODdZdy0nW5R3dlNz;1P=WZx$RaD!3ayg>Y177dRd|O2=ayqef=3FM z85vN<1eDP>QM{qyMz{9Ov&Vq)+a7&bWV0VWcOD>Kwq#+FK@jg%MmMTs8r9J@DOd<8 zRz-$e2k4I(7;ZViBuLZL-l~_BILrsX{bDcreRe>X<&aJR(^}1AH(U39`x#u$;@4i` z``k;`uiA-zvj;`@qQ4HKKd&9^e`NjpHz~z9Np-wS5#6Fkd`d8e0nit(dH?utXveEB zCCh7K{gS9gd6c$xIuN{0lBjA(^cf->jfhu=w78HaH{!7%K@+rQH!5oy8Y&;Is$G*; zv7KE2lsHb6n1CCZ?0*%YcQDu>*w{u3#Sr{G=YIyELF0TpNfR$MoD<$3K8A^T(jfFi zqwJzg zLsgZmY(B4SGq-qv%*7&lQprbW6L)4)!vOu%+E=6Nndt^`f*G4b66w(*&`AX35msT8 zkssxhV@@ixqC~SMRj*8f!+P~GZD!2dkzW>L6-+VI%@UPX2}(-ntcg;O;bo(rmFkUA}b?D;^iUf;>U{%IChKiaCoz|z4!jbFTJvKs;m;5 z5Momz4t=ae0|$vS%W)QIv`rjk7ehl22hR*x(tW0kpe@O1h*e7C6w)-kKG~p+HYvbJ zfLu~*3!5~+B^4dUOh`!hs|qjQbYGi z@F=HP^_f;f^xpw=1pxHciZDPI03(J0`uMsP_JwU(207koPWSjy9rje0CeJn$$864r6vlZLcYw;-$t*qGHSdGH8)ms=Q_Zp|PD8R?hqo!GwmIYM z@??)5l;91?r%mx-e0+^feVta8-{M<#{*-9RqAXnl2GGs=M6VJXfp%em-&6fsLZdb@ zh&jKT;WT3Yp*^abtrCew_*^yrKwjkujN2I4B0p;07(MqigEJOJVFqoKPQQ?!KgMK_ zF}bHGxu+-vW7HBbAV+3#u{qE{##gOT8Uv1YmFX!OeRx*($Sm^7ocvyP&9XAl&+lzS zzxfLDWVil<)xQJu2`=WzymV3grBg6gO5Uyq{I&pwDWl-<(pM+7B^f;S~#O7rOvSry}f z`AAJJBB@CA>InJ=<9FkA{79Sd@>zTe#4QJ=$GK&REs7{j*^O#`sZ~Gv!;e75 zkM-_NP}e8fqzOjhwK_4|W!(Jn*azS<%xI7Bg_p+jk*|*98MZ*6XA@4sdoAOM|K=X z(KnACEH@eC9`DJozxfz&|Gq`Z+IlPitrrfZ0MJhg=o6gS1aZufoLhu=L`kjc6q_(b zTIqT6q0=b()X4rsZFQPkoNVQ1YHRt6+D@atj{W?@#=(Id=f;LmblXo~t^MiCJ?PJH zIw_5rKihc^nb1@Rs^BCSYQi(l(K0^hbiw=`2y74MTKb?awz*rt1RY1)P) zy$Ea}Y&yGNi!|GiMi=5XBLO1-^bLw?44^CP0HC+A^2bT?vO)~~UjS%G!}L6nq5pCb z;Z7=h|R#8i!&l@NxJ<8z@aIlr~!z|2Q z>j)DBN5EDP!r6PN?B7=qVqs9=c?jQy!_>*?K{5k&o0MW9;%PtI9iSFvWWHh*KS7Q>8f7DSAyi@r8tKs z(xbyj4w_(>EZ(e2HmdPvE&MRTDM_*La#arv9XaOtTBuTV{ zhQI-!T~Z{d04R(!)W>;L@jiV5=Ayxf1qlxbk#-rUirP1 z<*$^Mzn@pMlbL&%%!Eo9%;qj5(KkPG_liC5USsCR7zHVSJ9-85Z3#{t&aI60$fMoT z7$?x790a5Y)&kxFHiH^*YcVHKcJXZro{P_Ww!Cs@ZW#bUADMELf&ny;^kFjl9WrO% zlKWnM^=Sa;XtNlxs}QFFXVu~@YP>}OT#nIa=&(4O0#VljfPy^`?basv%t<~Q&Z0+@ z4Tw{P_>@RM7U>d9SM%~jJX^i+u}Z;qZvG&dJV>HK2Y+-n=7rx~SXug9Vb$Tn z>f?n4$GGqqPX_26#N732{kCmu*gwrZv5FtDikF%tOAVqY)pf7%%Xj7#_A$8o zS)8pL&PpbCUsvbOt*dX-*Ws*iXSI=j1>UX7u;|jQ`Y4Yv0`9w0b&a`!p#p#wUJ1}6 zYnNLVw5IB%F)mYz$D8D^CArkeK3S4qlHie~I24QsMm_#;MMl$7Y%X%_{bkKSf9{2AF}fI zXVW*a%LW$T|Kj>LXF9}LR(Y1okmfSRJJgx24xCew>NBRoZS@-y14f|XRG)sTTYJ4- zdxKh9((GUN@rUN64^7hvv6YLh+T=#{6rXXL*PIbBCN~-JEylzq<8+UChTEFtHz)Yi z(;bp(O~WHK^*iByF$+!;S)xVhKW6YwH%={}g$}0F%g}%+b%JeuZ_he!5Xi?QLr+Pb^_qQVcr*FOo4Ip~% z47z^vn)2Gc?4tepgBHbIJ0@so_w7)9M}oj&^Q9W%YAB#j8EDzq(oWe19u z-hX?nvOdlt#d*OHR|AfOaNOSERE_S`<6HGHc1gNh4GnC%x;9l*g0JG-Vi5UWd+IR2<%fd_P6^^@Kzt(1 zJt)X4i*U-oCIqfUT=h|Q-b__(LyPb1&%b_%q8;zO9V@L)bEybg{xuq5RY#!z*GoXj zThPy+Jh{JN$$WOeex10kqR|_8^3gYr90a63iK5Sr9KOM(OxE$QX)z(HYAoQCrY1sL zi^wYDwEQS_ZKh9`{D11;?)(gXW1Er)Lm+ z3u8J( zG}=ZgV-tn3nT%-*i3QqBW^E)f)@L(TXVc!DOxy=#QySgNB}FN0HE#4D4R0XrAgK_q)4l& zUgKf(C*LbiW=SfpF-cQ(qC}e_&aI2^fbp%zmXN#U$!2xBK}WC{Fue0f6YTY5O@*hS z{C#fe(VRTYbfi)SW)XMJqP$j6@xy`rPpy9~rh%Pql_g)}xB_%40l$hSDgIQx1x8C=)DD z6*}zCIB1vM((APK20``X6;<2w%KE9Cqa;dy2%!6@T@$>)iD-H zghLzQGR9dA1gi!*A*{^5A2!aeoZe(j#jY+i*Tt)k^ctg_#+ZN&J6EF?TR`Iz63n%? zsB3Ga!gd~SU14D#nFPoV-T9Gh_DTw;@98I3ZCWu+UWGS_2v&8h11KLVSphc-ZSTu^$}Wv^E3ixO$YBGqDUv<*B(rR~p`==!_fU1-9;@|-_dn>-8^!V(si&b-O|LR= zgib+)uDZ%tU2Ccq8>^MNDx<2nhoApe9vgavJ#6+S4s#isv#Y0b>-N>R>G%Y*7;{tL zRf1KMX3?fv3=tj^R0|jbGffi!no<@9=w32yO;y>^)oi$G&uTOzdgZY#nh3up z&EuNsbWS%b>NLXFc(q6K3WsyqL*$%`RQl)4-1E#lcw#q~@Xo&U@*S@|o?@*}w<&;- zGQE~Wmo}}{66?AQ&_K`eL6APhj{)?JHtkJHaap5h>*pV}y!PBwb$y0Yl-#UHX;Ei+ zvFP8a0YiL~A*R)UZ!%5wSf;rxgn%h7piOm4^L6~Yc(riSW9;Hl66*vFV3a$`#O80D zp|j4>m}jW~(2O&z+~dsr-M3M;WwSSu^H!4!*Rg9>Q%gUf=58gkuhe!b_fIuxw|}h7 zRQ5U!XLC{62h56PoZ4qh`lr0H9BDa*weX!&DMBWBdPd zfIh;??PuhkA+gUB=_hH}--(0t+^zX#kJZ&HMZ7G14dQBu@~L7xx>zT?{%S;2$-Sd{ z1Ntj%PBUIsm!_AJyMj-iJNDp-zNseV467!~AdeH(EIoVd?e9JQvvj5J})4JU$EKEbsBnP}KU=1GD7~Gb@XWErx;bzWfA5 z4R_DaQ1ap(!U&%X3CaZh4Sm_6W-VjjL7 zO2lhH?9ei66CAP|bO4FDZR=P(?H^#>V; z7Dj5AJ_zcn4IeItCl( zRzj^}%LJv>DSBb7SrX||Mh8vUaJ5C9(iKE}P{>uT#0Q|Sign4be|v+b%yws1yFK2oLY(!8 zqc+i8mt^E2s^WN6@y*f#X-(b>c|}KaE62EnC#m#)8vRcJddH5n+$Jp+2gj+zM$kRV zXqN(>he($k$RN$*NHfT8G*$6bMfcSd?`mrLd3aQAHeM?$o9?cTRc0p{m{YAaDf*fu zZAGfCJY8FSjWUlaV{7V|&vBXCY0UjB_I4Iy8Jo3ZPWzS}Yi`l=lMHga+W-I!)dkPb z?*MHeIMvg~0lHi;5uo3zF6&$KmTF!QuM;8;Ko&=|)fnrL<2<6cfH=-8PIPFdTC}(7 z6!l`k{k;0;)T$Hb2E_NYWhxu8945Te812-i2X%OlG_pwzc1ViTHPvpPVwBaW1us?C z9Of1tE64?azCfaWMrEI4~*!);CFV&$=bzlKmlH9tKW)t>rvR9w% zF~<9haREILaFSP>FrS?4i;#uf@6xsA9d zhraq&;`WNV-7>>_LiHN8<87g4gG38W&6V0JRsX5BNK{v^jWXq1V!?Y_^%}8uh0^|_ zv+c~*edssepidqALp*ZCn5JvA(@1Dt~NAvbb)h zSslwOTd;fcix*D=bEjG`_l^K?1ZW?0ya=Z($|}hWn)L6!(!OTd{cpc{SQ4XB z-@f}80Q#FH#DD$#Ae_Sa^rH#7 z`WS~G!d*{r3ZiOQ&d2Ws5QobNJpRZG0T0l5npKyik)>Ich@v!ETl4gxo#8=f-SdxO zUPn!}h_&ImM$6uBzWNG9zx)*iTjDT!X~WMSzi{eE_v+W=i|1xr5oS4H$2RP&gAXdLkT$H8Cf=Juzn-g0E7*#D5CV1PcUi6 zIjmk5_9`tet+=ppwSQ4loVE;1cEpc)C&jz;c$Y5Lqlxh<;ym(LuOiZKi1eG{yv8iQ zdAe0GQ_asdN|uieJiKkqt=fj`^`cCJIL)n(b?bq35HP->@d~IiEc$6ibE4fE1$Vk6-6~VFs;Axhc$?>CxBWGh>Ydt#l?4@>bIT5} zi~Hz#gA~pni9SrGjgXmrH_>N!d|#i zd6Z8Pk}A%vNw(|b9cCn8MVgFAqiTv($mdrsuBh6aUo}Y08_1>(5&@veK%W56%c;2s z9=QM2*Pg#tSsQ0pM!F5rUK{*8!C{0`;9XFeDmX0EYO+H$%cf%o>{(U?qU9$vSrb|v z5jIV%!x-x|K~*D7TBJ#Vc%=zW(e)NlgQW8H^88SAjLV_Cmod19pL=T6)_13=YVda0 zO@{-!C7?$FYM@)ZTY;D)h*=t8;Ny(7Q-V_FTw8UQqpDHQU*M6?cN-h^ozl8xxurv_ zvJbhXXW85^Kp&^khjac8pm*+E$7#|gX?V$Q6*hwIQ(-m$JP$58-lNTMS+g|q9CICC zQM|aaWJgEOSEJ`jtmb$lAK#%sd}X+{dR#z``Ka<~Lj!V>BuCw?rgDwE?Df*J{@hY{ zr}opCD_Iyof3On(x*=7sOmLZ^yjXRmTlFb6W2DE5_>A!`%?z`Up{)7?ph-oia@dyv zdi^r>qGl{ErrQ|nbH_L>*kY-GG&UfDr!K*%$+Bo}*2#Hd{(ZIePpg$9=lVr=w`M4W z8FnMiX^L`a(gIqXOB~UtLOkjur*n$Uk!6rpD+MoBRUhIM952ipp^`o((LNr9H9q{0%1 zb@wM19@@NmilPbtI@Z^KZgz+p==Z;&zoO`OKcE|StSM_az$_gmu}`ye0iBOi z0H7%&G+^jIxOrS*EWT3XJB(v)IDh=(B>ndSG@aSc${mKvr!dY?slzPl0Gke-!mj+X z=PP)2UgfQ_N`kqb-~fJ-BMv!YlcboXO9uDf-Mb4fs+wU^6fNkmz5aa5>USRQ-Ft&x zfpF>KC3n5|*@cF?7rr(+!oPbVJef#&J}|W5#iyS=dpx_*m0?n(Ky#twr8k-oWephN z@R2dUZN>MWA4gFD!LL#D;x9h~S#JCAjC#rKnR+K^M{{b*t0!D$%_uk5pM%x;U#+&(;bS` zh6>T`bB_G_1Dtoou|cv*JhQS`yJ+s(6T_>H9$9%};DJLsA3NE1_o3}Y3)_hvbC#qI zUztCD-HH(uePe8p;V}{_xLLxo=u&$1?X7!$`4XGLF}FRoii=2#5p!*%R~GA#5^Pd} zNtEVNMVkciPD!du5+g2>Ke!O+x$paLDMl?pSxbORGgsps{6t}~>xugYzW)3S`fK2s zr?MpVU@Bmq_+|Cibb2$JH8^>R?a})#h9*NlzJF(=x)!lFAWqQ@J)Wlz?LBbuql2f$ zPW|}(Ao|;I2(qC*2Y&eKf%PkL+nq_;`dE`V%A&+s^pOT^VSTbybiJe`4AAf9mu_Wo zffB3gtE(Vu@oKmQW_{wwtBkI)~# zMt}MS(~sYvKYaJQE@6{BK-k8Q=ubbQKmUmS@)M??L;C5e)1NP)zkG{+^C`CS{hQCw z&p-a?$tRwnGv8WTve~t*TyGPwg1)#yeDCGsO5E1eYbzX#$oa zxS=vJKTUAhOq=@A57xcgci8jtvq@?JqO4E%+p;|N47)YWfvsta0dpmw22M?M%VyZc zHPWhADhl_~i2JDIBW(75GUsgu_t5iCt=#tRR1FXBkiqfc)?mZrK@H|I)~m#I*dzV= z6swHgV(WbI(TxBaLFK-?J{aAyZTPJfgUjC?TE6_y(@S^wng>cnW7M+aRBj&;vjP4T zpm*$A$8FXnYimR1m$D7re9&@5YgZE=MdK{p`?#adh`Zk%k)MnZ9$%SWjZZ`d;g(3mG+0BCspkbnVc(Ibu0>vUEAn#y-8>xS~H0H9CMI49}c zF*@fQjRo`^2511vT{)DEtlV{V0`&d$=x1M`AAOAe@Dutiv^>zle24ycmFXq)ryu?W z{roNZ>!;|?pQ2xXiGKSN`t^_KZ|L_w|Au}G0KE$U`Vgb^7?FL3#W}^GoS@8x6rQw+ z%sQ?x7GJ6VRRE231k7AGekhDN=2fYWg8}s3ypmVSs(qE^BvE;aj+bb~)+J+ck!)h5 zzUY~ABOs)zAeL8hlU0jk-{^Sx+2=-%UayjH1MW9Yj@X`fl;g6mIyc6@ecm*!45`S^ z(n{+dy64T$J}g++m81|Ps)c~9&^1FD;D%V-;YuLx&h@ zkm@37PtO-{!%=j@(Se!#>SQ>AQ<`8BMAjC}Q1EBeS5bA!_s^XI(0t|Ck@(8oG-3I* zdg1j(adJcPbtXxcR+Om`;`wFMlnpoNBq=q;vc(GlOgDXXQF_n3wA$h+lIm$HUQ7+A zU{T}NpP`dOjSIRm#FYt#x=1TO!Xb(_2om(d1T{a?Bumfubfb31n=LYw9kBbHi%PepHZmb&dVHVZ%KuDiR_`0SFWx2`$)?Wf_Ie{9EklGlXP zml2GLc%vppi%qCYHVXlu>-mNES6432FWSn^9UpAHEP%I^SHv9 z2$uWz=p5D+0L}g#pfP&>cK{mb`5yo@d=*CIaY~-3@t==>8^+u#btMW<%>S#L@b<)< zNxb_{^;ZD>R~jeXNxBk_|4o1%XW}p-53=&0Z3-juM1{Wv(hct%&V=K@DaHYMANjup zpa-bTaX~W*?ddRs14uf;%rj zIr_tw=nr3`m%c09*UGw7u+u#GQ2 z!P2ij`}l9qzfxGRp2gjVaX;rcl|4pgo+r{iBva4P>0`OMyK~5g3o3RSEf)^&tZLNZ zy$wjCEGnqO`3!`R_l7v12ImI~QN{!`(OwfSV2^fdp<$h3mr$*W3Ss@S_ugIBw~J_3 zOf!q1w@C6EV?27qp^XdzZW@4n(;UW3n>Ep8kM>)!HR(ZlhO1Vnt9z%Yx}Q|MpUyeR zU<{I|dnojm3roK{wD+k^Z{uXeS#C|T$B2a<2n+AOar*`wX&XD3jJp$pe7i_uvCBzxlUm+PYY$D#~X9fR1-# zKpgKe#QCrb!TB}u9^H*5rOo9&**~!N%&6ebIat4F)c`4`S4Z>TcJhe{# zu+z0h?|z@Jc~7X`X0YxyT6a|ohloYzvkT8L3Qw`Y-e4Xkl7<=Bq?8c~b%4y;H#>K; z!nkYKMs~9)SzC{F+YS{R92=ewC?h@U1iuN&oT-uI+N5%6^<4#}JK7eVKX#_jx(@8*__k#f&wQ%8u@O%&F?uI}}_)?aHB zCmFC2=rBM7K_)p&V0}Sl;yv2wHW5Qr(V-S@3jy>6YzhYk&}*tHj;>jzTG$d}79w7- z0PPVjW3)>HhF`2-7U{)io+LUI*O-Nsvf6ujwa+P)qvr-C_jIOd#Hns;tj7}J(IvJ( z9m-;wG!b5Ps@pluX`5z})vEa~@oEm|=MQn|rx~O#>CDe^7#C=T2lFa68?7VT)^l3* z0MLnkU94F##cfWqtHWkeqD!0P3GXlK3&wKi7>%=VFEL zK^Q}a02*WH%N+r90eP4+Q#uwzW{6D&hK9l%;*`8zQthv(Bnm4M^>xrxMmS|a&rzm^ zbc5vW&(1H{wmyzmdc8q0Qzecr&TW4C)i+KbpHf%-@b)cp-g+aR!)EGr+duo1Kes!M zSAL7v9$Qyc_u##2fBoTRj}56Qoo3f3>Sc(8mts_88dX^u`Hgz*bfGY%rV;~CReg?D z-t)}U`$k58MA08m^yzn25(WIMy7F|D;JQXL-YAUJ)u*|&NEK&_zCN>|q||E(+;?~H z*w`f$W8X)YEx)dwH&t4nt`#L2#qkDloVFoeDNK~}O|L9Hj-vZMykKtazNNI1Xw)Mb z0Ty=KDMWlqysWO!<2rEe;^!!Our|9@`s+xFxeG;&*oR_MoPZd^^T&DP24K4D@fD`k`(o6>V^!h@J6dLrjTiW z;2y9jj$XJ}2xW#sDxeF!cP_UIlX+QC1>WJ^*yApgg6zbe32+v#v6UUzRDUAjxXGA6`6g z`owoAI{Mp>wkID-kkrMgrFf${LMw~1C;*^u5EnPp6+c)}1x?>}P99KVcm(#cfE$@? zKvO{HaQgSce9%o+h?OTY^mq=ki<-NGmJ8`0x*W&*ax9hK1t-JONxVC*zboS3D@?ke zaWV!1p0v-n#`l?|FgIVRFy{XEX&i#DQWN3zzeD4sJ4s>Q{r45dT)@`w#&|w$EUp;*PnY$LAdtmX{LyN~Ayzg=v(&>lpJM+*INKZX@@5u)j zAA8`QuueR1&$;`TTv+laI=6W7mAY`xU0*G}W+_cxF{g-k`0mGh&koIMQsG=e#3PMu zwc>*2tVVZ|%Zm3|0O{gDJ{u?|V2W(iM>i?rg8Tw~)!*`}`^go(wETT!%05c=mR!b5 zrA1%w-Tv$cE8-QkNp1r^V2*7xLnoZtEf1_DHvcC z4zlvGzXC!os|Fd&UOJ_hLh2^>ItD2cP2#M$xCl4qB{kYNEN(ts5a8*nCgY)KwdY`_@ZsE=&I zYBkNRXQ^a!>V?ngOnuuoJ-FhPDFzV`XHt_r&TCHaSQ5M@yx#~n0+i&{r@M??mH3{z zk_`o{LnQjKY}P<_-bxbp@M90XzwOHzQm~E(0Ya8w; z<8AC*cxLoC+pSOVD6qdEdQ3>G5o{-@ghU?}#5khS2A6iDL#CA1zLTGSj0!lFGe9Ek zp3NO-U9@KJ_DrWd&Mt=w563Ph_|5TN3;aCZYXYkv!zJeGd0oneEv2<*=@l30#iJw+ z0Q9=b%2V&ZZ(Gz&aEOr>O-!pT#%G3yFxhPZ(;}|bhz*A~He?0)rH0D;YO3E*>&~7Y z(kxk!qLaY!aZOI7(HPO8jc8Xy2V@C8ZJNt8&2GHeDsNENK3i3Iu$Xl$FZ<)XoQpZP zeM`?fH;c387W&D*J->0s>T7j11eYjmZe`f?>2^IBV=+N}n#-8!G{UWf+kw4PUiB0w zwrs0GDsYR%M^>yFK6;Smkszj$_&Hj{Crb8c;k^SZ4h)ZoCVgb1F*<084%nbbI3Di~pvjM9t7u=v~5lQdFa_UvtR`g^nzeoFr`tDqO_JJiI-oNG@bpSr%oOnKMcwog*@jGK$|S<-01YuNPJz`dY*#LR``)qaaDmPZd->KivEH z;XP?}71P9ZQyX~KNCnPkpIEwox8t#gM^N;>_f~a0^UU*GxAlJc_41)1{o{`zrNwdl zTKCF#9y@(J&7cCq5~mj9bkbOz6t9&MG}1)1G({;*Q(zkrV6v*}lT_l^!n_85^T{v4 zHbMu#_@=hKg-~6bpyp$q^7KMPFOJg7aC%viSwfIj&y)$0*sOY+tN-E`z`jF2{#+FB zrVDvs6=&&WGj)o@%CZ?e-irtJpGDEvd-vD+y;+3?*Vfn0P>OKU+9-WPj71Wq;b$4- zsegThNAi{YLDb`GA;aMWo5Fsbf&5{Lr^BachNBREoyxBv1BnXT_a4^iV0d_ zl35n3=0gdmndH-y!kgiW3i6d*-RDE2xhF6EuzTzbKzaYCpALQc+1X1!jD7Rn#Y;bZ z^8HU|zWVkfELit1(tGbfiaAq_GMt2$VU%a+#A&kn6kb`5R5<+QmtaWT^UUAU_`Fz! zFvcLmS>#waRg(zLm@KP(@2ignQFP@O=PDL;L{;a35puIrlO?UbMIo44oM*r14k*SM z6g55mV4Scr%_@&j)x~IpP|q1E=`||FbsE(Sm3)d^FjHPVrIhjH%P;J6yZ>=bgyxAFC*6NjfX?HZ z$k5?aj05xm(tjAB!!72-_B5fGY@mv2e{k~IoW#)3l3CNY|hVJ z$6;+PE!t60zM-gKLvbN!eM#~9lFRAZlH#?cSo(fR!Rq3|RfV}L3iDPJav@z+n7@L_ zT*+WxsrT5qS85%TwV6U*#bCa`lYO(j_tIzIp+Eh4{@LeN=5h~G$b+QpLv%(TgL|4> zaFLk*F_C?N%s9hl@6RC}V3(e}{qEN`y`AXhBkdZ1k3^p#-J>G}0ADnOpaxQ;)d2XI z>G5VbodC5+qcFKc$X1p-!m2#gdH?9gqqFB45Wf&j zGyEjF1&C7xXaWEo=XT*-PJAOAS;0}&bVzHq6_%W)FoQP8z`~mJ zQL_6;vj<4TVKU_eg?55OKSJfM=9C?|Z^_DyZ{23$O>PyxR=)9MNKnZnnfWLHRYfCOIL%uQJy!D-xV0R-eeu8^|F8 zK=(2!{Ui=R?Y2jjJoWDLDK-IM5MXy~(4OeE0z1Ywnj)JGfZzaySuR77Li#`jZ-q#9 zV%_Q|-gXH?Etq})$Q1pv?|DO@1Y-aN)ZM$SnJ`Ajx_^KK9y|9lCnPW#fuu4b*+V+F_ zp+lN66YDysLZPU8yC4s93qzmXMyS1%(jrK2;T0RpmsD52r80bYYDl+aL6TmE4_IScTu6%%>Cz&dvY4Pe$*WFxo2S|J zH(R9*YTnYCf&(RtLC%dAIk#NMzWEzE=i==A4U~f6cV1hzYt3~=cwA-hY~zB4EQb*k z(`brrHm7(^sUGZZ!bh+i68)MCuRO=xAQsm)2?U2uX(7mZ_>$%{y4a`}8*MXGGe08hwae)X%Os&L}%Y z%RfaYkJ7S7NVCCaUR^Cjx9&wReTRPW$(OG!d#8f8sl0M$Y4OgI(yK|gmlkg+0To`E zeo$EOL1EscbW=gW_M-9~g_w30mhLVn-BVD!Kd<;eUg24GYf#jCP>l&uW`BS9zt*c&t@zhXaed&!RB~rvlYp8Br`P#FChwBz~J$-2J{hQY< z-M!=Of!>oS`r@I3)pO?DWHREatCsX1dE(5;7^xsy(GaZ>W3f?nk{GQdRx63qNC2bb z)zWCa4D&i~l4iKf=^_DHu6%0sI)F=%==OOD!pay`Ey1ZobfO58JW?k|)S_sI3{lsl z>BULBa-v-J*xL1QUXbeH`=Togv-A>NZE0+AuKLb9R`m^x{q)=2FTNlQxThE8r5EO2 zBd$+tsEHR;!fwgRhBS>Zy0&DBs)4t#^LS`B@IyP-&NSAgsVmYH6&cd-$`q|QK_`vVO9)mhz-^SCkHxYTRRN4<@+uX#FBtmm*9)OFj-$W* z3K#MTihhZr-=OGMzo3^;^gHI}AuZ752|?YEtZ~c#}LvDTox+#faNhbvE0wW>0%AdmP4=fU zwo+M;xrM^qOr~ul(KZmt>vJgUb4Y86l(i)41_o#SpXogk?Ml5*r0iy~)-c&G@nk>m z8NwQvAAdcw^yybfSe(LffIdYjxIoIkNMe6TVT{rkP~aV$lCNKU<;hhq;_Y=vhZgBF zCHakMK7D*p4+In6sD%`1Ge$LA(tW-Zw==rcgtUkVoegw-`Mvoy2U_nqedz+_J|E)e zBV8I~z6)tICi!fsZflay5f^ksHDkgx+Hj4Q*k)sNt16~dL^szyT+G`?t2#_CJV>De zKyS#W13-VXZ^v_+R>iC86FdN{w&*tC33W_Ro6uw>cs+4mH=)Uu=}>ajyiOSp0D6p? zHwmDJLU92@0G$(_ig1F$I6-0_pmA0eRgJy&$}4MMo?$G{^oVgjz$`n`=8g?uifZ>p zHkzio^~Fo(xc4keZdN5>@h{9krID@nm=&wi1=q8U-s*e-%2ZT@B#)_`_?r zubO76iwY=!*kYRPgn)zK#|Ra}{T54tPkXajRxcOaRZ+J(x8f)%|HN(7V|3aubosfo z(;WK8H1;P{&N*uCDO%nrnLC(68{{yKQgcp|iDz=C!#A<_h>g4VY-4tKl8x#qK6jSW zn(i~fO^I&P0j#G4y+}Zt)F{g~)oQiEyGrXebu2t{_9Qo;&G0E;pNJj@05q=Ip4e!E zCklWVX|;hVb)8EoSJu5#m>&k{qZCpYpjYqTljc$3+;Vv8@XfloWg-*+3>A4q+N}) zG)!%(uQXIWSXKSDLLUO?dC3N8e87fpabvUgyLCvHJf=|ru$$_&OmUiSuuJ(`-cz-O z`$`xC>>EDh+bF&LJbE}5lefz1kuU=;nB>5DW!Bv~mqE2qo!%LUqH^MW9wCUkZ z!5)|vTSSW^t{I+ub5cNmjYmc|*EFhY_m z&T%?vl)^l~E`F(8V5_OUUQ&yg8Ze*D4q2K;JY6A-6PMRKeb+|xSN1)vv6>o0m_Oa8 zse5j5&%uou79n0zft1k*f>NU2xOC)@;?euk1+^Ise2UNg-uGX-SG^qt2Nc&NSe21_ zQCQJ>F@PWdDBd8AF-Z}t4AC`!K{#C|x~8%+c>n#QzhJ=#<@YX1Rn|tUs-jH-L@$W5 zDgeF_bv@z~Am%E>Tpz2hB?!uOk3X;%{b>+ImCrqbl(905k|_pB!@Y~vT{s8u`rd&< z-i7m}KDQ+3wcT@vZ|P&6zb&=DxYYEwC#Gv8Qx$@wy7Jj(RYq0ei$`_=ah^uerni>f zXsVAWA`&VYw;F_V*Ss-=qHui2D@$*3XrqM{30V0>(Pk_}7v{OyA&d?x5j`))C_qGI z$*S7ghZgZ4SX6mecg^A+;r$B)cX!F|>XFQC4L)}NzRx~9f&S3>!jtOz7BnoGKi#2- z)bL^*5ThuA zo;ZF80D3q2o$dLDZq^CXdHGotxfOcNJ6pE_wGaLFqx+dhrpoK$C6zP%2F!Q0u|CQ! zj&VvuQMWLU`|(~SVkwPM=2lsi$3Hv+SpWW4=MgA|SsZKAMH`ec78yZTH&vY1AS`*N ziuVDlcsu&;+qU{ExPz79i$QMrpQ)na#H~BbwqbqkTwYb zG}~N#Z*kpbPxtvtpOie-fw*``k1k??8)?EO<0c0k2|+u)(HY(1jBIrRLd7)!gPLMm zwYWAJ-NIj7TC&^|ugrjeN6ExNGI@kTKaNF^X6&PK-zlm3 zY~$J`Z$6r)FG=%buJMpgE7I+YY4PD&{7Abes>wXVW8^=2=c1u489`Nw*O2J90F_3z zJ7NI)TCK5d#<&(WA<$52=Krl+&`;-$Pzr`f)Lu&VVJdMVK&N2ip!(<*E56y4?6)Te z;BqWjHMSW53bVYXVwL>C%Gx)0{Jyu}c;vOGueHgb!sEN#NWg?|vc@-BFg2MVh2Lg+ z?Od&LB0wLTof`t^2iIIDY#Lptju6LW}mip)JWn|6Z97$WDKC1C(Pa5Hj(=y#+wdy!^saZs6|^!YsaW%0MN&CSVzFxtf)G@<`005 z>as^Q+u{R`lzM!2K>+9!qa-0{jc<1&t!8A7 z7U@>SG%FLDbV&hwhR1T9Q&Fd{d$P7@Zz*dq_tuNKvpynbe@14H-j=(iwEpnBZ+8Ff z{+U)`vR{ck8?ELnuO-uKfky=hJ`zJ`3(^J8m=)=;z^#vOR^Q-~2sEOATJhHHcYHEB zT->b7^axXY%8Vu>SSHB<6BvyV?FL+n3GN_RZt(8lTfF!HynV(Q0VTy+0o~OP+lnrwvXkOp5T_A0bHL zZ%*ERdT*q@8c~)cd8Khyev(@ft*geH>Jp9hnRW^Hu9kOxx>$5aJ5tDwEzO_5Y2Au% zKEBCo!B()zdC6XNlt~n65k^|XF%}WdB8{_2@Kzb#CXcd933dg*`V6VydR}GIV-Eqy z4x+zQFKSQI*2U^-qs;ZuriMhPih%KV17hVNt#U$>D#0R*sw=X3 z(u#Bq|M}y+r$WQnC%*pL<#Vg@DbT1y< zF%}xkeq;2|qr2C>IRoF=cs%Xo<=Umn*oGxGemV-qB`se?SbfkBc|IH-L6b&5duU$TqIbp34HePdDWA5ASNEtVThdL zM4F8lyR^IGo1KIfXLLIzJa9m(J+|Ez+hK_7Qc>&;^DB9)xm9~u#h51$YR(7T%K-iS z=Jygcf<(U!*XoSvG)HylVw?4eZI1YWFD~FsX!B0-X!3RS-HN)c#ieIx`D654pl9fn z{{Uzz8H)}`CJ#_3n6FtfbBM^?N#VX;&iiclj=*Dc6V2tod{OO2q|1Wzc%nK2xXu95 z?gY-e)}fa^c<1Az`)2x;>3%~(qXp0zt{vCzz;!_RErd3Gd{A6uZFsc0VGo-(KrI?3 zF?uOjB*FnQcO@lv$72sX{oV_yE)if*Y@40X;!X`ZQyT5KHd`cAW2XtxJSv%)7cyV z=rv?+-xCk5+p%hfO%U6phPuVIyTHImXma42ZSXOw3-DcggG*MY5#Cu_|9*beFsbnD zEXEj(Hp(KOVpGm=s2?)vXPAs(He-m%8Y6K}-9|eLmQ_y9`5XXfO5d%_t#bY5gIkDm z+;KKda*IF7?@nxX#vY7lSOK7w%HIK+nSF#t+M8W8+b9{C8xQv!@0%_s>Z+Nt2rFNgdv(b}KSZkIYd=x2y3j zMnaP-)o-2YR@WH#kJXj!F69mtU~`~9C6hlRagP%VcZ)TLKUigcpliBKnCMqWx0>KG z(|y)7pA|OXJ;Ky&L+06$`F3QE4X!<@MVsxA8MUhUa`p1&IX@jcDev)3bBdE(iqs}k zM$nSdWQp!DMRvhMV!^kff2>Iy{9o318~*QT zl+3+2JNLtE?r|D@kO=@y0*pS&t9QDN~5$jv4%QCUX~TmBw9t0vT{UJlHK84{_AJ5XCJsuFRQzI{>$f2 z`c}UYC+DSDr7^~aM6VKyqVEF9aBf+gOOAKT<6Vjbmm=OSyEbT^rj<++*0L@7rQ1I^ zjiReQI*}99CmMJOPEnjggttr5-0Eb5INhc|%yrXyEYp3e6h-w-8sXxNtAKGgfBn&I z7R9wj@l-88K~S=2!-~hYZFqIp_HCy}*Pa|)d-m9dkI%e$vj6eEJujX+w)FI1aNV*D zoj6`rbE8|IuBg4mridt_6m_^4z5nK+A3i^gVgU<5z}(wDKGXT~vt*;<8d?1mX?>+}-QopTTT_T4awcD?^vva~qEP&dV* z$~0@Sm6rzP6uo?!L2->);iWH2$$B@$P?I6QOyc!kGK->whOe13ia@F*Jn>3_Zp!!UEwk3Qo}T2PvGR zMCKqh?=-vk6eagGg>#0CrKdyNke;G)P7vA0NQ`6I%%N=R&}@4DYzmg<(EBe}Aa;Qh z(?cZ2Ark${^h9pKuH53)5;NL&7X2PYzx`?Ku_wX+eUzNNkI6W|=8n({PE+&8sO-~p z<_QLO2ZOy)qWEs#4*3Fql23+BT5UHcwAzzftnqCCNk&jyhdH{-8r9_>^fVzsdt8qr zzD+$nAZ##6o-Putt+#(YbfWXwN0PMlz}(RtHl)oG+2M@qb`#nhpy*B)D6Y*#XmbIB z;yR6lZXMCt&=i`LyNy!>H)|gy=L0tN#e7Zt|V2+Bvt)wgr(5D%kQ5pmDzec4DP%*E}VSpZ_(y>MN6!rj-v4xuZ zwn+KW!M&3Cu4H!|TmoPUGS`muIHS4)xb7eTbaIF5dXq|W``p*Z`f{3#S$;k6YfPs- zy4xAs>5S`e;ySE^4ntCtJkKV&tF~cn9ySGKh|GY~9i@=R0eb1`7t`G0$PQyn2h^1} zwaJy-jPZ9ww>7HU4E326w3g^pk5tvaUQ^%u*6WYI`P>a|6~5Vk@9{(cbAz?eW)H~< z_ae2)kri;|8Z{FE`gnHUY6=F>Yj>`iVQ;{-YN4EQ9qxn{57;eWtH3Qo=3%ur-7l{& ziWUg?tBPxeXvODdVShfHVE{T)FEFW}(C8OwjAJau5Q8~J$~|=(<3kE_Y+^ z@TrqpjR_qle5VDg`8HQtqX!HLfXnn|Wu8?qM=RM0lu^SGNHQR(F)NUGV7^R1F8qRQ_Rxj7JF)^ zA1V-;Z$Rd0pwi$T#kF}78y(ZVx*DSpI=tOw`2)Gx7xIXoQ|X^ka*s1AdhPzB2R94u z@K1G!!BmK8!!9!=XiE-QW7^<-u}8xJyWyA)WPt;j2iVprKfw*-;Sba)0)>(twNlQpVFd@^JBD~>eVC}#WUTyOuHh(B#JKQrt(VMPd#!X zgp55a-^i5IOgBkx@ayB1HM926kuuG0yV#N`Rns#KjY(I85&N)ugbY+kiV zIHlE=;8aB$1T&k>=}s9=Sq%+Zal6;`NwfDRjrcl^WSUw$&8*0D zXcC>6qx~qa1_|gRn)HNj2fTNPONQ7)QEnMFCT$5#BKJyhjp{g$JlP|^rP-3DtS{~K z51>B}{Pd0K-UTyMwduA7f>##l7J)@^ZL2l0p^|PhzCF+j5WMM|k2qbfctdpxK)F+w zZZo7?b!irDrdge3Qey!iO{yEr+UY9MG#Q_0)7H#y*FV0*`RrrXzdg=>Z1F9vPP|SK zYidaHsR%(eu2~h|smFC_k)RkDI-y;Y(VDm+Qg8z!*^vgwc>r{*4~<&98TLo_V-7NjAEN?1Bb zXY^ATeH3ahk$RX&I+Q~`KqNwnZOkTy6yEqF?V~XJDD*4Sy|>)D`c~o_6;gEnNoR{p|XZ;&Fi9&*l!(3r^9Xqh+6>Ge;Pl^%VNPrp6Bs?I>!ylP`E6pwj;oU@5Vd8MKV z1L!TQ6SNJ$F0q~Nm^naQM!=?oZg+f3kkA}R?C?+b>x+yHbJc?FrR8Vo1>*pHj7kdu zG#LwP0ssx$G&_}<1Z)(7h&}xn8a=^93cDrz0uGlUIzSET2s^K^#9YWz7MOAw+fM&rN z2dUH{5(d!QAAj)aH7})mBvG9vxLzRslooe#D_poEVva4c2dmPoCR?dq{b)7+tr~v+ zvbUak=LG=DxF$WW#~lU623QO2*q|xg0^rn?7H3wYJI}1XqoMpy0UFxnxHcV>6W8TQ zX!9ntxZ>I!kv%qK5iqnay;)IY6L*V+E6VBy7-i>Yb3Y<;KBcg}q%glDvwp~Cex1!c zPiA07AUXfoEPy2TnOP(N=+i{Xp;`2eYRw0SH|NZEMYuJ%&OmgVA5yrjN$sxmfIGe2 zgLLVWx-~?nz+jNvRa&>Eb3y;b6O?A{OqXJsPd~HCmeypA?Xn^BpfF}+KBVs0Hv3Ip zjaJEjx1iuSgAM?Fh(X>%Djw*(drj|w%%DEmr%44vuG5U`wnEK=VUX7B1tTP;)11+w z%C|L)1N0are!m#5%bL$KzAFUz_A_v_+~d;LX}Az2I#)rob$P) z&jA5R+yQ3Ak;eA@{o7fc#wi|Ya+5x$6E4#Mg#=-?R+kIz9lpbX%ylC3oDn_F#5UXY zeq*^_b%)IIe5q!SrVHJF>fWcHoNkp6T8!}9#5PAlJ3JvaFf-uQgS!vU54<~s4j))V zN!`x$cHOn^dYOs;Hc!w`FUB0{Q2zv=hq7!7G4JE@4xx_jTP?}RvymHKfwgE znSGUMXpILwG)3+2(zEQmF%EZ9dXAL`lzf(ar5FIsXGruhBJB(r`+ws+odr5WXZ_y} z(C2g5=ZQ=JXl&^PwtSh{&&b`LSNdvoU7Mi3T*JS?B}-`1Ml~4-0aIGQ8mSk}Xm=yJ z1`vPw-)7%GH`1dCiu9l!(bZ*k+rg&AoC~$+FvsLhNhpen9%<6y?g}EUhS2znKILv75&#Gm#2JOt z9I7m!K}uZ0Oo2iEY#+xph<3a@W&K$50gZ z>0Y}c#U#Y}B{8kqm_}1fqcyag9dlKL_n8PDW4y-@YgVLrjp?wVZHQI#p`003RisXU zxa63Z>lSTjoW+W{@d-+>xajQ~q)`zYRHZa&lAY2xO?9%i_8Ny=@bo>aK00v;MR)B# zB%Rxms;`HWBF(BapMJVsd%aJ0t6N4fRBF_fPuEtx&(8aQ0DW1Lb{p3u-u;hj5+eUo zO@!V54o!sSi3(%xzpwvo01cXugH7HD3!oV=`UEX^gp5t<7-JWmrsoe3u|d9m=4F>1 z_n#$^5a?i2;T~xm+u~`$*YK~tR zNa%1Sb~qC{?f7nJ#jLSCAUkjjVSWn|u%&jnrZ?(uvy1d5^|Qr_ck;ErY#)5<_2o3P z;f5wxg3k=}hMVh&1mNz%6w~91>Bcw)H~mjRkg9wd`6fF_gs zskD&CZf-x7bA-rROV8go_wEl*9HV*^nVmWuG;Lj$sJokydEV$QKd#*q(PFuAe$#DA zskAY$>+Gm_K|7Foe49DC+ZHv)322M!@nV(GWld|-(mXP^ya5b=txOD{0o+Guw21(n z=9NTsn_>U>PJc?92XHgC+X)SEM$Kb20wAHm74JN=;^iB?8fg7vF~h?H z>=mv$LMQZC&XhK1Rd9U|CR-+-suLXdP@3z3R2hR^YHYqJ$FhXLwEorT)e21`G_Xj`^ zXEP2HDeJ1MPpn^OzH43>prhwIF@Wy!#&r84+gu6Vp5!*$w4i|)(AVn}ck+}^>0E>7 zh9nQqNwmpQ+Fa?~!OH+WUmpQBTemHy(@$t|gAv6uNuI2$+*4Y3G?#RqOZyCzcRVi2=554$CcRbf_ohY_FlIqwGF#>@bE{@!R~2#tNmubsY0(= zD7QUUtlXmOLJyvL_^sD6?Xsj!2RvZ#(h)jCH*TI4UOl+`xNavrLikP(_6N>fS8|tr zs;{1J5xm3~9%PjQjE)2JD7_4-0t=8t%?6C#L!qrKt3yB774iW6&G&D;yQ-x6KwkbJ zhdInhh7_i;*>SMnCs^Mpzs(IHA} zQbe?ABic>Cg{kfCsU5!5Cd|Y_jFODGLByj?nHRu!x+0s*NppOWjVAaQ+hl?KVKJA?6e1d&cl#C#tDOy3EOOaSR| zB5h!Kx-rlUD3NAOZ;>EDMf4&k0;WipFQOAuRHp}; zg~(QCRI?+Y!vk$5q1hJKh)tP;*EY4;9vd`=is!)wS$cr-O&CMZwa4_>V_FSSZUx>d zNwdnYw`+1c0-l$je&WdPEx&$u97W$d(rcbS_XeG4YNIZqT?fW+T%$3=tG^{+X1Y`r zs+yp<=GCg24b1%i_BqfyDcnC43ZC-2m=lDBN(pPy`L137yAv6D(zoN92*(o@M(`_h zCWh<|2kYKLp@U!p6prBicXOI2#P<#hqvTNLpNqx<0T~}+a6qsT&cTQzv=RO`ENmYN z<4-k-ga4@jRYBox;M8%2arR1GNz&nvDC7B)6#jO6=kfeuMlNWGnLEh9*6M-A_W?m+ z;9B+*srzy$`^dDz)KIk5-vbANU;{o*)FgBsVsgg!3`a}B=y`%G{)qq$+fV=~=Xha2 zfNPkjSlsLpDzwy>ks5<(24{%L>Sr@T9-}e!F=?P9EZSiv^&pe7pHA9GBkrZhobZTsZw~2$Z2Iyl1-gF}o5FGF*9%WRy(*Wxhm>=e zc-w9UZ4a9R0F6yg#6lRbjZiETQ*Q?-C6zo$fcao^wv2M%AaS7kP0&H$o7UB4F6dV(<> z00h|2ft;e}xTEKI30-~=uG)u~WZ8pUPq?rrcDR(qM!;QbYJ$Yek zOtT#rJx;6MV6R=d|oRAsN1q|(u?{TKJ>B&B&MklVZAoaaiqP6$p1Bxx+Q3#hY){-YzIxU;M`i^ksnF zv-(=E6xV5hws&H6H@rbDTEl_%ZHsUIYjonls;W|o|% z7Jo!3{5-qpVovc1T4^t*d@HA7Gd&-SjnfohMAFEuv*BUhD3|W*-CS^IAl9Ra>~JH1 zqzhY;7PR1-9jUFp%z2GSw;_41j=R8Gsju_#1k5mHlgI<~*$0{A?Zm=^t&3J3**Cq_lGSWV@3dk7 zJs0~o0}O-IHh(hI;aporhqllq?$Jv(m(`x6m7b*)9w%X5H~^pr*RHYLyD+^`713je zo$tc_2AS)P>hS?XC-nH!J3Z5z%r|<}Wd?PZ$gogt>HG8)@1gEQw{q%&=Cq!s=oV|t z0$ao)Q}ldm%sh8&PY|B=YZ^^_i~Jd0<^IC_!2$5@Kah`*EL#L4t=XP&|0T>MDM@YJM!$| z9qE28A!sIacoI9Y`;JZdnD2<|vBh^m>ViW-;R$p6xVcVzk6}uiw9?V=a4mmNe#IF& z>mrqYj9E0mEQhKH1N0eM&Pj64UJ7kZg#g{U4+H3Lzy9X+<;x4o_vUi@IrKpeV=$LF z#ASxl0WKrF4f*ix0Gl4p0S&XU$?+qst4fct7(m9r^y7k$VV$O9I>lgsu@s(a71l`x z`y`!vr6zInxF&J%RcgG&zA_HWB>ju~GcjnU(}oxrKm$*oB4d6z`su|VlvF)Y&vU5i z3+#evP12YiEtrlGi#$mk-pm$%Myo%q%@5CWQingW!w)YkSnm@R*M=#+)dPliYO4#Z zyK%wC^cGj5(=fBqooO}P>~-;%EKxl4i0SdAOEzs^e&Wn<$c0=#ir&3xOUc|h*W0Z# zJ@zz*aYm~*-EF$Q*;D=K{SA*kqY^1!h}zhX=M`cU+)^_z-2yRS8yvK*$g zrts7|2htM~yu6ThJ8~T$?YZ-51>v07bR?L-IzoyFsBvFLqF5hZ6x%2AdG< z`HK|C#G}D43`EcKMK;;f18)8EFToXoNpQz|>t`6TF=^m_4DROykU5P= z52nbT#;9&kAf_8G0lSuol}~8JQhaD_46e%;8vXGkw!` z*hMeeP3MMjahx#6L;L-ycG75*bs2pp^6(#={2v48iN%`8xZ^ua%$%4%N#nas68r?x zNqhcdfDY61M1UU0;_;k`nSZXoM`Tbq=T8Cp@c;b)edP%B#66)fa4r8nKwr)Y1)cgw z08N8a=k~I4k1|1AP`EIF(NM5(Q88!xAUf7Gk1$xnOb`Pa+(9O$0R|0p6fl}WJwm4( zqLL0$hzFqaBWLfUtgi*MXTe$a? zrfb6Y2Y~J+Q?}8_FBKPlxp&($Ti(O|Rqyfxc894eW&wudgwAFF==koy zj3!eEpm_k$*qqDX0Xoz-(~bc;lgUR(ls*!zpT<5&WF8>0`{+f>=!N~yy!P_4<+lb6 zu}$ifZbt&pYP&6NVKc7Pjcc~2Eoz+6=3rZly2hq`Cy%=xx_hcmjcYeV&9O$!b%n># zf$5=I(%Veg0kyy;nJcMXn_n6R=;0jFP);rY^wvl3U;6$_=>d84TpMmKu&f`9fut@E zFj>R`C$bQ$lk^T}iA6UNpl|SNaqXtq1wLf1CuXh(H`fh<`iIjccY3l~eFZk%KLF^s zF5@^r1Fm6}Jl7N5YQYC}S#CAks&Z*GkBYUcsui0`1Y0W`wpH?Xl-2GjsXbUwx4W=@ zLwWtm8vY8Q^xewZ-P|HDQ%`1-25-7`fXvz`6dc;Kwse6jv)L5c?ufmo6X|p%-`)b4 zp3)V}SkxTVZH(_y&+gH4%mTYf^USkPym78?_5#l>?XKIpf>}ZP)VV>V)r5^b13=&I zK<0T9S{)RZ&a0AqkXJmKa~Ytwk_r#BEn3mLZ(17$(3u_9_&ETw@cek-x{^BsP!I4i zy-Qc29o62fWP)p8G3&H@swx;^%`ZebJFo2HkHpIj7_&EBLgA3QL~LN~Gy z-Z*c|Y0ebMS0D4OZpuhS0+t-$_ z$S*&@{}`Y{&NpaB+1S+QAqI1l%muURTu%ORO5xtzvezrhx+T?O zQ!OzdOzl#ERTi5%qa`sL9bd*t`sf2-A!u2Rf!SZ?cV zy|%sahVG`Dx|&pPzr6C7ONUYP0E!NTxOp>*-gl%|^u%K~`+ezF{nSR!O}BR@cl+^k zy)pCskqf*L3;oCgifRZ|!LuyRu0tFJfe9&27%Q>Kd zU3gir4T_u>h@KmWnW#C9(Q`53;C1V2N$CVNf#Bc?-A!?Gn_}h#k#2YFqDJTr66XYF z%xldGIw~K1;Khp{zV^`t-Rmz+?eOBdT!eetA{GXbHg`(1-|)uUublpH^~YcPUVr=g zfEyn$VbiEOjL5>Khy^W?^D#xu!xS?Qj^7kJ7dsIsRQXL<<@aD`hhn5+!tNK`wXAmk zlr}$@B2!$JhNX|K`1(tz!xLB-7j*N5j~1+Yuk^mVZk*dpXtl)6wc_q}BX>EFJMG9l zF62&6+FS=UV3p~03u`5>7SwK`l^-A%?4w===y7`d4+HdnY6{0r3Jnx4Sr~06P1TsV zGwe2=KS>jJo2c<`$FDz}GYO!>4E>MkIlS|q=KqO+k0%7>28F$C{AI{)D)UbjM&Ya1 z{}ez2I`mU6$L0PX2k0R>Ky&U97RJzFg-JSGo>1{Fk70vG7|=9hbN)_IS)-K8&hIe) z#1zIcDr1;T8zNB$iIn~v^3iM(a4_fy5d&x}O5YXQPoai2p0k%k28M>8Y|Q!R0DXd% zcZ$wF!GKZ~uPiF>+q|Of)%&OU6-k{oe5WUAVJp^}&-D}Lc=7XGU_FBfb3Mu3-t_LK z%zcB95-K`)+HmmButBh(Pp~=I{vx#$i+=@3xd$hC3Luw=D5KGk6mDcpU2Gi zhFhgjJLQk>woPl*(tjUw>h!P0f-;f;~~rs#9ZXJ+h#>eq~`vKbbp1Bp)M^Cjm74Fm|3d4*Ean za=N{-^F0xZTtJXu52SawN^E)n=w(&>fp^|oy6i;^pgYYmi~PuZFZ5NgGYBXUY92Z* zXuAs>#xOwllbB~_|2;taWw;&_HfTBz>NXJH?SuZ0FwdK|pfO{Pf94!7v)gBA3(jw9 zdeY;6-sxHDb3PGpEcH2_@!0?7vOnW-ED1XAYjiHL8lRR(-!G{+$i|#o58N_qh|Jnr zTR*g8jd+3Y#ui&tlR52)+ku9YZf{A3&IUU5+gkzklDdr7cI$6*3PnD{f)^fDzxK$K zHuFuL{_EQVDJ{;VIX&q{98} zw=W9;^pqBJMwbnqpQwcn=*8i>us$2BLq|rpzQ`k;2++rfti!;I0MHxOnU~z2*{F`~ zHYUt>feC>@z`Otmo;tY28EuX!9X3X%-`dvExL`s1yMN1GRbJB*%iJ6(1DGrvIQf6-2FvrZycBtI#Lig?8|KHrPC$j9sH?(ixdwb4zbaY3f z(P#woY3^vmIX0+FC+4mC?c@>P_jfBomrss$n-uFkI?-=fQUGibatrfto`7&ni1Py- zffHbARKTQIU)Y@yDcdGRuAAz=Yv*>@3EM};c}$OqoE{#5&iN!iMVhZ7&3jCu z=Y)9Au?esja3}*ufq$g>4o%)}m9SnP@L1}qRRhal}5n5FDwMq8M(5+_Fy(<)ScQ)otau59@<6FP4g$Hga%%&&KQ|D6NnjG zNDVCj#DH-iY?R!?W#979l#H4_UiNO<+g2yKZk4p|7lM)PGI3f)(JiTWIV-61-kr6a3 zGjLcYn!^0ZjKERpLE}>cC%|)Z7#doB{)+o5ruqf-M%rUjr3r1wlmrUi~p4H%!|H!%r-y$FOInUny8PD%(j12e(q zy$hU>955l-Z%nG+kjwxDT=kiVp&5b0(*yCYjZQ`T4kZBP06>BCkQ@eB^)fysWK3Gf z$n>Bgkb%6gAt`>NQvC1Cja>rzu~VQW6i)8$ESo%NC|;#OiBv5 zBR+UqT<}yNKJboS;Ep;z#O>b1z`6UM-uTUXi(h|w*3-HAyu>>Lw~q>PRfKOd} z>MQl(E1rDI1o}9|5P>H4T%grUbC2B@t2Peo4@po4UW8M?;6Q2b3$S70&DXGJ98(@sn2?!&u|T61Xu%}0X9La;mU~DC0%1nRoQAV6)Mz2;|z`VMK(Q0b7vV4XpV%O(J&y;#b$wi z9|XFfk3gTH)TL@9&}Rf~6=Q5-kU&F4Rn0klv0!O^&56}d#@-paVQO*!=;`G2m{EzL zqmly0CHRj?@*A4wGc46-T%zCPSbwVs|2txXrX>bUO7$3)<2p8P>m#Y#Y!bHL6~0Lk zvQCj7qSzHWG#Q!q_*kFGN&aJ#JVvE>3{UYHp5i|?A$V*;D5N|lF?f8e*Im(DXNIp{ z?Y{JtxpU6)#&Qi@o-7gQi5{yb#RY6 zMTcfN4Jgp?KvHC*E>^NOVeovyJQ8rJ;WB6rPOx(H`YfN;kzWnXQRLSW?$DeVcS-QZ&?+#Wp$|QdJx2r z?Tez^mPBsf;=MU)&GMJ#%sFIqETcI%8yhIy@wp4mpEwY@FZEHMjUxj$PkbU?k>EKd zCD1B4ND<>dCM9%IqTjS6?|W0-?h1aK@>{boJL2BRZ6gBL-4l++?;9KA2hUWBi0zYi zgbzt^8=meBPb_zb`oQx*^y818(mA!;Qq>F+=tGqK*{HM+%Fo>s<#u=Y_B&%e;QSeu z<~1}GN+ZxJE*OC-|sjEmhiDG3!F z`sWvEO6ch15GV?(D4%gLo)5%$%?b}%934hQyN?f8Ga}s6Dm8XuT(nhu*aVQ36n8jj z$0Yf{89Ob~PZhXz%cd0{J37`0`Z|-YmSz4d%&xN5pIEZykJ_@u&&4WYADfimJ}KS@ zj`gsVKwx-sAe27=(t*swIRF=wBGXHe?LK)g9GwmKq;H>=k;VB4YR8_LnpfEVB-Fxa-{TYM){W->+E1mqdE?nZfLI_#+aP-!@l6|J6 z`Agcuw=g*%+JVJKoHMRE+odG%qvW@Y5>A zcT%$dq~t(gN^;QT6d+(?s-IPw--L9ZaT(rYGrdP<`wY+a8<~X|mE|`&({F4BEJbl3 z=43NdQv9YS``wv@W+tQspk8OGK~`yyQ~*pN1lEGp$K(eN&GZ_U<}oEFa6+Q{sNnT? zL~pkW+dM9E%jg7;;Tb-P>_A0M;IQoA30YzA%rGu+`vjjY@W4DRHE2B8bB_0rJYUEI zq)&jvF|Z*-&vt`g(=dhIxicwXS`x||pD3D z_QmJnJqeR?f)#mQirpSVcDWDF+G>@uSEvQUiu&`VG%Otq$<;Jt-md&eVvz zQi8@OZd0VLADX^yO2YcPBQ`t`<32oiqar&%ksAyG0rfqq^^?8FrFxD|_eA=eh8hOO zCq<4)2Ewi4{ieoke;{_Gb`_8oJ zO=FWmYQ09JBNZE!6g(<9YJVqqnOg*R6A3_LlRkGD_E=rkhlBtr7|J(I<93 z|MeTwLe`B+^#;)#ml!f7AsD?Ilol`~({D(Y&&YJ2I}-eyydS5d$SdoUBY9KN&I?Zo#0}cZS^uxhx$0oXsO7S0^8azHR z1pVWm5;!I;Xka9wwc-A-jrWCZ zwu;$$XVga4Z|&-hOS2cu``E!5ZbvmLy3tlRZgBef;Fm9b^s=?9@`QgTYXM+I&VYQ&^-cuCOYlCigR~IyWbt*HZ9I`T&fqGJg78M z;TVO&VS=KYmgwpbusVL*8Z6Mww6R((6j99Q3+9y^{ASDU40!CZirWs=-lW8Uv8f@b zwJ9xPOllaMIb#z8ha~%qj`Mst)YCT9w9DI^h$xjZN`H zjctjc_eBM8fm=P-ulU9eOdWOhZ4iV%^DbqNXiu$m{k67?$@NlXY@V3xH6$*$e7L-9`F31iG3v zb!o&48tnyIcahTJ>3K?v=h4?mHR5?Scymt(%vcTxbR&;?Lib?yW;B{d4|>4-M;!7? zjLe$}GH)he!L^**EzqSpuxGkdE0hcRYSzA%T#n;C64i=RFyocV~LSv(uefo_Az>PRa3{l;w_@oauf?24ZRk`Z+ewWB5+Q zuw5QQclQAE~S%q>H* zwhr6jJ$g^Tn4NwT_XbRaX|BhltZieH*NsnFH#K+rpPmf4=ZWAcyL`vwx(|a@vRudQ z@SL*Of1)`j)6(7VN^`$E)%{*G@N+`Wwz0X}#^-LEknIL>CS`g~1~R;-X8KIY@&YDj zdsyYTPsrOoE^oV4?)E8J9#b=~aA&5+T^WeG(-HTiA?`DCf2upoqZG2dAhkO)yzWj% z+?5VLJtm}Yo0R7{KF4ib=C*11J`e2ly)PTq+J1NPw)?WY?#mCHlJ7Sz&mS0{8(@{~ z|InW3`!a*jQ$(82ec1tb=6YM@c#O~54y8RU)0=R2Mla@V-JRwmpGpqX_miuA1`^Sy@Wc?`{QgX#E8uLqNT9*p(4D{0%GGCkCJox8-{vCjid$l1#1OHRA-89sM}4I}e8rO$r&!|^IK2d| z1mOz(Hi^Mf3qVG3^D}9I9&iVw;g$et!c>+51Y-T|57uAu6WjAO1o~>o6dAxF{{n%& zC0#hkPZ_eMS62Ub>cRmPKn-hvI;jWF06+*(i{2pYx%1-BeSO^)6=Ej?^}Oz^n)@G+?oqte30rv{Bp3mlr| zKP(HiG~AI059kq7vZ6qsC&X?Yk+|L}ebYmUt~0{6i1EQQVgt~d)S1C!(?cg^hJo)6 zPxTs;fk5pU>4D=@A|@n*twxVci2x(KBi`fA#0|6jmpwCo&RO2BO2eIDxHp|0u|QAu zT01EL{gnwOp~&$!n${Fd>l?xR3?vjWDXg^WrL8JQYBAvx^s_`ru_JZ8qOU+%T^^;xsaC_{sa zZBnsyDkBo;r*=L2%^P=xt{CttS#1^VmLpFa|^Zd{W4m^6^) z5cHsu91Poq12Hizc3fJlA}3Oj9X1mE`RhM9*>^&^H#nRk&r^|&^b|KE!P0T*e)oiL zboP2YX4T@iTwG3R4RB62OlJ z65(@KjMvyq&(V3F6EfW4kpnDwN_NDwgzyQmAwzOv6uD6&;p9mU8lB>8mEnI!a@h3n z!1*3-X{*+h2+o(R={nk`fY*FS+n@+MhXjB>$U>KC) zs0`mbleRequT9v#76iJMa)6T=E*~t=MMn;7-ji`}=%z_=Zucbl-0bARZ#2gH>VjM!^j7ZT4}nOQPm36IivXbEXS7?%+FoEGHBDf z<$+tABDVq#QCsb!x0<528e_H^V$qZU;Q&N{rTVz-Lc(@FaXXW=ol4%WN!hMWMJSV9 z)ydl+kW1LcMQ!FIH`~X%&rbH@Lmn5x9~WXbh-q%xTpvEqkIMA5Np_zZy+s|fRY-8x zCu|dAHijoP?vhL~;kQQI7%wmC(j zDFAt6k~V3QH_^$Pn8Yo7!d4-En>Nl(7we{vbBCIVt zjNa~G#x4eM#Xz_zb}LNnVz;7@*sTsR@DnA-$8UoKjWJg?jmjZri-4O3)m*igg=_7c6#80{tlN;Hp!JqcEv}5PIHGtU>(2JHgTIK)q_g$ zqEo$1=>aBr;hYx9s+IkofNx=z1ExGGdpvyE4b&+wO7k@D$b<2e4 zEq8#Xfb=9rj!usR?U;}j3|cuPCt!GX0Q!e6IarbC4^lfd(f|GgPvy?w#jj?1y}CE} zncZQ#_69ur!X)2qQ^BxP!a$%EY3Sd^QQ4lOvpmuNcbP#GQX{Rvo>ODSrAC4gPD%2d zl)BMAXvI?t=E(*6_?MGFpp!yIWPtAYD)PKX*1;xmsI6;F=|RHS(;a{WhShYU*!7@Hk29PA`HV0>OU z2qnn+1Bo6p!ZuHj+;nf``a6Im%J~}!jd{k=Ggw*hR5`rF#^L!{_{X*ZR zugvZd=oS@Mqc(oX7(k$(JFp)F8a#4rdN9PFk`xN12ZaEIiHar5Z)$SDEZ^-Q&>ziT z1_J%U$8Ssz-8wqKV^nUKB0FSwR`AHIAc#LYBVa;W(3Irhd*VYK{oMNtbjdS&zC8W; z!(r>krFe|a2pXLpiuw_zgp5lIwn__|6caHaHcF8ap-2xOk`ja-6_NwM%N1F^h;;u^ zNr899gxnn!HYGlCVq)+eiJoHkrr=GFy|Q5b38Q@tt! z6>(dK>{D zhi8Qj$qpTs6^f2~8azxwNU$O|T!GH6aM%m0w164W-huhq&p!P^UQ$l-6HhLB^XZ{E zVT!B>MRxSCtVl=!p6(R6=%4P%sXpkB?9?DgY7B^VUa(?^&(NH0)-fCXHm!Yo&XPLO zV7WklVw_#9HGzhLp*Hab0{KbI6^EdfT0viHG3HJhAk97MjJ(;b&dmU81X>tVGi_|4 zjLjMo00#~NAwqv}Hu{4F*K#EHYKxGqHK;&W3v`u0my1G)Xn^}nv1nf|7$CfjQFm!< zE~u4Y(hzdg=<>1ivX>UD&RexEc^x8Y{knt=>*CGCZtR(X5CBI=S-UQ6&HAi0n}Ccp zn^M+oO5Ct1ZsVqy&6^^(Y>IQ+7QS^;%(ksDTen26TNk}mxU9jM=y`cEd(U7N*ggHbMv_7_@Co;P%HuT-StdT^F%=ee|aF zI2s1#BR8*)*s?Bc>za^lkB4o29Cj^f-TH*}kiGS>8`sBdS{J=(ojJm~P;(-XRER5{ zqL~2Kb%C&G^M+_B5GbX!i1_tuh8N65;8yH-mN#;m)rJ05q?9ByQJ?`2ejUxp|>kq62Q&~)u8ZljoJp=v2 z!JYv;Tm~6H1HB_?4!J7-#{{|>ZcqG`G3)>m2S)>eE>IzXF3|J{G*Hfq6@nIk85}}@ z5Dbn`De7=EfQU6%HSWiZWV(+@BY|!t-rQ@?^^6|3EB6Yt)-2Gd4>aVzOlyQ&D(*I2 zBIto)0R;ET2rU4dv0%FB=&QLB?9hFu$ez_anku@`D-H9`{KvZs z8<0T%?VlabyzsHXXclPIDVBkYvy#$7)z!v{EuyJhbZO7bd-wPUGg4ixVzy3A54|Tj z>h9zitF(x58DZlyg2!bBg1nB-_Meg(I3+cBOisk;yzmJrUU!9W&_!-?OAN?}49oTj zJoxU%A09dKNYM6svm+)Y2ZHkrOZOkQD|CFOk5#4@YSPOHo|qOkF*Ry@TFm&gsL9FT zL*7$THXDOi<}RCe&|p_?ekbx>N5|jJ9)IrS=T^R}!AMY(UUtCH+`!Q}=xq|Kq^QZM zvE$Q2?u+-B6SyI9%VP&;&4QX9o&+SLaG)+6wKP{|t!dLaotwcHvyP{=&R^1|mVHlu zQh4%DaegB+{1usg6Y?U#iLJ7tVNZvGR_=;Wg~owKEzk${Pm9dloKvf8mnSPv3p=^EV!hbRC`K2|_<2 zBMjCWmk}}=#4$T?OlIK3wBUOZL!1J(r!8|n;HZO#jSd@aldb+sMh61@#hEW24&N{) z&2v;nFvy}+N+dY+xU|rT>ETloBkxFx0eu{n6%NUcN(+Hx$AGTo1p&j%J9T$bsE z2snjCW&2M{b#n+^7w56|YnO$!v|Wo@S7%F?XsAyYx)dJ!ddt4F2SYbbi*vgt)&GvP zpmEt@BXh#X<;9H2iX4*?3J*&PI0X4YL-GRQtR9!)Gch}4L~7)Sl(?yxX_Jy;M-yw3|pncPq1Dv{*dADkOqe}3-TZQV1f@E_aqPRcl;vX@(3yT;;Vh- zM<-_nqJa+fB`I>lhUS1M2M*6gePpMg&a#1U8G?wz^B#J~V2AI>9QPTqn>TOYv~S6Z zLZed$+*m|I9d80XZKuIgxn`DW)M(5Cy}0|(>F&S&(f!+>|GNMEPt5`if{42@5XeuM z!3K##AX(7j8qrc}MJ&*u&KM-n$ezu#Fd)!I^eI*(&<3E1Lg6xX#t>tcfwOnL5aqqL z5Chj4U%=l_sSr>LG}to~Z>gxS61WzY>ZFtxl*&#O)uho?aE@nn3l7;W{@i)#$FrAy z=z{pbW$F8KdU$vCV&J`5i{Cf%p)=wW$HiaSFZ;%R*;n=}K6hO9snd#&W-WVv_KJ60 zmhGRl^cANC@628K-u#vOot8kzrwiA=8v*_db%if>AeE*!KugzZi=A4!9 z&3pWVIgh>PwEWZAtG<}M@_u|H8ca&&_gy z)n8w@_&LW}uemII6_RyX_SW20ue+>#&VJD|_KTmJz2XVyr915x>~UQ1+??gF&Ry~9 ztR?%MAOlNYf)rflqjauJ7rx-K5VrW@oJB9XERg~^d3MhHXXnm+Zq9rRj{nlEg^=J! zi`Kp4vhro!+_y|iKX6?6p8fK7WIqQcU;FDG1#6o%s6eZIjiM}F%m}wr0&{>f$bR}GAy-ay`pd54gmM|;7^06 z4}^Ssy^vh~iy@+H2_VEoc5f5JfGvcWtA$8)_I4m`dzMiFTW7=)S}4(Qg=*BF;hd5# zq__bA&mNRw>I$X3^mM{DQ?BMKRYH|YfN7 zhO`6e$3t1;(X1ioP;Nz#XG!+V{hO~~?yb=?Em8BZgD^!M!D-Z|1xy;$xmd{-E2#pF z?LmQqTV8i*Q}-X;-GBMVrI%j&$Y456smp2284+D|6|}aQHMa6XH7}eHod5aOhhLrf z;=#a`(?E-}L;jQy`ao3Ry-6V;A7iuqM(6sD%|>raOiK-zmKroMD|~cL(C|FB2b0&Y z^;nX)TzwJNYS_>!nCsXSD;W{J`g@XjUJn{)gjtF z=9%owH}|A`^9uKDq9W04Vs7x=JEO-Z2TVvs?`u!UjJhK$>i*qEEX zEt&tuk_E@VelzpiSMQA5GBV9?a%S{|xNvxenVJ>_raLS@7#N=$bbo5doZxMlE1kY| z;A)lhWgBg$t^RAZSn|}a&p@DKw~WsA1#KOh6FV_2c2ZjGg!JeMU~Czo6EZ`_W(AGO zM!?M2?0_*j0i*H)NA3t5lN&fTC)g@0cv2=zLnmbg-kIqkhOQ4;wfr@QxhFY?TG|Mr zP@>g-q2)i_xT^a?-81h!GitrVy*tB3qz5R{L7+p1?~IzXGtMeE8a17!2Z1Jz-w``9 zEn;+9^tkkxG1)Q0@?(eWj2@mJIXpj1ksko3#A*+Z^p&pr=d3<#x3E&MYp2AE)=Yy+ z{F=8rl$!Eh?a@0Dw~R{jK$*-97@HL`IW7E-)X2%H(c?2BN9G1iOLw;mSsUxM?yH3h zYFNVs71v>{DpAe&Xs)5;_-Af=6Kz7)J&@!!EjIvmaLA63A$j4WawDKLCT9R)@GNBB zeg9EA{6=NFkIV9!kQp>3GjeK1+#Q(-<8l*5?}&r=Q!;|BG28_r-_79Iw_avYvs0R{!xri+r+*UlfVD`I4?JIijvpC;FEk_=XTKhm&*hqLF z$wQ~d&|LJ$Ix!udve2b8IxBEkUdWIgL5iILBl6%3@wAR}cMjYZxPHyYj`PY`T`fyB zv8pzTZPM^?8-)8wHN~FRuwOeb>^^j|`>+4#{_QXSc;kbw46`akV>2VRu&BEQ(8}pB zBt(k&TT7$|vqki@Iu8UfX(_Te1l-}RKg5Y|6Mg-7aPa#r)#eWZ^n&_Eqam&tu8A>! zxRKFTbB1!>R3h3J=))^&goh;T~h1fU3LsS~6CX<|tF=AT#6JfU|wp?5f`bv&uFC)49P z`{O#tV|sftCi72ww5S)nE(TUd80>&k`YV`2j4(ZJG#)b;jtqe5u-@*l&f%!e;h5Ip zgorpPpeg)3rnQ4`h;USQ1#>vY@u-=@I>$qL#KB%*9;Zow_ybO5z*>h5jt32P2MrFu zcY6DSI>dKcyMrQNe^@{q=>fM*V+apNr{&pbSe}YVruMHOH z5~#5(Mk>daAoJrvA!ckLGT*)BNR7EasPdo%&|FZ=VzWbI8SPI2!w*V-nI;;I0f(+o zaiGos?y`)-AtrcyDI->*Tc^I3Gt}`$)c=nM9YGEaApp{7PLFz|Fk0lqNRj)1?HO{5 zXE0zjcAkZJ`ji)IJ1RAc}6Fgr=p|5{6 z^K6O8e`TEWw=WO8^7Y#fgsz^H={qSe?1AL)2NT2Y0cXt)8oo1N$Zr2p`RL7zDOn+R zWQI-5i5is`tk~=EV8%Lc_r?3?&91XGRoEInci()X=u`elA4S&sF?)l@YKH%$EdL4FffKSqtun)`GNUGB#*E93os=E%r!+sis4d>xmprw|bV|^aXsD00 z&VM<6V)vO3h6gR4mh3qxEqGK;%!nO{W3mz_ro`S87db6Cc-XFh$veEABHbc4tohD) zK@;cD&f2$gNT6#4u0muhd8(0SyC`k@Lu`k&sZ?$M73=uCom2Ve@24Dj&nnLKjzq61 z$!MUlyLKdwj}Em;iBx0;D{}mY?hKq7=ejh+EjcCTowuH^_^sXWT$&=meSB8X)ZFkf zNq(a2FSv8LOt^b?un1RD=}((df3q1V8u=(Nu#p;wP9O!uUz!T@&!k}c{Ba+>vyMnjoT4^ z*N)`LNiowBV?pbO<%TPEg(!9ffk)n*5->Y(bNb`XUpw>F8s?Hx*P$|ft0NWm&K26WThhV2gqMy8{(&3`H6pfo{7rPDDvz7x`2g^2aB zYgd2dvZ6vazm<2a5yTRaEwwj%?WFJiW{k2AzJYyDT8>D!c~kE@T~m$VHY-p1^U9F_;(A96=(__X9`cq)LWkr5!! zX`Xgr>%!e1f6rw$JV{=#WiQ%j$|;+V7ucQr?!B$M6O>__9!&9=oF6naAI{YX#lE;< zxshYCA}6Iqf{Rbg2!W>vFwtQA~w zROOMX3Gf&CTE42 zFOv|scC2!O#^!|#%?}-w8wQU<_a()EzTcDTuZ`N|=C=6lc@9TK>NCOmaQN23h68l; z+8G%kFbD0{!b>|FQr51A3=w-u$)g-d@Wc ztPVp$q_mp5HG@W5j?9B^7@0Q{WWIaLk@@kUNdJ($8LC-vV9X!nx_#g-k^O-x>AH}u zjxkrtVkO7-r-J1M!d#=#+8d*kxx#>U1R*$Pg~iiSPDfTJf9V%6!hoCuBrgTt3^IKs z^wnTu&%FZO*Pem@2=pM3qiZ2DKOPjB9}kMmcW*gTUG5KVgeDG++MzWABb8$*mJ2j) zfd+xbl&LrnS>nOiq2bPQTLrqO(H(xOZbYEZYK3=aFZ`vjF!1$VlM-A}6W8uYaG*Q0 z6UOC44%r#5cp^;kRET0<2vpu9c0`WKiyoC1tH=*i?DM%NXN#-vsu!0nD&gmz<6J)U z^*UPh9rHq%B5%u(r^1HigStge$cY1c7`7u+u?rKS$d6I%h*#t#4%wMJCO`hJ>=13N zhnxH3dzZN!)rtkQ_G_nQ-36u3m3}=o>hZg?0w?4~DE1^O_N6LzrH;x@oSGavH8W!L z6XEyl3Yr_?6TN=z)dadp5L?xJbB^f_&ObKZiw?>_ha^o7x>o)fc!Chm+H zwj*NvQ)wg8qsHbZjeIdv@pSaa-60Ppc&u{U?6z#_zKF2z|MJ74*Y}J_4;Y^lHfdM% zi0t5zd!iJ3q7}QN6!{SobHbUF(A6Oxsq0t2?=rtau)C-+U7G3et&RS~o}JGecxO`F zHU)T3UhI(csL9z$le6PT?Tkh~_e9vxy^Uqu zcuaPjB0gkdR^qtaIK|#5#gpNReW9cCL+?uqbqR4#SvT*Kxkk8Wc>bK9KmV}4sr>QW*tk@;H31BN$EcKWN&wf z-jKZh@%QH}K4v$&L}x6~qUO4vm4+@``|lX1!?8(U6&{}+={_|HtTb};?#OXFqwdU( zyE`*sN=}khUc%U2k@sZ>I7Mv%7_u{R*v@b$UUcp31|k)^BNRKM;FylgiBs&38I~XXNV4l1?-lzO zxSSAlUvu<#-kXbR4zclD?#>Avo(C65*wFm2F>t8P~wpC zxLkO+4Y7_75+VaOyScqKdl?9H4Qp!_Xxj#g!2%8L)g#b{PGN!m2F6pon5j2 z^sZ&$^naK@_tWUB3iQ>GZI2+!-@gp$3;k7Xn|*#G%1riH6FM%CVH|6=>9RLn6?{Y8C)-Cjt$3D6Grq-E;H!O}9j#QD)3T zk)Rf6$eWriQNgCKBG3lI8JfldeVpS;HRxZ(CXP9w6W@Jo;}4BZ3-V&dW%wZ5$d4YC z9X}~AWjNT|t|;UaPlhS>M4gu)j`NhkMn0e>uc^|rY zohm!3e?CT$vmH6&&L~J>%#OsNJHRbKN+OU8B9)0#e3q$={$M&u=cT8WX~+qSLU zy=cK<-gH)Nd|#ON*W>4&Is5te@W-ZQ1&qlJRpdu1z&m%wD{^A3QX(g&1P{;kpPJ%6 z+jm>^%Eu2mEokBFI$8Tp*4PSFAkU+3g9%J6i^kP%c!+M(I8^YnKcNf**2TIPa;=?*F)adG)JLj85?% zlNJc#qR0wR?2T0H1u+U!>mCN@#&OS#OTBeH^9(6c4!+37*zE=-^ zG%dj$J#6fZ8IqqcIx7~QD2BkZ#7@+rJak9U#Ec;4K)2@?t@v>6qQXz!-gV%u2a>%< zWQV|W#qg}yk=e0BbHUU@6njyN^{DK?dlCX*moru`{A{*;A!BH!oT@434_Ui&&pq`; z(ZPqJwvNpR7@ZwCCNmDbXPF#5J}qiYR^*5*)cbZg7+CLgXm-@loQPpL(Zg~hrBm44 z(7cf0dp%XDo1!+Y{>Xk|g{@udBV3(|sbc9Wj%l4Y@3s3LJmca0UlnB^9{6~9ZuA{~ zYo{gqPs@$EZ%^XgyA!N(qerHPpbsUahm6e(H+Pu`yE6j`-+d{84;ZcYS3C_G9Xuw-Z$`Z5 z@_=m-o7O$MVA)ru*~PS>$(A`kQ}x3Po8M=uyJ-HfgVX+PTdM2I*F2FkD%5Svo+JgF zLU3;Hih(m9fzB>C+hb5je$3Fkc*U-G#nW-{EObx0`(xg#-4p|bdh zeS*&&X(2-(tNBsG@}kCO#Z1bGnVK30SY^b6e-F)r3nvDyrZG7Yccz6sk`Sti3SQ^t z@rsK~plK}7;ACfM{@d9Lr2_r6&hbA2eQl(2Yzf4GZxXpT6Z$FdE#zwU4B(p7a%8I$ zWZq1Wc{8De7O#sk3Ly>YZ%6oDGO1kQXqHTi`Tq#C89WNd?L)Tz1gRen3O>fS6`3Co zip-A(MdrJ=9NG0r!2Qo)24BzUpCEJ%2*{x&9!w~fd_?BjKq3GbIpIn#XN^#$LA{@G z7Y^J4jRhJzZUrsEO$rFIgPPtvmrZJj^TF8Sj`;mc>fyfbX|1KEKScY?vk zDxOJH>`NTIC*_{J#QU?NCglb`n&Pu6$Tx4Z>k-Euf$n0BZETM~mx)XnrK!`f;8iV* zeF^9EzLG2S_4~Ez-0a-&(V2eZ^TWnH5sQT8sraEgV#e%C1k)Y9EA;N1Ag37LR4@Ns zb07a;y?1v_qu1-tqF$|OK~wU=N9F~Od^Se$OeDzGkQWoj?~a%r?+pSSw|doEvlpCW z?HeD}cRuQHc&0<;Q_p{N{Od;&eMaYpkKC6q@!8CA`Ee8SV@B-4j@@Jos^$4DL+Xzov=H4_#QV^%G#LCtG;kr+^BKBJX6=E;ow=TR-*!~snF;S za`p$^eSbN3y1KJwSz6e={u?GmZnH}99iJaE?CB`Qi_wbLfGEXF;ffc+6i1mW*x39VUxq| z&x{|R6E|*ml+~_?X}Qt&X2sr>6F)6Cc3NHpq&6pTLyX(H4;C#gHq2?E9jj;X=hW<{ zE0&)+b9~eDd#6YEOp6PcvLn{&sq}HrWRKjFK6Y2;q#c>la?|h1Nu8FPa>tIOiMtZU z?ui?PjnCr6o@b51g_qeb^3g=p=Yj8nz=Iqd@bhM>XnHotLcGove5+ z0nVI1rTc93+W49C@+Q^%`bV4#=d8PU;>2T#;rGM`kIadKiv<{ymoOnaVM=D=q^!j8 z*~uee_538ot^}~~;X7g{W<}qd5;-$Ie3h5?D|1#B3wCv^vW=PENhzBsri?Qd@rGJn z2i5s^E{nPkpOy-ArC@BKMKpw^8MtIHBt*u41p3;@Ja|yZ%jh!jh))A?rANf=fK;F| za5ZWO3~vmXz7qQC z?*Afzmi62q$U12Z3VGbQP00LsP-K2QC^Fx@<;bp2LhlP4J)Zz17dCR}eohQXM-I6* z=0BB?juSwOF_n~9Lu;!k5dfJk)0kiH>(yT@&>+WP%m5mi!~E@lTO!cN>G5}DpxDjt zO`7%HB7rVZ^R<)!0)0>?oXXCtXl$V4{qNcvJA7}VVn_VcU0EQ|6Lutxf(mXf3Q;F{1aI5)?wnPPwo4nQFFCw$+l3=1x9&~5E7=FE zcO-bpo`jKmlg8{y91YUEFJAFvyyA((A^Va??M@rBGi!8i`sA#Xhf`u5!h?LaY=3g$ z>LdJu)70EA=dSH8u6XO*m-qTFdnn0$a)$4){9x38y#w_zy+1wd;k2OpGJMntp6deK zcWl^v)NvjNbQfa>0^Pyt8aTdO$HkwncKzw#5uc}b+#BtF zcdWDcqrS;nCi7W-g|3=capd38w=;0 zGZ@cP+Fxw>^BVN(Tcx0^Vl`bFv4wRyAk01zlXCdn2_eGgzSzK#vEHNe{hV0Yryi~o-?mdhlX#fd6X+s@?S51?Chzd?l0`2BYhu?@xC`R z?9TkyNjnopr$4yLHohvlpJ$I>X7+X2UnDs2bX)NSsl@+kQ{!TPf#HXvdPQy{C_!oEI7SU|iVb z9Vw%BCJ)=4JaQMhYDU8rcP5P5l{79t>5kk)VBF4R#goa3m*N%AMLeA4yTy0Q=W`x! zXIFICEGU_^{=&JX|mE*fS|Fc?yu5Vzna$F1jImlF=9)`x1ul ziL=@fb9YwMBWaP#1AShbx3W~QZ{pP*+{_EKx{c<{FRPjA1U=OB2j?ul8G#0S{*ORk z8<`&uip-k{{k)kVSKeC-t}gpSDo_iNt&Txec0YB-$h^4+*4%62Mv?X0z!3eFg2OGE zUXMWI&r8e9@WznoE1|FM-h@D(V7LL1ZSP-(%$o@^KOPh~Y}W-jx|RU(Wqv#;#EdOO zD!aD>*(FLK0xi{OK$bm%ELj2`o)3dVNK%0G)`R~AGk-8e2O14BT~49)=~8pQ5dZ`l zLO_lo+HDeOyr)E^p2>Z zyTcWGLxIux5##cr#^l9~$d6O(jZy3k8@AimCfU``ZQcF_tE#Cb^|p(?owMQlL&v@L zq}`X|K5loAVsDV*iBQE8VIy`&j@%V#?)V#_crsG)MD)cec}Ua|3!R?yLE=w-PyiVa{cbg3%)i+=$J} zT)&4>J?_u+zGqj^)NH>;()?{R10T%`cr_p!IQ!7w)m2^`+~!pN@VT_Dq&4 zdb>K&oyzonINkN(oj%icdEc?ycXE#BBRSsosorZswuEn3x^u4mdj{bUFBIvV_G`Ff zyR$w$_`Wf5yLFELLs|ZhWCzSl^RrI#o{`}>Bg5S`&7DbdH^zEy@!tIUs+Digb18lM zg?B!G-6g?;O7YQT1X-v0*`)c;%) zF`eN|`+05gbGuHQ{lYF{)67(_hq40i%MH0FC*aOp-zhsir{#M+lHq5a8ep3uN0}N3 zs8ad>W$TpVxjt-7?(&6SnPxXq_Lr1~7F()z#?0^ax}S80&PSlPNUHEa8(XV$I% zZ1JiR-tMxk@b^c!zduS}RH+&nTd>kfPSZtc+c?LAoa33W*osp}Rz~?cCx^~V_n)}O zWAu}5lXm+|%lExEH}Fr{{?jwP3<<8@@orh$SH11*be6YkV;q`iYAbAngA13O`0|5* zXR=)4eRPSw$`qeR(*qtz511D3H9bAVCN)Hp96}`l!I~7jr3Ri};WGX@4Ox?;PzZ#vFx{@~+xKL3~x z^144IY;<<`&|NW#JyAno#_Tlru6{90@r?h2nQrU+ z*1f%Wb(P&?wc_%_^Va@YQsnt$#+}KYqj!go*%>xAKf)?6a#C*e&vvJlNG8&`!dn4UNpcB9|`o4 zGkpcx(8BPotbl3bL<|X$(!wE{uZP|N>~0pgkO$)5QJ`fid}H+UWW?497&?#`e0)2*&o8hgcuLl1|p!U#}OiK)yoDwi5-FI}l`{cAu+Q>Cwo0q>mcTpuhuU0wlJExVu zfAw8tUc4rH)4drUqq4RsvbGIP-+pJR4{DRn@EVupH6|OTKIXx>f+wYhOiK=aIKfXF z>b7Cq`uOEbUbmb5vFP|5qwPL=xT*Nth&2D*ukXrx`-#N2pNQPQC-L29<6ha7{7i1< zi}^Wk?%w%g_LB)=`!}pTZ9l7pGhJZpF49P#n^+M9x=70w@@%yZJ=he^q{{UU$4rj@ z+_mGcU%vm+i+Q_0em?c}-AQlmOZxcvgtwpE@y648_CL4l!xvIt&UtG8&X;pzURkv8 z1vT^4vc*5W{mSWspJczdbLZ=O_rCX3*8cqLkDf^ScwfS&Per}6JLjY4UV8ueH=oFS zE70TJrSrbB*Pb?r<$AmKZB#Y6sV&DoPurcCx_?jd{wLC2eCE;`cut|JuHo z*LOv~nH&3NUdk&w(_h|=$$aSwC_gVDa$dZ`ju-RyKA-tyqW>F@E&s;gP^mGV*XYkP zVjD$QJ@W8*hHH7$_A+B?lGV|B9kt@`qss-zbyLvgLmG1diRSt z+0Ui#do}l&r_)}}j(#)T@59ZTKA*qjYn}5+rM}%-|LeoT-yUXvo58kGnkrshEUGFv zP2)^ev#s`|THg{J*$0~NEGuzbUTRqS)tr^T z7M}^-m;6xlhH2Seccyxv(Ik_7?n&~!H^~=$Ofdxw89pxEZ)}FoxD0Q&DyOEn-Ei3AR75bQdR9YaJ?d4vm5V>i$D>m-GnqZ-2WnftJd#CCEJZ zhUuryJ;;3bmLv1yYjf>J#rdveJo|G6Z&*cFrTvcgqHPiAjqy00yrW#90qrCz{sKzWY-k| z(!ojLbs+?6t8`r{SY(MeU;8g406B5r+X2}GhAhSTho2Z&)FaL20h^`LEQM$>STcAp zX@SOj1R-#rlEozJqFWe)v>QB|ynQI8K*L@`paJabutmV!frKhl*?h~BSt6*Y*a# z@HbEp`x`mlujPcixFht1-Tp7_^L}NY=j;1ipU((V(Xz^np#~{$>Y12i@(5Vrdpg=gTKw!^u zbP>xUj-`)EYci%7F{EoN<9CPzI?BR9D)8ji& zuR|U_$F>JlZ1ie0%<8n8UA=fk;rcDd-F**v1t0SWKCwOMv|G>#H(!YPrI#D*>}PK7 zUvBj}w%+xqy;F&xYf!Q6Hf*PoZx-yzW-mCpbj87Kp0Jg#+=35m4?g4?c*NE3u&eub z+uflIzi{*Ve7h%<l4&F5=3&-b@& zd4K)tFBUF5Y;Y{5wDn4^Rn2xVY$K&=pjC|;O%uho(7IOE)GRvH8s?l9W*sxkJ?gah z*t``-m#;m#X4COauBSF{17rTuWx==hE=P3^XBlI;#!#=)w8MhUYO|&;&J@}hy9$SS2Uo8AcsE6nAwW|vj&aXBY8z`nxN!6*T5{5ac)s{WJ?)17XM>cIaux0BP+qQk==Jvk3 z2k?QL`$w*BpKNu568Of=^IH$^uif20b>IHn`qeM2e(cRfi$8Oodra?G!0S;hF7juz z^a(wE)W9Co^JfLPGiV|IK&{^4jHBb{OBQz@`u6+E;@Hf1zbCW2Ufb>QCa}}{jXeL? za)VyV4ShZ@?Ae`R&+Z6&HaGh9-4L?v=_I!|(&OIWk(M8xzHadcCZ{T=#ifS%#}=;m z<*Sds`SSIUXA{>v9kuPv9M?B zZ)b1VpT7C^6xWxNvvPhAp0^YYWB0dzbpQVM zKi>M_3!Ouy)`;7cEkx$WgCg@_LOsi2um_WHV#XFC^Id{WZ3(iagMAp~`nZNbSI~SV zBLE=5@UsRD5TvgY4OP7##KrXgAZ|b8HQJ5QzoNvo8?HzCL#j&)!L=u>D6P-|Pz$(U z6{Ek_#X?pnV0fs`000VWY5hoW3-U6sfyPkv0~eU<3);E6{qvRRtRC`9A`Ey#fvA z*3|@B8ZJe4oe;>CMlKa}we*WdAYv+mh&WyyLa^6L*Oh`VdvX`(e_xOxRb&j=1V*|P z@&G?Eun2GK8UhVA{O=>sxDWJo33Q>J>;CYaKMsD;S#-F$_FQ{IS$j=IXJKK(siSQ* z1x@v5TkB4D)|~#ayx_;O;`5c2ot2fp)Ykr7QSwXm>E;h!`fkhPU$Io>bgJqh4M*|+saNfR359ZI#yqCys7kbL)n@3hN`C8 z@{Y#J%M}H!Z@qHD)BT{t!8#L z?NrLz!$yyCrh^z@m1tkV*_Sb< z63SGnGL$I|^|XD1#;(yu*E~~boym60WG-4W7j3m2wsuV_hZ@GdL^PZ*>5tg)r*w1$ zLtjvF-&?ciZTVVCds5VYV>EnWXM$6r##Y}k-Ow@9sZBYzo?2MJEhrS`o)euKoaZze zP0cjjqO@(awW-ypO5u@-LtnEmQu1fi{0WLb!iWbs@c^#_;JAOwY7f!+qpbcU54&%7 ziqjt!bO#+Azq5BZAs7lNzEa85+0u0sRl(6`wA3*Jeb~UC&}oZUV~yIbbB06Lbh}y` zu1sqvTD-LT)i=7&oNoI3;|rC=KXf%T))qF`o@uW-*;Rhxa>=P53s3)e_UsSm&bFO6 zbgAt0k5vU1%TIKc9qBspN%b>%XFaz;9-0N0I?lP&WpVeLZ~SrmtBVy!e!NiDQhlWU9oEO)c1^O~${Ug;Q z&{f+1tpa`3E*vtoCCDP&T7d?xOQ3;&D}jbO4p-d$A$6kVz*@Lg!k~1(Hw3vrV~3VX zvlJr1G6ogsD@)B>O`wqz_Z4UW{0-}Df24A32~sDN0`@EuXzb9^I8vnUD&>|5G^jI1 zCeX5c5J+L&Cdg5dK}OiH5F)$%k?Au0MB%+BlMHe`$&kwNEfHu7uQwv5GDspM8unVU zqKxYmXdIbD!!dCp*G`ATso_yy3u3(h_F&BaXo0Tg*>9%L{EXMVJ8$0pmB3VmmLnwoe67U+vAU8@ETqEI04$24l#WvIZQ?t}`g zfD@otzM@oT83qkkg2o)=%OTrpeb*!U&Ih%1Hu@4Z+*0{sf$OCBHkv!7QyJX5RHG#cni^^7u&bpfS1O);l5;%T+6 zM5(W`)^^f%kjV~K*UA~d`0E9SI$;(}JM{WiJzu9q-*~U$?CWU9HkIRfrNd8Z`yVvM zE=t>M9&HMZO~%=s<_!fVeX)+K;51bln`-6EDjVxkTiYUAx}3EuXPs*3SxwZecC|yN z%FwCg+tq9>WBz6V!vd8wqK4)m5L~2@*R~4!Hqp?=>svWpGb1)>bTyB1<+j?>toEc< zTP*6TS+PaMw5aJSmM#_OLM>e;GA#`Ey+-_-QuiCBZ`bK+joMnBSj`KNc!i3ov}P)% zQ+2j{y*1Nd%{0xVnr$?#N~%LccWT6TrCp=ise*GX(Agg|nT{KEaIk79_Ph;qaR%LP zi`tTl8O<41eVWk}QmQ73g|(pcIyk3RaZZEQrAF&qqqD0Q#YR@sq?*}cJEKKu-Jn)i z(=_@MKttDS=o*TyM17WMu<8=@Uj+I)0%l5CwvuOSdA>mq&_^p-wun{(B}!$bt!<5s zvO%e=*Qntkp`3*kS-1h3PZGOkYsaofoi9CN_v1|T-Ihk$P;Q!c(q;MQbC zAA5V*vUip({&3NPPv+16a_+)!W-b24Y1x;~%ieRC_x`N;pUqo*VBzAU%a@;7vgDl6 z{@hH>_bR(ztxe}25sL0tme|kv+IiM{3tT>4vgqKP#m8qYJvw{ok=e@*yDU5Cvf{fr zD-M|XX3o-Y<}5kjvhcfE^A0-C`ObOvF?*L1-GVy7sk2w0FVI4raBYD$;a3AKMD~v0 zppdr!Wz@6a&qs4N7xEB6PV7BJJto`K$z$wKg%P0nx34GXk|_6(5gR)#bM z9P+ObXcB=ymSXURfd9n;-N@3QP>lws0>?S1-H~-Tq;@zn_rV1Gg|9OJ~J@Qkj~o>1yfi*pX?=6uXMysH+!RC2{C?t%?}*_MM^r&ttA z1k^TDqhdkAT5PyB8@^2`G}&@B)^vp}T}rX#qPE6pYOr&t))~MRz)inb8!jnzZ5k~| zb0H7cI}5v9qNHF?>ltmG&RA?R6dA;No@=J*W}0ng`Bp*O#p?fTt^aMh_9A6yV09%T zU#aEKGeRrN9?{!;AnB350@ zTNi6>3fbv}jCCQSDh7e0wRMc4owdKj+5N!iV67h*;SwjD=X711shxLf6YM+e46SzB z7L%b>Z|W4CE(y-Rva|k1JN`|r|6Q&9Ma{!T+h`uD{0hbZ8V$QvEHD)u7_F+Bv8kbz z)f!E;hN))^O|(NZ<+tPTk@JYD>#7XGTz z{!WP(M7Bl8wCK1NozN_bO@h$E>(Cc%lr&IpLp9iHnv|M06%7K7a%E#|RXS9$j)hwL zGkViGtsYLKCMDlx!*$s*ki$BTt<*AAI<{WRw2EvSqwZvxE?(Cq+IQ-l+jLH?S_hDR z*qvszb&G0xt8#j?+NN29MlGyS(Ty4!<{JTXpA(>-R@E}9I$l%Dsq0vE6Gyf2OefEF zF?1Um>(I6qP}>0YDiw%0lvOj$)hn5LrBH7xHrnW#tW7O5?OSI!bWS&1d`Q{#;LIO5 zQ>8Tz*F}x<@)Nq*CyldDo1DRni}c1)t+9ePRWc5hlv4#Yt4!;1hBlqB6;9hQ@SIbv zWIEKsZ?x&>hxuP07XDB>{mMCaXr0P+rb2uB0@2vYI9<>3_jP*~N9)YgbI>1xq|0#jK8V$T2AU|dL zd-F)8S&G!20T5`QhKFk9-%Frn)jff@!F2&E5`pds=@n>Vz}Q1@NPmc^$bdyxEV(xj z1e(mFpAv`}gHz$=80^r*jEQlPXageCycw9woZni@A1=_ET8*ZX;|q+YvnKN& z`f5{=jrOz+cZ6jQ^3(}NU7)7QZP*eU@hD|Hp>`;{U+kFa2=Z4i>MD7vjJ2*8)aM-x zB`VtjiY{?*taO=IY3JB!H~a5em+x(~Eh=L*V}z6K9Lp9^nj)pDe5ShmQL11%e_Cxg z#M>PZjHmR*8aw-oqP|1Jmch=lLOI1%Dw(Ponwm$Ijnmc5GpWWIn);cV8f#6pji$zy z0#&M^*lL!q)f(!>D+1l2Mpai4$Cv2gUd)wPD=TIwYi%fqT+A{>w5m>J(_}NF-gX9< zQw;;AMPHghUwTB-@TjWXR$WM`%GB!inVJ?`&1q3{R8JMExf&b3!Io~dRdw0eT(-6S zUa7jQq|e*(t+qS}R;7|JSJEYFRS9KV%+4&=smgdw1w&V=*%~E^0Cw1-;>_)@8ZcTk zRkL7GZE8a^rEg%EdX8@9gf`Z2fw8+p*~5S}r>P_I$ft2AJ-4Yq3V;AR_j zs|^JSb}HE}HG4@TTvqcxsD#V5>}6{fisBbr?IktT@j{W7hi8}ujnHlbd&*X@T%ias zl|0)?A%Xsp7Jg#+-+1n4p1sU5pt;Q~1J6{IELYC3=-+2XsG(5`X!mWo3uqJkPt$dm zto4nwp^7t9@P=we-)f`noGD(^nA&N5r6?8{xYK(2tX5sZ*;Z-L(90caWjoDvuwo}` z>|hKXw7!$#yC@36+tfBK8e5R*Mw+cv36)B&My07$sq2&gYEA}VrdFk_)u?LJN&pH3 zo+8@SRJ*OZ*+vPMKsBeXVo?W`8iuZ?xMr2mZmaE_E}l2jF+*&z7VDI{3XQHxBb*n- z1{>?29B09WT)~){92Oq8;fr_^dgoXWsyH|&Q5%1aMyyups#S(2?d*Edu~F~X;V`Sy zWY@+CT{QnaJho|_zNd`eGY*#or)q1qg67Nh+ENzvFYnaoz>k}0c%n1bv&II-4rpSG zO_Ux^m{v*v;Gn|^P{;6f{2Zx3U!<=Hbh*$+p#T2X2cPR5z|>{Rdut(PEaSgdpl_c; z6JwTv?U@L45C47wEvxQt7_1O7yFd+df*x5)FFmb(peT|+DN+fR0*lDHB=Foo0xfkU zshFKHPr;)GOlm-I3b%x-Ij2lh2c@t2-h@E+k!A_fj9P+pXKn^^oMaF)zDeM~OC6eo z$h>(_WT!Yj%Wqhq@jSUE0TMxmG|r&>%LE$#Br&Ba!~FjRfo|5K{sZMEW0{>pgMN0C z;M_=?Dm20wmO9C+3K>;}T2&7MYQvwQ4QD93>KUdkdUi8ws^+=71v-R)Y%BNO14%_K{>Z-={Aw>@Nv!q_+QcJORdtEFr7%34v?$n&Tvk=8YXcxkk4vS%qFTHm77A}h7#zn=*S@*q-R5^xDL zX>=E6XfHjg?NS=x0x8gn#|_*GJ$;&2muXbBO6yKebCIVnirPy$(t~AX*80wwfVRy>gwn32Sg_ktj;a@^qDTJJBp{P( z7M(6SE^OfJf0?_qOJ~=m*LCSonRE!+4nfz(fiBw@-EUL!kgCF#Zs7P)?dJ>#>SocdQqBEeTfdO^w-5y*8b1Ft3JYT+1}=Jxks8Bn2OPbI)l2n21Fg<$Yn z(vY4Z=gi8B4HyIUJqG{$A1cu8Im~DKRDV)KbRI#UNu9QXEaoOYm*(hXmHEMmm zN?WPs%hXJ%1`V)qPNOVhG$1jcGL1HD^9-)VMrc%P%>u0hf&Nit_@PIj(Mf(nqdudd zKmpq{!g)&Qq6HACT1HbxTUXQ5OSqY5b=Jr2)F49=OKq(v5^It8R*o|4Qh1_MZrE+F~&;Dv7B-! zU=8OuT`{dIL*F(ML5SgimQ!2_!xb@XANw6&aMUVT8+cZ1chuHG$p|7myfvzHjW)X4hc%r_{sINi7if5p zPnmU-|E zBU9vSgNCL1Hxp>6;_-WaGNdo|Swg9(m#qaqA<%5A2B26lO2L8sk@+j(Y649H3D}OL z4hHIs0f8>=?N1_gq{6GbGX|;MDuKS@@qNQ(-b|2bDxt6LS|rfYW@^F}ftES6Y?T(#L}G_7HY&ZwC?C5RGq=O!QcQ@dz;Y!3f`i$ z{kzfeH%kALM&D}7H_&2(-cSQoyIKQI+`^ixPo9TuHBzc}Tjk~HsvjTGT$;`|Kgw1r z`7%}q(tOTFRbg%0K(i&ZSjrkuYb#@b@&U0f<&oc?W9cG+Lw%GPp1^M^OI_h690au%(-3QVrJXT9u|+qp4$+m7Hy^oN!`KIr1es zu9W8r1pchR7Ye9Z^arKs2O9%eW~EA~Q|cO&NT5-3CeJpBT(eGS)@j>~j;&gUX4bw@ zV{B9zS|BqTLp!anSF`mL*Q5b^22VABGQuG{&1lZ)nR9xoSWA@)6g*BqDZz>mr&%R5 z*)mNtxyI>SqqVkCqi+)JnvAAKgRa3KG--L*Vgtw5(P9;CsG>}j8apsi5Jc2!!i!Ki zkl`lAoClR1XmKMAMW?Of*jjVXglcqgnJQT$0G3(J80#2Q17p|1Ika((9h_4q?|hzf z266A8>|1C4nIe>SC4;UtC={hdhHILEy1zGA>+5X|bt=1Rq|SDwH00R?2e+DI(AdxV9)SkSyf8z&I9=PR zG{M70iD)R$qM8_G8R{|~h^j%gJbh}p01{~Y zQlnXuAU;UZHKvdhalBi_tq^FbI%BRP(0E`D+_ys#Nqd^tNw^}@(pG9I(l}CN`*zF0 zhtqP1Nz0H$lL1Fs1{{8X4DvE4rJQa+`pC2;^j@eILd;kOxy~&_wmN~Bw1vP8Za`|x zuYkxv?^gFZF^DqM(;&4V&`5LXp0O|?O%Ui>&QRY&&%L{f5h`iEg5t{6<{_N1K&#N} zbiD}R&`{;$aevNIJq^-0@t)x}!K5XWshN^TrXSK!uP$BO-PY9o&wq6P_;btCuYGEo zQ)tW7+1OOlkCyO{oD&``;AVmrRI_{|XGATjoC(3$)ltS;N>{DXmYciiz!a#UwPlo8 z$mmepFl%UF(MxsB9MS^xDjvnPX}C5O)2?Pw?@U@~V)wXQ)Wn&IosU#NlX!4&m^ zrO?OT@m`<~0H9*MqhUZC`~`T}5%f_T$S0(rM&or{X2wyGDRWXPf znu9_BzX!mZVe8du4)(D{C3L8T4jPT%(W*0c2)Zs_*MVNL)V6B0Eo!k5N)O!BOr2Vb z%0YuSZJwGl2IYYINt+K4qzUn1$KhENKT^WsgJOX)Z&mZ{G}lfu9jwsFX}fp>fXlxL zR-}2zZ4I0)a2=uNVJI1GIbiy>a8buzk(tO@m^q3wU5?0=w5muTZ9T7Q8R+Xc2wq+7Lgi%7Ky41%XyIr@TD zi~6zf;zdrlz_FmwT@2mMvS!H!tJZX}$_7!5hJxYwPKy6+rr54Aem8I49|u3}{^!N+ z|N6fBldrxp%`Mm3%ar%ppuS1B0=P~G1naEj5D%6ii$=h2@AU_y_SOKR49|Q0reMra zYxJK=>l#atRdcr-+=zDjDC5yfg#D+W9N14})9V6x4oGl6S?UisG@c>8WZ_h%b2kju zWthQ2PeNpxIw-xyYmjk9Fp_!V$>7WiJenQp6OFXG*P$g4F&AXpBS_;&!Mkz$z+IO6 z1IK1S$RU>@i#8x|$O-rigOk!iWZq1W`|+UkQ{-zS^Id}MIv*6->IB*SXi(rDHz4Sq z*blf@;6Ct$-@GTdSCPrXi#UNSD?jf2sE-! zi9lDVm^NBGPP2RFIQ~*m(Eb1Z=>GdZzJKG>FP&GMn!!{}pI)iDzl6E>H2>f!eg^6e z!RXOjO6C`p>KH=}WvI}IWh${m#TD4F=akG@C3jBEo>B8>Def#S7E*kfEmLhn*V-ak zY^1>LL~vI0|1zfoUBY>t z%|dA*hp=J?Z-RWn6!Hln5RS77B}TxT!^jE;?==Rsn$uzfJQVeA5jE1IJ|TP;&3Cdw z7bk+Ln@=rpcP-d6JQ3j|D=m}$Dfetz%>g)NeBSnYGfJU9(iEh?BDi?55kdh1aF_t} zG{v9?IXEE!*d2V0qbD3z0C|E7zlk?MvBOyerTsl;k1)5UgFRoM4Cgia4jQtgtY>U{ zpjC~G8fc=`tt<<=+|Hl@7R?V8s5?g+!!&EzW-WbzLw)OO?3hY>^bg5pR{NJ3`ty|C zp=FEydG^ch?vC!iwEptyoA0QN{}E_R9|^uu;IQ`SazA9%2SHlbSc0^UyB)}U_m%^? zJRmatAP_mW1mroE2{b{bOaz&p5o9`d!<;s&Ch=)3&=4ro)IlL~EMq`>z9P^)4&A36 z`hTZD-wgc)8Y4SL2Sn!068c;ZgCg_eL6Ke0w;b91$O5E;*k3_*f5hB?K%4KpS4^%< zgIZz1eR2N{uxE464X!`~Qvs&tQC)p?RFn<(Ei*85Nl6Ia{z(iw*O&1B%~LfK)B{z+$gl#m6s^OelVE$ zJ*x2X9Do7lVL31g@~eBgS7W&hyilul2QWLPknPlq?q;`mQ*+b=Bsn18SlSF65sHd z!UU&6wZ~+zVe`E~8?ZAC9KLpCfNsy#2gpSYqX$ngQx9n?k~d1@ts>eQmQXuXyTNrL zQ$W>L_G-$^r>?cN^g8?D{nb*Rxi}B!xHts>pLD$CXS$9lavIbB32};Sf7P~U7>0Fv zfI5BtSY;=pD{0DBG`wu?N&mNl`B06g0mv;p*=^qNFnwh^Sqh?hNsmMS+CW?#CrtrPU$yMZ`!_v=M6Hv&+BX4Ib2c=FQ(*D_X9ZLk{k46Q>@^yi=6CNBw;1 zApellb=a{mTYE&xvXm!_<0ci2~|_bmqlX3&iA{@+UbCy|IHa@+h&2%AeWMp>E)=Dg3Q-R;4maX1x2=#gIm zPhs37-9wdo!7ek-XJa1ypI@R_9@SB+IoNA2n=4ep8;@Dh^C9wl=vzH@aTYL1L|h>i z7vAh0MLwqr;s=iU2ROEeAm#+!b66C(>W;NV*muFsRZv3G(l3$2~)l$S!yqR4*1gUQ^(DHea(08 z%1=hzgKs|H*4*;}vpS=1ECLo*jag`ViD?UyDG; zKQP%`$sz*=P|%TPO+*UkII7=kKN4h^A|jVeo}OS5I)SJ}ckI!LbvXd)$-bN?w>j>g z;j4>HK}b-WZGXZz?}`sT%zqUvXEVKl>aRF4P1p^#0o7cak=0zYtp`9_rWTfr|IJb2 zTwpX+5U?2Oj~lXf3l+^9rl2LE*nC@OY&nFn(fLvP=S%_X(?f6iDU2w7GofjNn}jKx zVL7X@xV5+THvCBa z88D!t47F*mUUlCB>aceoNR4o z*xpJ#4_@k1z??2UJDurvkJ`Zo(FT5D0IGTcHp)XVwF>)!-KgVSa|uHItCUn|9@D1E z=-B%QU!`D$?$HDag+6*jNaNESp|m=5HYY@}DMC6clx7=(NMTyI+mZ+T^!hUc)iHKB z^wRIsv?85}U_I}7a;$c#9bP)ju3(j92gMV6?G}S(QbA?e{+ESidF^pe*(wn1XZ|>y9Gc7quSj&g6t`-4d=6ikA zx5c)2f0=W=F%S~;Cr@ie{P!H-cg4FJf`qT)rh+!vS{s>+v4v!}nRN4)1UZbnZD_o# z`%mMbFB(G$UNetJ!S1J;Zp2ftQxu_2xpj=uKXT++sbw7>_L;_&|`bloK4 zDqU$s?Jhhb|LfWHcQ;(7-O^_I9`$!&VP82M>?8@j-4Dk<>;`mbMx}A9&@PHd?!wU~ zlb*z(p+V{McepH_RO_lZCGd;&sa-U1Xi}$|y20Ub6y?+}hI76}Tk6G*dl1;H{o+i6 zq1E>#srejz`)D*C$BJb9dDWZ|DoejCBS@E%sfZSnA1R(wm{?kDE#ib}Dqqk42-cj} zwf}T#O#N2#-z)>qzKI)86RDx?5rRmHFJ{e4Il2c%)*i)}(ISCC`TN|l&~F1$&p$M1 zh6Wuxa7dRn2euV>EaIplB=?B5)^M_A0^7Y@X%ARe@zFYX|hu|nu2mVrGnkT3g(9FpJ{Gqp3rYzU>j8lHe~ zq!{e+oA`3fDJbhLhtj)mNPCL!;etRU>mq%DL*IG+&K04QiXFuyUIkz6j`G)bTDZk> zA+C5}R1hIj=ZrSQ&EyQqQ(A^^?Qp<+)SkrmQgd3yDV9|ug=nC=F-EO~1r<{!)6e7$ zE%T&hcRGH@FIV@n)h$-17rM{PUZ+amU5xj&++UVlUo5vQ->tvh%LM{kB$zHOnCqQu z70m@+j2rw=c!{|LNU0VhW83hUx_xBW!F&o^`KntacP~#~_VJR5O@;u6t~(voA!9l_ zNsLB1zMwSQ-w4NI?X0r*ClZI=t1(f++Jkd$okyi*EnDwGb8pBcY|RZHP?^+Q@f?XQ;!{HR;?QBEli%R3en^4{vjU9 zXruGYz^%YP6&H@N+XuuCvbclUFlD;^M-Z}lIQQ%u(+U^%i!Z_#y=DH3^=E(svHAsn zNQwXTc@T@KvIQF@zqksEMMFhZ%ngn0-fdM6pg@Y3)uxj8sFcp8kh zqQ+z~Pidz7|dy)eA@nJqi6x$)n|QaqKC6!EK3|LeKEKPA?_qQd*u` zW7&M5oku}gT3g`Z>6Qpw^&eyeP{zMdEq|Cr_F2F3T=wV8*AMV;aJK>SL^U9YJRq(o zixf-TaqYBNb#eil$xb`OpcbCICzoSsfhX`xD+Sy{9xaM}=A{E~D|lN5fwU>Pia z2GG-;rk^4)5#APGyxs#DAZl`B2#4=Q4^H8LU?h_GB0Hsu^o zBB2-FRWa;f=TOy{nnZCXZB-^qFyVM~$L^ZiDVhrS?-WFkMe_ z>_u7dHvE5}6?Zgv@oU@&#iCtU5wB)1nV1q46{8zd4IcGP@6FHT?o@WhRN)4OT`jG7EUH zwZBFv{ir^AMc}K5N|JDDQ911uoY$UX#WaZYx;Q8CV>Ba1z+1nM-Mdo*-x96FQ?j2)o_rLe2 zza9i1rH4FkJ?J>!yR&w`WB%hGGB9wbZm^y`t{beWa`~M7%F1T#H@Ygj?e>0m>%KK= zxpKZOWa-!WD(*D%w9DO5b-Y=uK~{ESne%Y2=Ek2r(zhn@wI+25@tE<=STB>RYEy1B z*7@Ung&+w1y)79y9(h_8I`PcUI}K58#D^xQ+z!+Rxu{rJG~H6@_JZTBmh6B~X+onZ zfK*kXdqY$zKg=S$5R1XZp`RCe;DGTVs{2zeYcm2I?el-ok*$V9FJ9*#BH$Oh_7qMC zI*uGpF=as)s|^ z`NrPskn`i)#lHKCPSkRkdytG z*S}L+&Hd{G?{^lNzu(?J59+u+No~Zw>tVzS1gFymYu8N)%@lq?&@rBgk zVXZ;W%?hcg?O~bV{kwt0#gLn++f?(Gkk*A;b^D7%-o=LuEs{>H49+b(T&)8mKB-?f z`NXDzw&(Zd&3!^{S7c=T4-T03@2@4@Z_dgM?{4PQJHB6@UTE#LHU%ngBrK@YIflf3 zI3SI^v)AsCxskhD-@3RKsazIqy>GX?CgYyIYw|k#9WlT^Y`m}qtNaI6s=6@)otq?L z_j3t#B7RS8%sx~5vAa{M!P4k`8(u6uK3>DvnGReKK*y`&@(_yr*2 zk6@PKp2w~u(yVTLc(14qDZ!Qx62cQL?g9VmKNv=v82fqis2N!;>!La_fgQ#?pgL&%;TUgPHVQl zTa9S=>hXIp;ssm>DHr<5vsqRwlv!%d>%5%3kF;<0;rd|5cblz5Zo}IapS?r|(bvbv zVh0Cr1s-Ff`qAbTR`*#cr-44b2Y+Vo{Q^dqM-Hx6e;3_1-$(3UyxzO>3%S@h@D4eX zy+|5qNen^oE&a+{6t-_MjcJwSYLRqq$#iZBkyyTMJZQZS$hppz@wz`Ns%TsaQr*zD zp*2Ef4qC6DDzA4nGNvz0tg%W+pvC`25LQ-* zL>INtQ8_}Q=Hsd_KYGyR|EeV~*;Px@-wD^{+e8Sy#@h*Ff#X-;*-Ci2y5+#t@ydUE z5%myDdO~NTNGJG(jr^#Ve0JM#llmoHkA*Gpkd019RUW$YqQ?%opNu`6J!<-&M{H`3 z#zBx@-Y013Se#%lRwVFnm-!C9TUoida9s*%3b?tt>@_zm zzjfTQULG;`37!fQxt`_4-C+MB-xfW$s4CB|A_QUpR#Fzm2qu}FBn0P)&uPoGXXp?JzYDB}NZ~Le;X;&~^J%Cx^u@581#^NC!Ae3P~@PMG|reEZQ-qpP$K13t=%w66Mi_ronp4OLw_0q zc^>BQ@QM(YK!#ZjCV`S_QhxE92G;L3tKh!rSvn^tWzDG@dF%G%o7sky?cXhL6N8^W z3=8TYBfI02xY_90T-K$$&-!xZ>^8Ujb>`1Sk?;NOpP>7*t6CtWMY&bT6>#X}Aa6F*I8-P-0M*s+9DV@SA==i&6wAF*UQAP;> zzyt^_GyqJG0USWFhdj{Yuep7CnkXL-L5Ba_Pc(7Yk4z=|t@?4zHY()HtMGe#SmAOI zIY<<}L%r!FYdD-o)}JGaFRX$Z`R0JKK&9ea;s&WJ4$-9V(GhuxKY1C7f;-uvr#P#1 zhw=n=UDEZ0CL;n`wft8avj(%j&dr~7>&1`AEFRv}zTj`4x$J&>HX@^cy}PtsbnJX? zJH7YQWg%(w>zB#&^w}ifO~zEprv-{sG$Zvq71JU){VX}fC^@ac2E(h3M@D-qhI{Mt zRglfED{K?J`OGHkZGHnLr;_XZ`&q5U*5_d&%BeKTZ7lEtXbspK}_8w7g5g-1Eg|wohvW+D= z?rrpxV8?sBOe{|vXB<f_TF4@X zod?s{zz6r5u(7)FwyeEV2w`i4#_9)D*odkkjzBxx$6w(2dTVIAClO*s`$sLkQrZe#u}a3fM4)r;lo4>c`Bu&C|J`1`;mH(4H{aK!cVR0?^V`^2r`_k2C&@QOMr{4mC{|pwKPn!B!U$y3r5&06ohs zjZjbOO=1P;2&L`#pudq-@Wqof@AU6@evo6_oH%Y~U6vm+XBCIboanWu4I3c{xG9+K z2We9V+?@aK$e`mI`U@9l?%jwYHdCrY=Z7t@us%x8EUQu^&Maw7h+EoB?1}((g;T9m zteqZJt><}`wUT+w#8u;aC0BY4xA&8G516&M|2RtEH@kNE?cWt|$#GMkNZ-94GL0+# zJ;n|Z3G4Pz$)LQqH%e9ak+qU#+1?5=JH=Cf(l*~^`AYPP1B))#wP8UB2OdE^9<23) z8p0OBQ6o;;ZxEQnBU&K@K1@)tR-V$am)si{Rnybvs53M-&x~c)|1PAe$ATYJ1rO(1 zDQE)sp1O2@$EVmW=?Jua)OSEu($B(PGrwfH+j-J?Zn1+3t&%9&WubRSkAT~}6m-#g zE0#}Y(bbj#zZlFkH~%plgUC9?`$Sa)|Huj`d_1oOGzvmd@=jG9Mjjv)P?2h(7-Juz zzkllqClY4+1PfF4Yf|;6v~ieOdklQq(TG6WtoY~$aWIC(0?`|l#=+CQP|nCK$w+z4 zSG`nvO+{&Uf!^nM&-gi;lq9>sgZS8Tx~ff_Qk(OWz;<$fuODW60L+^e+D-k*Zl(PYgtUq0rho0G zx@|m_w6>%6?eh(>js;jHoKxfwDcvlM4VW2X2G-75KHG7wg>|Rm{%389_V7j60h1u+ zXGD>?@e4%KBo)QgOVRK*^%9!E{xy9c1prYbklW>U)63>dNeo|gQ~Z|$dta@P!27p` zCVrqU-WJ9sUs!@uf~}t9FSN3(i7FruWY137N<4)x5!b9rKzqJ|w!$+`3AB9LNqECWW!($gx~L z(bLbB1)m%PcAF`_y{?s(RU^v0uw8#H2t7YitU9t7n(MQ*QQk82HUf6@M+42!IE z_3CUCx%#2D=UL#P7D3-3yBz!JT~c|4Q3<~e-Oq{MH=nCD9E+=jUvkCk+c|wMlrU9j z8>>)q<;nB%*a)L6p>mtLwB8EK(N$^*_T z17hlbbHzy`*Lo-{I-u$(ZLugZ^1#O~;8sp3wS&|-BdKz1K--Cv1*PIL{cbG4cgbe4 z_w<>3D98$JOHZ>JX<29dSmMR0pcKKT3M%3hR>5MHBwl*-v0y3AtRB+xRSxFxOnPW$ z)3W#G55=3poMaNwz|6!17_{MmK;U4(eWhQp2tn60ggJVWgSc|Pd1D67Xuxp ze^C0il2lx;)52F@p;rKrmo;`(L_bnPk3bhMh4sWP3>?&ziMF3TBLMuz z_lkaF-t;Vg{__yO?#ZjI4wh>B^#8=aO=k~muxtCnJUc@V2dRA=dZqBKh)61O?c;(t zCOa-;>BmGUU%a7h;t~+Bc_SYVH*|bYPd#r@x`nR#!nF?mr;&Thr?`R6`q75b)8UfU z4cHq#-rX{vxd~b4R^a$#-YB}(wXEbz?ar@V#0gJsxS)?t?@8SjIHE~q9`vQ`kqfEt z$D>}SuF&=@R{HIF2M#_M+cs8}Jt}2mM}TqrGf0xJoK#hKmYEf8lwnCI19B|jh73G0 zU?r!5x4g^{q;c5NRSzY`^mIv8DTJ+o_SX6T1eKIZ!a z59Un}q$TM=C_DZ5cwGEfn?XGK!b=VLwE2!Bx+n7z8Y{?^@$jC516SQc*0R;hS*&5u zj4{@62tdF&|BGXi0rE1%XkUHFx?|02gU3E}SoBwm1r@Zz=?;bQUs>%U4(R%bzMB;- z&A2`LIz1P}FLpC1cBdwJt1{HyGrT`BT#^^}C~S44w|TkNCv{?OAZ{OA>Z&;6hYdZk z1Gf{pF*hAvhpS(&v*7YzFOyuc0S!xu(7HJkJ@&1td%*(1f)G@JII#e;q7*i70`}d}43r2k{ zXSGk;R>G!Tvxe0P^`GR!=g?&~rmp(sB8ej0%;l3a2IDVDHO}7Zn3!LU57UD8`%a6&{x%kMtpB znTg4kn&ax|^*bmlR<+T0iBN89;tHr|#^bPE`;g8k@^!a%=}0^g)g4J;2@i*|59A59 zDuuwL;%G+^TPhGUB6?mYp#G9#1Xy3e%k{`DYLn)^VmmV-)@<(ka7_Tyr0ZkpG%@3m zdcmT@9y<1KAl^dWJgb z>>s=0m4kf`vJEe3A0#QBc+{K)GiPSKpT^4W6&qrpahO^Dde1lb$V`P>ETC?EM(wM> zk8Ua4?xE#ZyW`iz>B1t%bHL6iCY>e{SXfsF9IWEc!^(4BxEAMlMTk(n%6AQ*yn4qr z(71`|&ZqYWJ^Vrp%w-N6fO+$;Czv?u4^=V{;0Ap`}V^HD@@?VtwtVMtehudWrJT_|6=6V#VUG73P(g3`GAmdhlt?;>b>~44dT{lb)oery$gR)AzOT_D4Ua)d&V@-o zFGha(Bw6=qh7*J>A$*dqcs0ICCku)T^dbLzru%0+tmbE@{+kS3ge&KWXazP7?tq)NYp3g*L4t?MBOF z*U7i2;&A49{Rlp?yp7g~W{L8PK}=|et>cRc8gUZBlv7?HL`H9_e=j9asvK0!BSg}N z2r`*{UX>}Qgdg+J3mhV`#JjdIFaj}h{x*u4(te8(;IZWK5&MC|7~PFW;UJZWeWXh) zCV)F=wEa^M+6_^nXy!*2dR-J4|0Ah*9EtMUJb3UJ%~~wf%Y(LJW2++!K*jf=y5Q(M zs!ur%PE)x#B}e9TSkIZ!xdFJm{--#s| zUn=mRhj^xCi5|k{2Ix6(k@GPlQHyYZvSF~+)k)2w9*1QG zH-}_sW;Vd&uTad{cct|{}LjuQlG;h0ayWw z&0poStsF7&@nHlG79?lH6XS-(c|+oed1?L$4=}|P(_6@(sl5fYJX^WD+`TW+i_H)Z zQjH0oc5Umk^xW<8`#L-{5uJ^WjD_N`6jKUhoc*NV7+Z5_QmW#*Ko5&kC8TN@3yCN7 zkC2~Zq7;b;r0P3s$e#CeRt-ONAlBe^Z#~b;N%M0v_4&6u} zHwmifRZk2TBrGvIX4EKRk9FtfEzFO-D`+!*&C{kbphx(+RHnv36rPPUbWZ`dU>iUA z;z7Pin1MGAb}Zf5E5)`bKOoz_!--jVD3uW(x0GLZi2M+XpUSmV!p$J43@0lH3uSU! zA!xW5tHSB0P*o%JS;$o8YE6NDwupV^>%Bv^V0evvVVT}RN?3t^C1erg8GjXB#*r67 zSTM~PAiI{_%2K(I^8U zL`+s{0S(SBxQ*MH%cAtAP3voqT1>oo%!1|f3&herOSY&g8|Bh)Ks8_XF2Gx-oqn3a z!D>VW2!0d}E<0}mUUZP51}sLNDpcdW78^dIWkgVsgpvW;lwEW_PCmm2AfS8qAb=B-Ow>xtj|Ew7dvclQMv|-n-28V#d#=vOy$h*+i=ydNtZKv6}>8) zt@>vio7J_;Gy;NT!2BMVJjmvrgW6JD`M>jn( zp$`^9!raNEdC{U;Z2ZI;GK!rTc6&MujvzDrr#m}#A!{O*Qd9id3Px3;{XKXJNthJF z`(Vxm6PsCRf9+^2&m1qF^L{--h{SiLI0ph-6931T6-{eZOv7p#q@AA{u6R1ns`R(S z|9kIezpo9$rP>7T#5zwXr@*;{$^SCG24+idY$k6}ZU5TQ&Axlyq_GOBE*V_tp)|7H-935D`>CuQNOnr zV*OE$6C@^)E+NnQKM!p$$X7~Zi-9>)L0z^{ERcX?Ss=O`vfp61|9yJ5TgUaz2}1%fOb2(N_15_aOxalWz1mfP z&`JuyseaS`^9(3l@JV<7yHxb@poiZ*DFfglR2H1ve{(#=I-l~SU$?2gzu|0oSa_E% z+sp>H?V(D}gQIA;VKwWP1Ca&E=fcpWp9N1aLyOOCG67NDxp}xoMnQjD`hWi_(}*$& z1}bB3|AD_3Cug{Ma5&%Ff?q)0uq`CJ!Mr3-W6^*A9W#}n#6e0Hh3t})%>qbtkF{-o zT?%yPN{S;Uuk5@^96tROt^aUo5~`cRngENM*|U; zia+jYRB*3CajAX;mANwqZJ#+~%VCkipkpBw1(?_6YqvrawMp;rdT#U@>SP{wzhKpC znMb(9PAfG4$ZGiK{=C);G?5T&MSo>A7P{*I$mCz(JK@hQ=ubBNUOVeu zS5Xsm*5^tC081geJ|sG*54n2A%V?>fk*!E91JxBzdGm=H|M4MCsUs7|Icv%qpw?4XhHc=Q#PV2@JdVeOXeW>g;f{{ zTVrP)(M7N|q}x;Dd)QhweX(||u*j1YXiOYA4psHC|!cu|R)#Z~1^ zJeYUKus*^{fvB*-DS^CxfwC<+LUlG&5Pei7N^(sI?dxgs&$qSud;J1_^crFW!|F*Z zz?ce@(7Q!~c8EgX_d_4pz)8Zo2tLC8)e;X1^3}GPLNsZArCai-q=8V!|VheAF?Ms3hZ{wz&@0E&Qd`lU?<*Y$CI}~ zERuaHw#GPw?V)K(nh$Ly#e?urA|+t$+NwBoYYA_Yk&;w{$*pAPi=d>%?!y+3#)x^o zO*Rc#AIk?cn?m&Kj6>AV96F$a3dw}9**dBk7EU9SfOMnZ$zn&?{-0vP3Igq4QdeaJ z@L#6*n&;~XVqzROcS`rK^rR%bg5<|sH1Zi&`Jr%1&!iV!yl|o`t*#FYkdr36Hi0fK z=p!i~{+=#f(iJiG*K;9rA+gh6Nz+KN=zUH9Fn?iAd(C@Sp7EMQOdr3W$Z;Yh9N$Yz z)Zr}~47U>E_!C)ZO|VJ)o$pFo_cg=pI{x1?NxD$L(9urL95}~jJt%0?$Upd>7)k^W z2uzh@?dK2)$uZbQi#=C;rD?wWh|2g3kj=6|1)7+u42|$PaLQPP=!hFq?{eehuc9t4 zo-isGnudqf(~hV^OlT0rsKG>nnWxv-gfWYgx>rtn&}TRIc-<)RHou!>KP=#-s;H?@ JA!iZxzW_(+v~vIe literal 0 HcmV?d00001 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 + + + + + +

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 yZg@JDgY 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 JA!iZxzW_(+v~vIe literal 0 HcmV?d00001 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 + + + + + +

o$bVDVj3aO$gO`{S7Q!;PLx5ybBn`We|1VD}9Obeu2d%{|cTc5zHy( zzFUcaXhq!ObgXwc*4gb_ZMH;7!3pdFnx-Tado|Hu5BsxUDej(ons&3;u~m_?_pw{KyAD z)wLrjYkYd_-=;t2^PRtC%_Ga&V>*QBwXpcWOYyD@fhiA6zf2z8TnV9&H-z@6B31LH)JpcW!yyn5f zPa4$|lz4&{j|kjhg*zw%Knurt<)~n5W0f*9TfhP<-xi>G4?r^*pz$dActp@d?a}R% z0#I2PstUbUE~0w!N==We4c#uf1Fkd;YEFA%jJ$kf1^kL-EZV0 z0g?B1d&m}aZ$iw#E5~2FyvuR2yw8P_K0lTOTrZ<;R0vlq*o$SRQ^max6?NNR)*D@Z zyFB@=V7|xw_dML!r1loXd(Fh%fl^oFz<_`k9=*$H3pAxHf9%HhgDy08|M4b3->CKi zv?V3<5qNunfIa=P5*5wJ4AG#nK8_~sI?ylb|v@H+t-0HunS zVG8!HloE?6A)mkj%`hzho}+Na0I2?91t1SV8NCCRe#G0JMkiGYQiUh!EC{N9T^P1J z?m;JkXX4^1FwpD5eg^1ctJlO~fF^5cbBVwgNpcNqt)o<&M~uVv8ZN{|i4BC*Y{uzz z^HeTRWtusDr-|F%Pt0N*>)(ARy(H`T#nXf4POvSVCa;*GEyJ=c#j-E?S@5rQ8J4;n zYrul<-umvn=}(MI1y|<twkDiFfY8FZX zG-bX@0<6I!_SKU@11Z##c%QYD1{ht%Fm8dXBe{A3cOgjAg4arR_j{kA>iW3Ho|)&% zY_&(8+O!Up<~NUdt}sBtV-S*1IPvi2)r0^K8h2yD!^>GqIBTY4PwpRuDvA%ynGjcF)!=0{veq`vzLR%0k}8}A>g@}va&O$Y=Em4ul2D*~K5u)`$YB?WR$(hS(O9f-A0rHDi+!_khNmE*rjr|EiOGLi-lA%&th(QMLt?`722446ALZ0_XYs}}~%pB%P) zR>bPLwk1}V9KDKDW+mk+;_3Tq{Cu_{wAwmIw zh6~pL8kZ<26=ncvxg$U~6Ck#h#(Y`p0qD%|n*eb8Pi{VwSPI^HU9 z`9RF11DUOXduLE>Un_ph9r7MMpkof%7Sng7W;> zI@(^?kH*aq9GfDu2_n=}I4Nh5kt!o_kC#N6O%o)r5_v{*5@Ae}*%X1z5V%57$}pOX zWew-}6D^gRvr-HyCe^$^DcdaOYnC*TDYA&g3Y){4@>wzuXHViQC1(+3&8I9Gq>#?z zv2_8Ub7}u((z=rjEi;KJ24j-UB-_Pkg^d<~7?oVw;+7(7`H(VNsZp%us+hwW3c>N9 z{BvY3)2eOdgblpB#bV#4T9PCs3oJZ^JG~T;Vm2kEuxc`^W;6IRCa`EKkLfv4#8bUr zM;2f`$>&l6tbntq2{M)ki*K~_qM{IOW!d-dsouczKj1QKwHl!hVxuc z#26ZB>SRppyu@`6PJPU0vhc{%hoV+KvaHN;@ciekjh}t;^^?MDi+X-g*kwZb-zSy% zd|Tu*q52=+H9YiDKL1HP`^*PH&qb^)_^jc_8PR*ke4HKN_npr@3)MeQjtE=v;@*7) z?qMU3nY0rmPGfhR<4y|P2_C1hyFe-DY1;upslh#aL_NycBOI-vD^Cz|I8M({>lq~< zj|lp63v^ZR^>QB70YLY<+R*)yJK#cX@Tr>D7JoUQ&jWuBG%64KhyUFa^=D#~Pv7AW z@K611bH(dRGDCmBrpf7SU$gN$kiMX=kwYuDQ z-h9&9{r>y9cB6gC{tpCd{|w+CFshFRYW{)tNAG>$<&mcS# zT!uRq`~skH);Y#Q&pKy&MwxCu(9P5PZB=;&kI)A%0CoEH7V*CZ(3LFZW(YvEVp#!z zuBSB}pi6lk>iZf-ZlL5=5|197uZaa3TSrp+S<6n7mdQDjCXU~hl`v}BHzD&US(i+e zmQPogVp*49*%tpS_}8)&OId~$v0(hGlir*1+?Z6wSxcxcQ3flY&v2VX@nrlqbp9OL zad72`7uJT1LWR}9wM(5^E*`c6DtOPB-iiPmQ_u1ZG*=_Ym4X61lqkv=ptsjlKK|@h zT3cyz;1=k1faXgj4Q?{*p(8-+gXaM#fXBaaXcSNv+Prn8XvN7#Uw#E0-q||-^DI`a zC9Sm_P?`m|_!78+tdQhVi&COWjk2Yf;Ir(`W0NPK^1M|eqBf|GZO%|sQG~J+lP$Ik zf3niZyNx{V*G1zL!T`iYvQQ#%bqv=8988JWX)#&yg9n_g%tAjMNBa*}z4T7HiN_=4 zv2wMfU{DkAC09#g4U0F#nHF$gF%@r1TX1G#hHVgVe&t5VRw&pqEFl{tN5lJ{qa!DC zUwUhs9G)CD^yu1^s4%;7;OLybY#n2TI}kkl>tF;dyhRT-D8-h|V2D zt*x71e05sHVAQk|6_jjqgcY+E@W;RhYo*w7i7!^bL%{hWpyqB;prW$GFpO*R7wGVg zmXE(&OISCVZ705*g50i{5m8X*!8w<+T)kbc;te`LSF-k>0b1g=4jF=6)$k}+2RRZ= zRQ2FtsC9eAw_j&44A}5SfIkk8)>$i98#oPaV>2T)b7GAkK>^z$2$vQwM!R;Uz5ezh zHFT*p9OV_Ftn6Yrw4Sy%F=`n>mCAgn!q&5xp>bLA>=0($q`8HcDgvNh3_i3q7M(tY z_8cmC<^4RfeLEZ6z$?Wj!li0y3=7q5)wF3b!`IzWf5oNZq^EqLWD zukb*cc|m(7Y;JY(>pX=4{pdTY`rvz~i;OHf!9q3t8&jsOj11AA741TKwU*uXLX z3b&9T4&G~kyjuVok3_gy3M~+=Iza1utOGR2OU#|*rN%oH!0~ORe@D_e82n*=&v@4appt&XD;e19quW zaTHsF)1ARt!6Bup6=!gVQxz4cOu-sA3HB94Kxhg{PVbeG@nfgxPLqV9^=VP3@hIRXiz7H_Ac)%59r=j?W{}x z492kVR{^@Ce%{6J0B8jO`ZT4UU_y>__A@elj`c;1sf99M+`3_T+_DEIjPO}F;2-mt zM<+cza8aLi)lW6;9-opot^d1U`oA{6&sQ6|&P@BC32A?rkn_N#!Y&_eGQ9ew_UdDA zFB+3`Y}(f2A3UDG8y5BS`Q)BIEQ#=$*5A4ErCs|AYle^d-fTTdDQDUCfmF^h{CQHi zLMWF>+hMa(7r+8<&MKPD>fuTVFL~7e`1b#E;79=I`wRpA-i_$ir$=az@4N{S z2W#K|zG~Ffmcghs^h&jIt;&HKhoQQ07fN4tC4c?gehphY{)$)Vz{mem zu(@ZXhF<`*-UAG#g_LkBK*QyCItMQt-&Q(6gYAZSFx+^F$F}P8ou+u`zB>l!I;fC1 z4xkN>49wzT>e?u^o|6kTsaO+g&BT7*+G0{tL}%Hm6)TfB4;cS($owhVl4;_yY045T z%VI3+qMrr-!U`aHDOTA0@1CFf!Gu?yNVSE#Nh_`|1qmMFHc37dy#ZZ1ht6J3eEZ9# z!NXBj3Chb}?zH5~P^Uue&bvgRQW0IUsE_Il0F4Khp(2cywcV@NtjJ6OdJdmIb>Q+j0MOwpW`{1D>0B}`XvIujAWWEnGs88 zhA)~vXwlSB3n#oj`IG4{J+nD9qLQ}kHp_4ub$~9DC@33HFd9j~BlQjdI?oHxYdiq$ zrDt6_Lw8)#QJ7h8QsciAj?MTLd0UZT9_U%u?*(X(4$waz(ZjVM9XfB7*Ua9bI&JQi z_dwo5cUs|21XV_%EP`MLZUr8Np5&mgxoAconFwGM-IR@^`+Sz%+` zFMQ;B=j-u75g*FhWXZb85|YE%iUM(*F*y9$jJa50OIfmvB0VD|S#X;UBgF=gNsN*r z+ma-Ef?!V+9iUjj7AITcDZbP!@1%k&MduL!0RQw!L_t(`_^B;@q*f-#B?cvvN`l}> z*7|R=4BR$gY~FicC4BzflrfKgC@XU`TdFOhR0t{a7i$T%TDIh{RJO$C$!w)87n{gZ z69e^Kwt-0#wK+y|wu#w7D;boffKVzWdp5&^kuOx$JdVe`3urNw;J4A-5{{W^42+Y+ zB!VoIEI1=sU&3XUq2h4SwhAdIOR#NY@#x>n8EGjeEftjIlD3!;w#oK*Ba>lf;nmI- zg?!DDD_Go0|0e6OGASxo8?>3XFAJcf2{E3Ox0uyv%9^1D=URi(IXRhP(^(}=uqUhG zF>2&e+P1xijb%4gxn{e!9XpnbdC*cimr*;6o zg^GRjKX<5`(I+g-fUpJ8m$Nvw@>YO8PpFs7A?HcQ8A&+78!z)@9cR1{y<$cD+y^F) z@R=6wGuQd&W%h?>1#0t5vr3<7zP@>S+E-zpJ<;vCryqIq+k4(!e)oH;?t5$6Kc9HA z*EsIg6+@E0|2*~5myag}-S) zgbTRsS-eO{0MHjH+yY%~po@P6pbI2PZ-fSn273MlK$ieOTTwY+tMQtv_jR}Ll^Vmj z3g(A~!56o`GvhPnk^6lD3IASX@IwIux{-q)=@-$ZPyfFCqWbm@?eP%72O6IqqQtLy zttRswOw#VR4_3UnGv~E})sL?jKP*%+bnn`$TMuJjL-5_*!td=fwiolxBLUC)GNT^# z?RWnJKJUH$;Gwz^m$y4FxdTw60qFVn0< zwSBlU@TBoaH%}5YaI9fkh{u5N1RmTR5e<{sO`8te>e3PU*972*#bMj+X;f>k(!5JL zPH~0zD*#=^(E!lEF(ryx%h?(j3jj25YLz5ai87!`1FN>s7@&()sYC_iPVZoq>Oe78 zakiu<&5K(X@y*9Ub0?{brwU7_%8RkIMOc=FKMVea6+qGwte^$s$4&q6tGAv_3K@XI z%Yb7ze6ONqW%rgf=)y^K;d1qY)$=1ppp+bxm9-|wRwx4_inW4JEr|foFm2>T4A7o| zi`X) z0Pj(JL?p_|!vGx|vc~SfJYAf#zKk#kp83o6d zz?9=#1;8nByNHud=UPIb{%CvuQ&du3_S)N9`Jfmz{Pg-YC^06>65eVZP{-Tdf(B>~ zH?WnIwo`H=r@-MFNwwT0X0d9<;Gw9w`oQX?G1ka@C8E+ER&8@sYqn}ptKpP-R&C|2 zJ4MHK&f3CgO^n(I+w#EB8a&4o)lxF$D|BQBI(GC-a_abjgHeqe<>n_wMwM{ZMnc*_ z@@+H+SL710lLlAO!Ycp`#R23-qtP|}YjkFRo!?Avh?VVC$lWqt=}blO}xcP^g+3SNd4vJ@*!*P@yI7fv0vXu>N~ zKArOF3+p2WlrYvEgw#YaZkDQ)a2Ad_j)lvCQlS?Ny%Qn4`%o%cfysbYdFj^xx=^yg z+u{1zTB!>*ezI<-y<&^caoQYJ1zgc0_&&i=OcPzslCfP3hboU%-*4N zIKEZ79fljLtJAM{D5x?@Wi0Tn!5r0r7lfm3u)t4-rvUzQnSiCQPzi(=$mK^2D}4FY zgqL1k|M;`9FTS(&#rLL_g$>T8HSnwRXt7eWmP>dL zrBYhSr@%-zdhzwmZ@;tp zjaRmQ{MM%TUX1_vm2JfwOO8nCB^UbItGI}KI3-TZ7T8>Y$`WwkN|MZMRmE*8 z248SjbcX(gJPps@<=H$&XOK5iw-X9`|Gjgyvu+1^hK0Wh(6??0!VS+JfX4kF?*O1L z67o-mpdXEn(~@#XqECVACYw*iFI$>8`=0T`eCCeySvJaNw#YgVg zp7vQV?oSh=LYBY2Yi~*Iu*Z&?gHBVni=0IV=<~FAj*>1=${E(OgO%{-08Y*q)SH6& zb^%!EjnEwdI#KDm`#UoR=qd{;HzBw2dR6ZmwE;g?8?V-~M~i5*|H)nDPYew5>DANc z-UoY_xxu~t?0xz=eftjV*JrqI&k=pP4(i#((!Gm;G6#e@1ILb}o_vfLH_|jT+)p7M z==tzJ?zz8PKf=*1P`kUQ+>Lnr;lLOF(e0J)fp0(3GookjZUXNUx1Ra&;Ea-tbmEq6 zxR$j790RHX+BR}BTr9{#&lsTb_{$u!9iX9jw2{&-LT&|$WtC16!#;XLLMKkJ*& z+(}-0dx!GEZYSvg{eNU=;NuDz3x{d(_|SG2Z(M1UBd^u#D0~u zUlmIf^L#wTZE^%BKl}W?b?eU;^37h_WZswzQ~msHg_*J%o1eLC25cucH@Ep%eSA?Q^4@ zH7Gy#`0ORsV_r+5LJ|UHxZByHlqoWq5|J*Ol4UYcVWKqw4+HMxYfP34$(^xJ|5Yjw@jA!yV<$n8q zVR}1&{=qCGf5&x${e-OSQklJWDc!~$NM5@jdBI(u4f)f`m;bctIiK16eWt5_oFzUu zM&mX$(L%I5`-@OVYJER(Es-80^d)7Vw2csvvg(0y;zn69~uH|og~ zg}r~=u3p(cX4^7lVDMd!K6Dppu=;itjJ<=1fI)se`*(Rbv{&E3{^ZEsrUC!#&fL?> z{6JsBLwy6g^ff)&$NXq7>fxSDAI8~73caTvdrv>LpZ5GChL`?)-!t9%yms&X3P<_P z_)a)bH}p)SaHgyms%5U1k=Lu(e+|$a``-j;5X`jm@h|CF|4Em=LZ@H0xM` zEaH~{UG9m+Y+ua-&|VYlHOd|BawpXZ3ea;shZ!2^7OD`K0z-S}e>weCfOheW7ogp| zy^*y7Km(`NcpA9@prIxPYN?~e5=khPxb3Q?%18qSMGqRfv%ccZ#ZyDS``kL?J88ir zcF`nZ0hT-;OPTkx;9pn)#4p5B=6~CN_J?nN^77_E!^&xUn?c+MC_pPQl5{YA+m++H zTeGv!_T8&rdK2Xop`6@xRzNxh02;Heh-(^`h*7eM=HWin2x={FNs-h7PYZO-xaVV8 zD^7tIABPG{^CJhPG9myp4z$HdbK#ERP>@nPUdc@Hxii5cisK zBlHehIV^)}jM6 zOz{k>)zLE4Sf#VSyVzQJAZ8mncsTm&udcZ&ucxOc4IEO++kgq0X}*QwT3E3e90Nv$ z%^QqND1a7Z30)DIYnns+o$o}A6HjWp#A;m~8CZy&<3 zdw2TlZ_hHyuD3oxJ6gBTnwrJg+nAu%K-}Z7z$WI|dAG=KXZYQuyq&>K+Af^IhAkwh zbXIG8>myX{Ui$GzjfwF$DodlIqEcn0+~X>^Bx?f6gBNiqBmK>VGlJ$%i~wR@FcB2K za;9~`gy3b52WLteh#PF z+_fD;E$k4k8g%glI(-yfIfqUkuXy|2ZIYU%De;Uc*REu6d?go@X0~r}484|FjDEO! z?c7=P!*z7w5;zZ8-+ne%mg7Wg31h9H?JglKhEUgpM4|d7bnzm(;<-z}&}Yw}1G~`m zQwW_wSK$&4Uro;|cYIV|ZGJC6Um_$FX#LS-{a%w= ztV~;wmf%o#rEHs*wDQ5vNBc}0{f8-0|Cm4I!IeY*Iyb~;qWzI+qH|8~)r})t&c456 z@6#uCj=ZpE*zrAs_k90&*8Ue>jS1=fnfb1dZGGpx&}G`QfBGQ&(P@v}H|?=|zZ^Vh z!5as5mAQwGJ4%F}U>&DL8*uX}UOK^x$2jRIuk2MV6`GXJ)A@G*&^X&@XMmP(0<_KoAo8F82{Plp+}8`~hR+ z-~H?l(qVTS9e4XX9taG5*gxXozWuxT4((+c{$QZCguYH&;KZvk|vdF_%?XXCog^e+UlXBidbh`fOOD=F&zN<``q|*2U{|iFGWX=Z+QDd zR8)p?a#o6XSVuR-yIIZ?ULsTpo`zV8Ym{-%vpUh1E@>E`x7WBHdp4TZIs$YW-44)o ztOx)NEDIps5ui(0IX`&7jrmJ)TTV+O%FRT1nP|i6!hr*uP1YR-Tp)8arBK7kBKDZX zeFkBNs8;x!_Og~;T3CjtxnF%59omIlrh^trbg-cuv{<)(2?MKD6rqN-ajkZd9C~|JLhi za&Vmzp#wA&RJi<|W^u1k+(pQ{D5Wg`db=s+_%wg;tTqVz(Pm4~LyI52bs zPNi(3>v*kIb^!0{0Nnxr?O|v@VJIztj8%)KoNX+1&7FfzoXS}+?`nO`PZ{Y6{iDh} z01cPW%yO-)2mp%Vn^t!+$}S$m_hz%XX!57%;vwX&LAk{!w-hzDpna_iBW$TAcCQlL z0^R~ewhCkuM>jBzrkeoWN@9Rc8#W4+R-ydD=#Wqh(2+w>eQVQ%iCMqWiLjMZT7efO zC0~}eNzxBXm!ds;GTwZ5RnVa0vzMSfyR%<=IoT|?a=}d|TzE<>Vv&_^5HLUk@x#gB z02@)MSF|Et%(R8=`*td7*){)-Hye@@prTEA_Q@2x)g>vd3QVmDoRmK9i6h1N&(ED? zUpO&z`E=WY2`~cyZJGZa0JL+-6t6s^czU#WTF~NI!3(E{FP=1R)|X$r|Jvda!!u<^ zErny^;nl7dsTzT9V!@!*y;hzg1q7`+t#crM*VG z)30|du~ym_l|z!oy@1*Pg0Hsi*>UmgIdt_Z+{U5>lh;KJ zNYw1P{%oZ|u8~8cX*qiIW2mkgojDFfexaoyclO+dne*BfFK^9CJ9%LH4`+{H2j+`VCr{fy`QkjDIYXF@s!VFi)LP6nnNy;%vJtt@vY2~be zKS_(n!YnOzcDuutV0G+BNLmoT$#25*|C~Pdfr-Hney2V-$@0L|hC;X2~#{O~cV}G4E`XA#*-8bX$ z`@R@BVBu@6t+{oNJ-y3pJ7EdiOLHd#oQUH%C!FBqlcKgyQp*(~OJH%r4XEZh1&f!w z0G-DHH0#aJxCJ_oV*#L3)NcDHk)Axz3aT)oI^$2({ZK7=qs9aX`;)ud5AKK0*ZW>< z>wl!?mBn90n!EqgFF<_A&v|bj>s@}9y9xU}oc%6N{VUDh#R_**{5>Y=L4RA9zG2;a zM)mDJrdO|#5Bfzs%0%|yA|5hYAM~?!>*wg>Z|Udj|L!Xh`H3%G*!$8cw|cyw7jjd` zZT~5kK~=)_8uEs_?{!x%RAtryIyI~d_-aL-Acu|sUChZIEN<_UcPH|~?te&Lss`zZ z43!h8g+!AbEda9D-j%KM87;0~oXKi?`ZNp}>k z8U-d-l{Z8T!vm=RKwrLcV(q#lt5uJI);ke;W1#CeoM8Zj+v+^u%^PXBG_g_?TSOe> z8clK8AHH9`!)5#IwTPJ$Z8IkGb0$*rzhmcO33IT-*;vw?2_SLq1YsT)J0DA!_l;xz z=TCk4`r=Vz^5n3cChf3Ug`)t$9LbJ8x4&W2`0>|kn=TZTUd<~&g(aKpjuKI=qlG#T z__}1MZ^ULs0Gg~}MF8juQp{3qMW4Ne>dWe%d?}u_t+9DRIP!~g!w000e3fi-3tA(1 z9jpWZT_H08jrGpH4D)Ct?1Z6lo6jSX(g}%iSZW*uR&mI zC9Fn)*}*V}%=|&KxSO|ET0@se;*S|AC-O2s89mY!mw@&kcE9jiVn3pY5L@M-Mx(Hs zR`*a!tBHaAG;^>kAR7!ffOG&%xQQBYA;7$!wd|m@T2`wI8JKMg+9Ipx=FUTDStubJ zEnSDRT;*q%gbypD?KpQbE~^;CcN5Y+v#<*XB*?o=N*iO#qvWkN3))?WKb|I}qLe%o zlYqvL-#2(jDb1Fcsaj5I617I4PfmrSx6m>O2Z7LX6Dg+4O8LAA7aGgr-g+C=HSNz# zzfxa)HYOU!K(iKHoOrR3#|>j`qzLp39zu&54+OhiamI06@s!UnKsPm@m?X3*4mGu+ zJRSDp`sd zDb*U3^Tz8)eQ8@b(Xn{)&%_M#zZCp>Q&WSN&b7^-=2$fG@%iIF`|O>0qerD! zg5fHFbm7&mk!a6n4g6K4fyD{Pehr}Ex#LjF$SClpFhE~C2>`uT4l9CPF#^2%uo@I9 z>}R$+X}1wRDE^Z3JLKis|D!tEz>b0fdFSf1?VYFt?EatRiBxRw?5HpCJQS%`;A(iB zpB|RuhFIQF&N~WuN3Q6|R_r+zN1oMMqA38-)hu1YiP37v#Vtwb>@oDyg-ea~D@Ht( zV;SQTMwQFM)1}Ca!NXGq_0I}*7Fpy%{{R<=dI@O}W3XTP(`AIN zH0S279rfH=GC0}ak=9Smw1g*HY+&x(nsp~_sWnK+W^qesII1c_XMvKBqmw7UU$JJ> zsBv@bq0?w(vn8_Z*|$+;D>`=#ojC_Ic`h+=nZ=PJ+DjE@4vWbID(FfEk3dweXzN&W z!<-4%e>`;!>Y?Mu6JC66lVC0K3?~i_VFQJ;vsZEUOwl=yRd%gegRWjc*Uq4WZ8Qc{7UN$MEW|MVl4Wrz&F){i499rfxUzNI#-@r2^y3xu<0-VKcGHNc4HQ+$!Ruqm zG|=%D>)h}l)KcSV+di{BA?_P{@O;+3fV9sI8=g3R8ai_tUB7(cz)tY?;|33p4`Awy ze6xXa5yoQLoXIok9G^{VpfpiUkuZw_#p(21PU0B=XrSaQ5i483FbzvUfO&d{xAq3< zn=#X!mVh&?r^L|7_|Elj2IvAj(ge3tlmVd6^6EK8JSSU^s?q@`@1lL%M6JLX^?hpL z%CzKr-yimeiTxj#ZtXEw?LIH~!C6E8Hs!@XO?mddB|{&Y9cWqnz@#!$>y=^0&{G+0 z;UC4C>FGW0n(FT}hx1t#;j?z6&%#mvGwt!arablMuLnQ;&7cvh-#K!uI(N|EMzgY8 zw(OJSW1@6|UaNZeTJ8Nm)ONels9oLh?DmY8mwY$6YtMV{>C>-^nd_s3KEen2 z^y7T`(RZ=hpN#BXX6ZrF+JlVfYaHt5H>O|rr+RgLEP#6QuU*uCb`uPIn6H_;>z=>% z^ZonNWBZk4Ja@eHS#)IBk1gDVGT$2&CRC}R5*1ZRcLva&5RU)P189&=$zD*_)$u2N z2~=9RDdOgbLRbzf{2D-mexp|S4e8Yq5Ob%g2bXnd?l=`|1iBMIA78T;0J>uq4ghF9 z3kLu+MpciAuK_;5-IDYQKy*`Z=JFO%DVa7Ye@CTr;`>2U#w(M@bF(Lq^TsoCu=v?n z!YnKuqk*USxme6REOy@4)&*ZY{`H%)AA2m_65d8w51Db^008LkGq+vZ+pyuIPtO2} zx|>mXCCbj-V6}Aw=xXT~09_|qDhUkG#h+q;u6yD|0O+;Wc7VtZhUosu-yazt>tM_p)BAQXj0s1;z}s8 zN|JzU_cP8?vm8zEn78w(OwAMuDxCv0!Ew z%^o!K`w6i&kS(vgLLFogpc%xf8E8RYpJm@{QD-i`7+V|E`O1amkT`%NPvMaQ?UvmlAfGMLqnZ z(ZFnHWB}+yUda9WJ+!~R^6RhWh}M)5Ph45O9@Uj^9yzGo8nT18HJG_N!u&4)y0GLo z09tQ>_I4s{733-w4+R%3%g3fqM|<`hTD9iVhG?|+aOKCJF9sVc1=mTzZp~iCap1hw zdEz(Vh}Dwpl4X4PtWs~W6#+v>4n_qPsJvm#t8bUBT7eF1FZ$~JZNVxS0q`^m897?B z=X~;EVS3!qXKrT|CLY2scQB9E&D-g%`GKTF{a?>ins&@~8#he)#1( zGanzF;0VE`TEGBZ>xm1(Q8E7&fClOI=g!p;g8wh-XahS+C*wO;r_KMRbX)y@*KYuH zHOJsgovd6TItrEGG%YmN8oVtiJSI3i*%^{!4=S}-puE-cY>6mukQ|p2)6ms3=%+J3 zxGJ^`eWH>Z*3>6rhj~z5FDaQ(;zc1v%CHT89r1Zo8ap_UeQu+mOnris$Pj@3>25*=po-ko)x0>7*?;(3xo+T>I|lX!kB0w0-u>>CLfmBcEEOgl)1$CTNjabZD%vxJ3v` z4<499Hzs zh#NAZK(I9jvfKUfsEs*18KVlDG-b2m*s9oLG%Z1q( z%wYW*KqU)GHIpJkHIT!YUn+GkFL&w{u9wCv-*FMZ+<6Quh;_X}O7PADEXukzWK zH`wUUAL%;2`=6)u@mWClthD*8i13*+$Y=Uvch7m@(Ya4N@M*Af=3|FXRHhFeuwAjY zNYXxwdQ22fGu%Z|_|YuiFl!ghmR*EYW#WoxQI9&uF*KY6D&l2O0n395IRT633OE*M zJ4JnT@8kef7KB{t^$G&HscY2%H{9myHU8Htd;V1U2y%D3R^8)#S>ToW$ZO3n9j<p*0J=P{V$|d_q!s~m90KSJSFZ$&EfG-Fwrb`t0F4;5 zE0@Cx&^l-}u-v)gV_JZv;(O&9~p^6y53=PTG+H3H~NiO=QPGEQj0xjHqSFEAyt z+^FQ5m2#njkSROG4;ZjQt=i8>r#w92VZ2X0bJ^L&Ovw!nVhbc-f`i~&A~3}w0_aAP z>QFQ75TF(0C5GES#0PXXLU;1`d?M)R1ot1^UB4kgZ%m;ji(s_aG0jRIjeKJqM7Jsi z<=|R)xP%zWA$qpv5-7+HN?WU9%_=&NmlJt8$;~a!!|i*D-rGkJCp&_|9FUt);4`d{ zbAsUndQ8u<@N7VUZd0*nJec4c)qEu`WwCOihdZdqxw3Ej3BB`WT6eLpeVV<4nV>2J zsan=niy9b>RMA2$Bi7IYO1&j{ls`c7)fk)1@ueGLKwa6XVdGlYZ3i7~;OT>xXU-m=b zYMZZb+P)Q|vLu%>$+<+M&+oeS;Q4PR5I`3S0u&4zpzv zw>$Q2I%?pHNf!Q3HX|Lw`-t=Zp1$eR5U{grM1FX$)y1y|aY+zfw$Qc}w2 zjhD18`UzC48|}hW-CNUQ=aOshTsV66`|6r^ukODGPj6Nf z$B&tQ(oUEDXQ8C8u0r<7CAIKMs8thX-#X-C?70B%r^SijO)CJ`L3Lr)v>Ds`C{HMv zG?QDZ#*m6p@uX%QX{tML2IV5Ze+Zu6y?^5HX^r7BBPMdF!(tAHntVZk&K0HItg2{p z?5j5qUx9ZY0kj_8K_w(rMo`5BZKgE|f^j`1A%K1jN&6{is!SL)GMO=*{+7)dItiqv zS%U}A(wH=7!6pa(kWxC!8Iu`DGiET`%9sCu<@9C>zE)Q&s4A5z%dStlh{YMmm7MLl zd6U5P7VzjEC@G6@^hlny7N)Ldx=0HP$E}|(2&^I{|0W{5Y(s&!I?$p!QMD_{mTqpQ- zZaH`{>FjUjJJ~E3Z8oZGz9($<8vf_*0Gln-ZPv}OSu^5)uM7C&x`4i`eH5`KMWoO_ z0{c3`?%PfDZ#J?2v{myzzjLzL;%c+r?SE|c|KhvhUq^fYaWXYz{pi~rndYJX&4R9; zXRqnxTRi=cAYZ8IcM1V0yemsNLGx7JWX#z zA~qqBn+eqsNau;p|yL>l+D_EPh;M?<5=tt#tW+BAESfh*OZs`mDG2c9Qog4_4r95`^<&Epa)6^q6)1=pk!+f-J7 zMgRxt6S6ow2~`XS>A8VKBhWQC*U1{{G1P(%r59i1WmPP2aZmkG!Nw|K7H`wRNQ4}pCZ(F zMeM5N{Q;oi?#dbYiq5H?5=&IfDV4ftc^G)u*|uu!9?qEHItc7J0;)=n`+KHge1#Gf z5NyAg?r1iZW#c62)vjHr z`OEl;n_av>NhQe4J?iKJ0UC0DF3q888$232hd&>TWUM35T>vecIZYhRB@7*jdM=i? z-`R8O&cy_9trcXPKVgzA1lvStU;uE~*`@mI(H*CDIj;$0wnnqtVuWq6kfEimv6@XW zP=+nbp>$nBRK0aM#A|u$YR&dd{FXKBcd;H@BW6S_SUGXzNmutAQCG};0O-mO0F5S? zLeTtg1!ySi^REB%>as$A8zIB^*|J*rzpaqD{vfV|rMgh^zrDaamwFij=-pe5XeL}!+sn=S3q8l4 z$4uumUdKtvENSx9>M|7_=b$<}a}0P~{~TO<4{lyPbM&#h<^t zT6^lq9xuP6q&`pYlgQ~32;NM|^}NeWDEhR1y1HM}6{Hs{*?^dvXzt-@-S9|r;6!|Lxd55F!Q^Yeh{aVEVrS_Rp*P@b&lq~eb5TJix zXs(-~e+r=kh;+irx^@-<9=6{lKA73cE#|U!|BK+`t|F` zby2E~5%_u}Y8?{27Ridykf*5)Nccu1V&gJ?L-@d`h0CT)IOyS%&!RSOxh#83<{rkM z0If~OJx5*en*`eLfP0VLCS2arH3HoOpds*eVS!L7=>7uGWgh@~pRDf!=-g~KZwSz( zq8=gzWG|?0fJQ^nT>zcO3ONG;KuS8;vwuIqd}rrSHft)lURShmYBE8ih7^KWz@eZB z0xRU;a+1s?@hVx{q~cp?W0}tF-SX8SGc{rSm|Zw~L~8^Y2`|nby5wjwb2`-ZS}iu? zXq>Wy7YhXe?j3S4q-RvTj}=d{WY)?caHH3WfD4dEp`*$$=-cPc1clj|qlX<-;3u^P zP?`tI3RB(vQ&nh^83adoGT}*p;MLGoR1Pv$6R(5(oyE#o{(hj!+_`Q2X;PD^5G@QE za<1X!T0sNR86uPgqf1mI1ZXR4A%^ZEY4|fi-%}pD3^X;Q3>bIPWiY6&0goTNJbo(4 z(W@9k0Bx4ILh(Zi2jn~pC!?x-YPt;PFOYQkilyLAN8{4y?RM-r!5wVf3(8B*1o-Cj zhI(2H_f<|4RU86nNE;QT(OSl?hQxCi`iyTEK1yR&u4XI> z0>+9KPOw(tc)fc!Xl;c69Z3q{ViKsUPZ%*WiP7gP1v7?-8I@2J(C{;4=t>4nr>pIn zw3kJTalBl&Gy+_`{dCLGZL;^S5o1uqQeAM~!&s)IT5(M_r#m^ouPHAv^56#Jx-fd% zj{vmp2f=lDGm^L^M%=to+PZ<+yq5fKxoPXt$&vG8r;a`0;h7<7i+BXk6%1KTlki9U zKMBykNFPJ+e?>hkVYj-h)90$kd;dfI4FUQm`~{j7T}rWaDya%LWQcCNUA*QD@eUZ{ z<1@~C>~N3e9BCQs>_{Fr_>4qb+?;ClI(U!6>!AwQHj$=Q$uq%$-AD44bt^ze4S0SXrT^Z!0fTl> zR$Kes{^N6l*SLBdbJicj912aYyD)Xe#s~mz-UqkefV+j8*X?EX7uA}4(fOhvq!^`K ziO%H2OM>@K*CE#{3*WxE4qjXV4aNCG2BV^BJewx4c^p?nFcu|K#7TQ8rDc5#c=i~) z1>nZr_=z))urj=ob6C>Ms0(RTK858nJOXG!Y~FhaJbwjVKL>Z(b`2YFN^;tx6e?G* z0k7^p1$Q65?Yy)qVjV5Ssf0YiDS;OfWj>z4QYaz^6BBx?Pxp7Ypj1M~UB-%8BzIC2 zcZ~3VTVH~5KdxR+o-}ti@4Q!beRT8`c=;SWe+;f&&z&~=gpx^AGHJZ-q#*D2_jyy8 z30|P8Casq)ZXY&!v+TOxIpFY!sny#LfCtaPjoVjGojx#P*moS8gW-#&g^KcIeVmdci6d@ z2?v75?hl@IG<@mth{zK$At%<(JHBrE@ijBzR?m!IF(WZ@>cybRr{_&SzIf*0=sAZr z%|Etne%!iQ=fftR8#nXlkex?EN>cVbs!OPdnOADBdZy-I==4nv{qFF@J&Jflkk4@L z1);q|=pb95;b)vnC%7LN8UgeV`YC|^79}4S>t2}I*JaF;68l#beP3C6fm-@qwgbqb zL7@f|(U7M>klf%J~an6URZcEYRvq>PTmaeNMNkOR^{+#75;CG z_TRLg|K>H|H|v(VB}nFp@=KPbhY7CC@A29&Bmg$k70f#Pr87kv#NvX|Jt z%(s14Lj6Ag&>v&;&l<#^1n3M5gUj5mEDrd6y8*h#6ULucDb2&fu+|Uhq3+g+e=RB> zS6pW4&j;vg0`6Q zW!O3-axD_I2FZ%ikf+J@NZ1A>e8W~$j$`^kH+g9&&ay6>61ZQSzgGriws>z3&p%x#Bya6T|=V*;8L0_BFQ>Y zTW3$#5SnC0dJr26ECnZr4?d@Nz3kx!@-o4>qz9D*0* z;AR319>WXiC`Z&C-T)r9HqKvs2-hF*7z_%EL4J0^@Il8|Ay;FnpmdE8!5!F-0lN4H zfQIx8Re>|r1lLN+)k+4n8DserjeH|`9w^C488+}3L7mj<<8) zn|suR0J_|30H{R(olKJ509{C;hU8_0P^O~GRaBXpfB>D!vU`=v$6L2TfIdEM;%Y|Q zvT_3`D=i3Ka8|{a;kqh9EMs`D?^`hh-9v;-2krNyA}EUCY9qB zPk&HT4w}m|hxu9hW9=$Ag%r+>8qrXiHhtSt&H7McYZPQ?ert@d1%Wam=8e(X9|YH- zq)pMn=4gKN3V!oCddph%cd_~{OD9CnkDW38sJB;&q%k9aMg?AKD54vnE&uNVbPr3| zEtJajOVs1-KQCx+KRn<2o2uJc6f&rV3MBPLg{E5Vlqz{`_VgVw#!sH+E6nltne4aB z&+C}MJ&!h(;~Hq>(>UoEZg_U!40!SA#p@ey!2ny_E# z0MQohOGP!XnqoVwNI_Llp2Q;O4-4$yLn2XIBjnrQI&F?a<)=iS8dGmbKHh9qZl zcpj(BXB64AGKXX1d3iI=x9&QKs!hK_0R8g4IVwexozJC(e11)o54AsVzfv62ENPBLF3c#R5#UEpFZ7s=)}E* z6mab-c=P~Vzf-Ta0s|3&yH+u*@-hBoQor6kpe`}iyVJm;4kn9M>7fDtU|J;L4OL+A9@!4(0&C9{k1D4x*Lu^ zM}K30PRDTw&Sps9f=3pE*`&f?(EIe@%K+(es(6| z)%p0>32`qH4nMrG>rUMEd&j@OcX(UvszvE8+KxZ>2cp|6in*q?zsq5_SnL)<-e$Pl zoVHoe=SWfl%chVVWM}}MKw-Zqc#1O#7KT$lh=IzcSfs9UBAFx^FMrXv@@rrgL9yXk z0spd$g8==qy!R{1H=vFK1vJRggIq^|s>^)~D*xei$=|;%rrwm8UR#7WRm}S)4s_^W zHM!lZ^uJLwp&@;;`ONs#V?$C;`? zUAVAj2?XfSnNxQ84@{K|MT`hd?NJT)uSH*zVsv{!?9l-eW zk_lW+1c&!sxL#c{cJc+r zc?+e#y<;C}u1}dV_J|;6X&o(;wm~H{*)y#e2LT!#zz2Zt$_D8IXn1nqS8Kq9N(ZV^ z(7-_Y5=UQOG!JAaB?S1KlQgG|#y6MG!k6bwUYWG9@*{w*fq?-$Z}7NwZi>y7mSn%H+vg`2|`fR@_! z;E2PvVzzD|`2HBMSWbDkrYc$ZUU>E_JXOyB2ta3YbR25sjR5+HlPU2BfUfumpy9pw zF+f-0Y>~YZ-i9d*v(wJ*-i8gJrRC(&=r`am#-6qo6b!&`T(|o!aL}a@1{}0fA&By^u#g zJO!`rgSQV~-e>_W4WOkFbhd-eRv3O)%$|Lb)tE&`i(o`m+cB!p&OSqBpD7U8dMQDm z;s`Rq*|~7$ERdBAo<0GuUcZ0x3OoYfDWql4u;aVLal?<3(q3F{+O-Qjdk9|K2ag_> zO%99yMq97+s#iOwDd{|c%eCv*Bk%zsuguBW59!_;5h(S?k10$aSURjEN1ZP9Kj)*waa7_@J5CJy#?nxb{+%| zUxF9U!S$9SBL<&Pi1Cce(|w1*lUo4X0&i{?%$$><*5AZkuR2Ht1fHx>pBDRA<_ree z=bslQ+$uhwv^+4**)f&WC49}E!Cmg1NkE@=|3UMGgf%9gwT`Zf-1WgzhPFSr{p=n5 z?r%Urb&l`&xc*`m>vj^;9dz}7n~@8iJqK?f$3N?;;s;Ut=_~N`?dy9tE+)ngnY8mO zGDV@!# zpXV|v+kI@I+t?b@plYqVMQ1EA8cH0U3r((OcaKzq?j)hC)aqWUv_R+A_NQ;&n;ai7 z)E%0*LnDB`E@RT_{ zcV>NayXcEsCBL~}{-jYajm*zQd^^QuJmszd`{zA5epiq#gK$>n#+ynPnULV$*j%?gwSG@nmdYcTgfXyYI~cLVgt4E>V;4cAd( z2E=IEOjBl(FsrdbC608_V=SP&S#(rEXGM*84 zyZV8uCh+DBG$Ob5?LRBZ1(4lIDx2prMG^J8W*{k|o_Ua-;f@M9B*@J*sF@j8P4Eyq zF0jIxsS^t_E|?-`*~cy*S46U_SKw1PIuXJ{g3j1l1KV2pp^BBN zL@h+3WLZDmi@}CPG|;&<4r7ia{6(*%3`5 zr08s3NbvOmRh6%|f4|8=eL#}Uv!{X1nzHb~bEtzZ1ZWvLJa_;Q79qQrQZ)R@;NC0x z5%p-ky!QU4)u63id-X9bj3INuxr>=Pmn=fcqIrm=ELKz)3 zw2(tl@y^oQ?319iD8<)5N#k)ua(%t;D7bY!J#gj$S(B_WnMrMxO0IX{+6V~(^ba}E zR2iy>M>SAX1IbjgEM$7bNlL0lqk{l_fu=ea%?E|q$9z4%qxn6K&S(;0OGCzh;Yq5l z29xmX&?toik~GQ#=6EwNo*wGG}T0}NG9k? zoPZDs?@efJ%+?N|Xpekme|vaKLg?S^pm@A-6KHKeKX&4JC41awAh^;9YDgbV&E4vOwmoDeKeH9)rA0ok~+ln35&0wO;-n6NmJfJNT>Mq1^02fdhRG>RodveYsl5hXE=h z$4fr9HXT4Cqi-JEZY(_%8M1ZIpz{+ZUl>0wW9sCx*|QQo+)tBa3d5zViDC%oDn$v0 z7iy?9Mq$>_rFuCVBeEG(KIpRlU~^>b%VGLP z(rE&pC2)oC$0e8wd%B#IPbyW7G0~94!OM5x%I(y#(@#=jrYNWJWTt>+aH@1hoy~BG zth`mtb?n@af`pe(KzqZb(Ib!AF&AjZ=lhO;``5wyyWsIv^X&N-`f)X1axGsm4Xm86 zAl+ipuKt9dC;}Q=575 za?**~8*NYDy#+5}@bJ<+G3c0sE}e5btmF>)40r>-)XS&f(fzk~@4mTl{e64u`#YWY zU)==Y33&JfoJ}#ijZRk@FZ9Op8BGDk6{@)cm3W3XF7@{DnlS8(u!&zU9yMj8+a@>p zh+euV2X+71ZW7y5RoCTLR?0nFU}^z3ji{7 z*B0wv;eY->v!5#)>sa!qLRB@`t_IxQzG-$unP{lQ z*mh1=tsoj~@rO#`0Sk>9lS&g;w64{(u6od55E*riF|_xmuNsVKu7JoEQxwFJ8(Qa5 z1zAH#_cUJZO6d+~x8EwhP)4K}x3~CBu`BqL#lb3G_4M5{$L8 z9c1V{lFla4802OC>y8Kp6u7<4{qwu(FQ3<{8Z&K!N761;TdC@8$GC%0|GqWQrslkqvh5Fd^7Np|4>Y(wDV3j<>0eely{YwlT{8f* zkAG4&^iBPUM;0yUbh=aA`*FF$6N><@4tQqaUYBb@)c{Z*09u@%SMo)Nf7g+Wzpin8 zUJ2hj@wsKxlOips8F_qxw|Vdda9$31npwegzt;i?C5&Ku8$Sua_{Gg;3So zDjNH$uh53{ZNRYS$4WA~ls8&BJkc_^50ml`w zOgTx`VPuPvY*53m#+?-8oK>;$@yDgPh~O(B=OM46qBgY zbd^e5qlA(x)glZ?EV7)=QfCCBcIkXjngOzt(_@#U>{<(2%I+UKaK_O&6PMaZ$F|<| z9S5;f$+h52HAP!E65fnZ7KX|Z#51mLsHs&`O~IPz%*YT_R4y;8X6m$bT2nwud9<9z zO8J~v%p&hzNy}xlriOEDz;tB_A<+T9zhnuhwX`4Il^D9{U1Aa_Du23aORm;4-Hs`t z$%!w!o#J^IGl3 zjk`_G$5~yG*0YK>Rod~jsHqqaxwC>H%UGg}!zx&;hDNGnh!R3sMd9@lbk$@Urp|M5 zt(!3$6qYl8vpW-$si*bb5*EJIkrF2`fcrC2fEa=lYU8bYwUNw7R z;1H0M3X02a@7UkD`THB&x82*i(L8F@c{No-$sLrY#zEZ#V+o$9WXNku=0ShqQ6H(z zR)*gFph2!&xeS!&CyW`jOQ+lG>?efEL+d z4YW4Jf$WT20-9>?uUNCwfjo+f;6xlSXQ%pmB`FjIDs`Dj%4Jn`xT;l!qq=@LUk86s zoQ8pDE+xdV5;%1hG&bMZyv?#81YAr7>E_beAsMt>s-_DussQhLN<$FYI0`uP2oiet zbb>mo#CG*}c(q{*Xl^;@KX`|lKJM)L_Tou!z4qJ)pS_rEsYX*xpn0FI*oXXec;4Wt zsG+naoc;{KpK*2v6_p?%Ip5%$MCcE)T+Y-{;6^Rjza`~c`!d|PUn#d8J$*dmlHL3$Q=bO$_pdjC}FA+29Ft*O9K zI(Q|4;v%@Lz^QT!hvW@!mL5xp!syY>j|qmOp9+~W!oC`_uUD$;6=ao~hha|@W2mJJ zFa&L7;H@M;vy;pa$qZR887o)~43f+Lx^;_HU17kF3x2`RTw3*4eE)-Bko=>vTKLZw z@&#QkqsJ0C3#Q9ue7vMT6h$pzI2fa5$}T%xeTR=8Ma&%EXW;~4)`*~i-bWlA^H`yZ zME{(_>rY{tr!dTZd;9g<&etua-wz+SLl6()>`8_@s#cxj@FXL5TBkgxQRK>4K9Bl( zWbkS;hnq1)HAz5sQ_$ZQo`hmvPUq#56o1^wqd0mw>R$Bh!TU!y!Ml5J>nuCH{C5b> zEz8z{HZ%_yJiJ+b?7$8`@52OV(YREqxMqyKA;@V;`jF?CwL@pVuk8SjUxGXLK}Oad zNpngNVJw}g*QYQ{E+?T%Vg!FdMKwo7cGb{$0`5Ob95VhAZA`_{VPxy{1&+qc7@6Fk z$dO#PDyT{r(7tYYt83u#^@`Oiw{p6Zt^=2onzGH`f#=Vj+`fh~o?kU zXs%xeH}8VOXLl0PDZS%CwK|35@^GOT)1H@{7Ww-+P8s~0u(4k*8ZmCT+a_my94|uh zG!t|IMQ3nyy3mEAgqQ(cFexR`kb~Jwg3co7Ojdv)eLBO#5GW0CHk(SZNfZN@*7Y9C zpAvlgkLo7@+Dgw>fQGU%G*l{0LuHVVp5Y-PfVMJp3dul#&QyH>=v%DxkP;se!fled zuBM(b`ZrE~R}Jo+&fYf!(@l+Ir@v=|hrWR&uWID$-k#S741DA_qL$P?@)`2N&HtgT zcvB%>9X7am=)g8!XHj5x7fgE`Jma>Ydqio=)Y!w(L!M0@U8@nUa~j||=%&uKRK>SD z`$N?bx?6(N1C{VvExuFnFI4P3lE2E!6`TkW8RD`vZ{{yT^o#%+((@0Ztq<{&xZWM1 z94HzHO1}kl-#n@0iq7KxqRp&9HZ6H`1Bd*hi-S!~^6avtfUNUkev)vlZbafiZtcR~ zZV&0*oH{jWyY_L(bjxumb=%j?m)N!xrs}MH=H5R&C>~I9Tuj@c$=t0kILf5${_0i3 zfX5ZS*?X9rJz{6BSH%SmZa=s2&mDQXb6bBsMsJg_m3&@1z4WwW#$Lypd1K#H``=9I z4~htoE8Sk}km~*GE`X-;DGrhuMCURB6|#XVkU@K(vsK;1+(RG3@#n}2$DhjjX`cc# zG=D!TX#S7|{K05KbulyqXt9itYH+T)3!qC$2+*p=zId5EpJ>PIP!k6=`r`^Zk1=N1 z(m4t$4W}=YNu+;`c>EmbEJ2)u=X5MyXi8=F+dddyHmXzD~=wO*IXV272xQU`gw zIJ_Oymx8Oc;BE`BP^8^WJKwT+ltORY%AR)DRT2LCH%eG@mai+w9fQMR18X!8Ca?WM6QzhkCi=(03 zVu7g{;s!ELz1zF`ppH63QK__J`^Z@!zqn(?s`IYi=NL^6r7uy*l}f3F($y1u4TT=r zSFi-6=L%L;%^*Q^F2~WbPGsS?%f#_iK~DAX1xZ<;rUle@fZA4&VXm6F@T7__m7VJu zp_O8wnrW_qmg*R}lGB$8#!N<=ZS*`VI~9$e29mQu>lIK{2U=P|Lp>-q--wP*GdNWd za+5t>(c7+$CW{23oPz*OJ?_Un>m_ycmyu0m#j`z9ixR$;a!Q!1_&K|DJ4b zcX%6GaI#d#6^mp8MYiH(3rRQ9bRET1ArRs7IXQt5Zv`&~nOUH@6*RU1OU;w-4kmjJ z$!BzxxKP&hq^ppG4vfqv3Dh%8jX|4<9_Y#XvowEi@e+`dVIDsAB*ty|vR6k$D7fCx z61!+OZF{P7jZwS+FTs$>A z@QDAIEY`&e&~-Ed=mHI1C{fM0(5e>885st9U8AQ6pdp?@TB;+(+nlRKrOh5N4CLi? zWp+MqITjyFIi3@YXvB+^x@E0F3xVJl36-S%M3*T%k+Mr7`sb=uW`fP2HHn0D36s)P zVyOdPp@asLEYfgUdOkyBEsRvI<|>(A2GEdMuSK40=)1 z*?fV@mG~^#ai6o#xDjKxsgwH7pDfH86%^ok%u$!eu~j66u5(tOD7ie^cL=<{`RrxO z+sfPnUY@5g(af4kSR;(sEu5GyFqdRix+75`VEKx^SsFTBq6-LhvAsh*PQkmroFr>B znrt_P+&^k6r&h-vVJ-l}uT_-8U#9b%BgZJS68*uB%z3=z!p!qZp?|5FylJ$`Mazss* zq|20amk1sL^ox5PFJIpSx9(o>8F@}+%%q&sB9@Nl+C$*ujE>G?FR4e zzj+GHS8>vqk;jbA+j%)HFbG`h0B;|GcaL7wRvZ~M@e=DJHZ{Dm9Uw%;Mv&YeQt#82X?98sVEKk9M2cZ2bXzW00zxukh^I~=b^(k(!ILMTq&#`r ztnFIOC2x<*l#qu>MVS7qQfoVcwgZ3>R5VF2)wC(G%%3o=g!C zk!Imyu3E~(CDgExfk;heKye%dXecZ1_Q2xLS2r>D(0>fj-3$%&^8lSfkXdT{V}QO( z3(ziCaeTd?0}(61&I924J-0_sYzYVe+t)Qu8ghxWZyz22&YuF`ZwK3US-ku~%t{cu zvO()oB*S1b~4=`bBqmz3U zExr$00#=nv@pR{#we^do@&_Ucj|6b}J~ z%GV|Mlait3al@y&|5NbL-Z@96E*sxxs@uP2ADXysUhj25--J#6w}b1&*`xnyqW|BA zPI4$b8@zh1I_vO|1w(9>&-jPZbKdC(G<&1|ILqIr_=4B`;WnXTzn(qd4vl$_u)D#k$5~3@mp=*{j^mE;C{IRTP`>6_l=yLLz z>L%tM`uHh$1|Cx(vxRA)v__*8MDChQLwzHiX*PnY`!4%-_rtjF?z z|A-U5V|Nc37dvNKLv!IPa0k4*eSP1qi$*syX{b4c-{cG~5A$95Znrjap=>{djmH?2~xUW%;>{RLVbBF6>> zgiHyYFzkF+%WD`NA)Df7s+vA3fn_r}EsV&k1`n$mJ2qY?WlId?UFbX@z169;^+<9Z z#uwWvAWc@vT&_eX$aI36K5N{FvU#(LCXCN;_q?QLib(OM-lH9tYx<~LDabvj35%KM zpLo4WUovgRyNA>qD-Z7QjtnmMY-M|HKo?W&&;aSJP zVb=zYOjFXO3>sX7^w~f%%>>ng5p61UlL~9#_%b!sCK_|pRJylU!-Bb)J_F8kx(uyz z+o%aG<0s~5bghD+LBW(`c%{Ht7~I0DEgVsbo+J?PD$Qf5OqNOJ+5L95r)9Zv%9O_0 z^Ye#}xn%UXM946jty8m=7zGi$1jh<-wN+*%8r6pOxl}e@CfRIfx9f8kr0HF1^nS^G zsa!|5&RH`rJL=AoN{FEi8ZF8dVVDx0gI9uuLxa%Q6e0}I3I$V=-l=BNl=_k5%UKh= z{gYWH(M4{YH?Df*zR$%X+EtO#>PQIC*!ob-hLFkO z^9~FelPbEJg}(r_S^faf9V)Q}lbbN9O(is`xGEA=Y^PX~=QHxRo}TqgJCCa?fsn7q^O6uaB^!_v`#XVlKGXHBa&N-TZ^w zcX+rTP}8YuK2Ig2Daix0xOv?4hqZ0s!Ao%OIVi2q8$a_Dqs=q8W>P{iug%1md_eD=5P(Am{V@xk4z+xKRTnvpYbQr5tUd6NU<#!NgpdlqP{ z2alehB$mz>6?3AFe2ZP?jn+aaB~M|4uNw=(j1*E1N=eCIdJj-G;?jv-eAMJD|2U*2l%}WUT}BJ zD6nOt#oIH-%?<3{3*ye+96h0!oIw>hfUC7Kr{v&&D;iX6jlo$nVqLa}Fw+p5XTfu*h^B%4(;`-P3} zHO}oH&+Hzwahbe)o<8$<$jpF0#%=QnoA~QHl_B@4mZlu=-W9DF?QT<*K7Q)JzuOVz zy zB4qCO3La>4uRsrKb#Jp2AXNm%ye~QaYpSTugm)V0WF{Po3Au#&(8I3>H+Sn}!2MV~ z`1n6mkGKD*{zA|6=K{1#8vWB(n-q%;DHnj?TcD1Y9f_J^@%N!2QmrHyd9z zR)UTuG*!Q?8C<;yI`998I_~_quHFNkKc=g9e?;*ATW^5tHy+<^>9TOQ!Ru>RcW;l^ zx|9&c8l|=Z6H9TXm|&_fs>7b{fS5x31)!nTuE&WsB~g#TJ4iTea(Yyh6SFy1w`e*R z9sKRG5XHJ!<%%V$6(OH5Y~^A(YN7w4X(8i>pL29CCbTf>fDE+P;oGw!nW82wg0Ya- zClhRz!H_O;MS`_k1Y1c7)ug5t*FYYv$Au~-R-sarQ&=fWq?78iD*F={c7b41`zS2^ ziB?={C!{8Ox=}^9uu_Ahf#_2p@CAZU#7P!PuEDfT3PZEP(80TxlA0unOO)hfy*@*d zEsWGmqau>cYQ#zCnKCazdTyeHW=g8W*cufJJ=1kN<^iv75j2-+Vu!Nd7E-yBB~Nog zG9wk!LM6>sQR*sO*`y@9nuehCk4jowLus2Zp$TUz)XEZ8kx2Bp#MtI(#B#~lgq!O7 z2zkH%*3zqgodedOM)@;!1W}FSl{i*Sql&-PG(_hQs-aK|x>iO5Rg2L@_DZuFvxriW zq|Kn^EW!DrLOkD(O0uW(3BFE}JM_{O4O34!KsAsGsE;t3uA{gLk}Kz=5E>&V3vLn3rPt(Lni94Yp zGDJfjXDAY#G8s)S#$RKcuBoIt1>L}kD3OW5VH9Dlf?Uc_g$yc5Tj}g{nItcfRI02^ zq`3rw%aI*x4DPiA4-dE&BVjOOA=IU~ssvL)SybwBk}hz7EH0;F)X9GK38Lnlf;201 z)wpv3p}o`(JNHe$3Q^ataV)i0L4daKOrFf-Lf{iQ7?0g>5IU7;0&cpXizAp+M$^K( zwF%Cp27RiLj}sK}l%kf9iWHjDTJM{eQWtMr?G(FMTD62*v-C41tXZmA836&BT)z}w zw^&*mGCn+T=g=`pTF*QYhGbkFP1Z2DS%$$3)kvV@=~T#&?62DkR~0;r(`rZ-A}PF# z+hx~0(Rg|E2vD92-b4I)0v_Lg)6@=HZh_{zNGAJJ7v zEmy&w(Tz_2AuZ z{UU~j|J>v4-TD}U|10X@5q@4}BnKmT#I-B~ty8XKJm};#VfZM1>iE9%Cde~Jgbs8+ zZPb-=Y!gn_;9Mc4JB8~X>^qJ+iM+oLYOBtVnRb$JPF1+3*_-lIE=6jm63VGqaxI|@ zwf)2U3m2g^Ud8%1`0V$*~T&k;coTL7v(X>-V@9EDR!yWhFj(Z&gnztPS51)bu zH^9@omnO{EK{_6lyv?)1z|A}01xmSo(^6HmYQi7Bi-ptHG$qaWM zg4>TCY~6E|)n~&i4U50!02|u#pi_HJ<~Mw6y~&5sjuI-3*5bfl09xW?w>Jc9m}6IdLI(qE0?T7SJ8_n zsKQ-a$L#~B&w7qJpwt~!X*W3#oBaK*-e`CUUVz(A>Z7;s7yUL+PVI+|!%H1JgATF1 zaNN{WeW>(4e8QjcBuckKNp95Wubn*$o;(N7-olXN_1=poY~{XWc(r}UU+Uq*xc~LRSgL?7+bhgKh8L^)iAwcJ0+FZhPOy@OcP=M2{=?qOM5^c#je2f7`fgLltSc>TO9ihcG5&EEKY!9e-NXY1KJaOFl^MkQ9LnQ}E#qo&&Js8$7ChBF0SbHo1v&}!5uIEfUF zd3oP1%$~Vyfi83=wIcMJr9u5yMktntDVHz$OsSSH!eYXt$Y8&a89@_9#hE;dNqspX zlrmhdQIl)bLU^sjr3y-u<$#sR+DfgaMr7(Cr3rkcC_|d56b!YTu7TA+;Hx2sa<#Hp zt$??%MU+crQ!VTGf_Hn3>7S}JH|?mVeyXdy+^*B-sZ_;+b@*9AtuzRIjT(M^r$(ir zu$Q_FXNyp|4=zXGEwWrk3RQj8*KrxDos=P-w$qwUQgc_WxkYHplvImkyhcjR-#Xk< z(sw0zNE{^K43j>?$?RYSVvJc z3{{S5ad7o&v4b(R&>D+^C{W?$f>b8!&9tVRb1G56cmtIIsc}#@Vv0t*Z$aN#~2t8QlSR+?<3>5^W3%-{B@RO5B5P>kWl1YHKtm749q9dB};jiL+m!F8nE z01sZxp&ou(F2?|Ak}4928WOL=uu5EQA+a)nFX2&(Y#0|+Gw^#6?UG}s&ZUtO>uDYW zbPWR|0hEGL#wk!D3P%_8wJWnzSqLUuE2Zh=G?FhBjFqgZigqkO*QfTn+VLLg+KTB~ zN%;!KU&k0EoWDYFtppE|tD0i7``H)aRGrRHC28^$YO|Vvv{b65T4=G2HsA!1K;G&#r+dcfkt;8^27@{`{zV{F_y; z0C@Klym<_sJVQCM(AGgxdHe+2yART{a{~q^GE_cC7E!8tLVc~T!$YjAu*^r?+^rtG z+b#Gj|04Bx``=tWJVLj+q4{H30U9-{VwfTxhWExpCa+1uMo3e}+RYiKpE@+s&-Ic{ z3*+QY1=(TGR;skgv@1As8N7M)^xf^}ciYR)pRV0=sCC!Dt4B`WIC1jv=`$eV($m9- z@~2Ht(79GR4=hl?s1>>-O$BR6ro;>%pKBXeUEQ}eDLm-d)X9g3k2yDSc4kOS_4kLL zmQ^?eHA8@(DG%HjpNv(qR_N;BY6A#{rk6|^WOEt z7jAApa((Omj(rENpFGid?C8Ver@-M0mxoUK-Z|jP(R1MWGX&6`wF!YU_TYk9KRC(3 zjf?JEB*kgIFaS;ze<{UY`^h0iHj93%~olm!P2GjLz=_r8_%# zFeoiV>CO)y-M*Bum3K{3YRlA)S(N8ygP+R1PDvU)*n1cpJO6U^maD7QyghiJW6`4b zn>St@=+&@fAxKOBhmJySP8l`fYRFQsb?5D{$d<)nSGKHwuzho$s~=dtseS%}=TWh5 z#?5PY9td{sy=*i!`3@}*^+{S0?Avk8Eq%kZ52eurbc61GoX zKa899YMWTPyd%o+qGvm@__?wmX7^jI~O~cj|@5%i(5|lgpIISG0i4r z7r%6j&4&5EikfPZa!|Kw-tWwD<2EepXFlz|W$~{r?_x3znIgyk%c-?gYmV=hkiR>& zQgwWlddISV>M(o4x9p4hGHt&$a*|EN1e@KVHZQAmuS!&)UJD9cAFk! yZg@JDgY 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 JA!iZxzW_(+v~vIe literal 0 HcmV?d00001 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 + + + + + +

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 yZg@JDgY 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 JA!iZxzW_(+v~vIe literal 0 HcmV?d00001 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 + + + + + +

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 yZg@JDgY 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 JA!iZxzW_(+v~vIe literal 0 HcmV?d00001 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 + + + + + +

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 yZg@JDgY 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 JA!iZxzW_(+v~vIe literal 0 HcmV?d00001 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 + + + + + +

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 yZg@JDgY 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 JA!iZxzW_(+v~vIe literal 0 HcmV?d00001 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 + + + + + +

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 yZg@JDgY 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 JA!iZxzW_(+v~vIe literal 0 HcmV?d00001 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 + + + + + +

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 yZg@JDgY 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 JA!iZxzW_(+v~vIe literal 0 HcmV?d00001 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 + + + + + +

o$bVDVj3aO$gO`{S7Q!;PLx5ybBn`We|1VD}9Obeu2d%{|cTc5zHy( zzFUcaXhq!ObgXwc*4gb_ZMH;7!3pdFnx-Tado|Hu5BsxUDej(ons&3;u~m_?_pw{KyAD z)wLrjYkYd_-=;t2^PRtC%_Ga&V>*QBwXpcWOYyD@fhiA6zf2z8TnV9&H-z@6B31LH)JpcW!yyn5f zPa4$|lz4&{j|kjhg*zw%Knurt<)~n5W0f*9TfhP<-xi>G4?r^*pz$dActp@d?a}R% z0#I2PstUbUE~0w!N==We4c#uf1Fkd;YEFA%jJ$kf1^kL-EZV0 z0g?B1d&m}aZ$iw#E5~2FyvuR2yw8P_K0lTOTrZ<;R0vlq*o$SRQ^max6?NNR)*D@Z zyFB@=V7|xw_dML!r1loXd(Fh%fl^oFz<_`k9=*$H3pAxHf9%HhgDy08|M4b3->CKi zv?V3<5qNunfIa=P5*5wJ4AG#nK8_~sI?ylb|v@H+t-0HunS zVG8!HloE?6A)mkj%`hzho}+Na0I2?91t1SV8NCCRe#G0JMkiGYQiUh!EC{N9T^P1J z?m;JkXX4^1FwpD5eg^1ctJlO~fF^5cbBVwgNpcNqt)o<&M~uVv8ZN{|i4BC*Y{uzz z^HeTRWtusDr-|F%Pt0N*>)(ARy(H`T#nXf4POvSVCa;*GEyJ=c#j-E?S@5rQ8J4;n zYrul<-umvn=}(MI1y|<twkDiFfY8FZX zG-bX@0<6I!_SKU@11Z##c%QYD1{ht%Fm8dXBe{A3cOgjAg4arR_j{kA>iW3Ho|)&% zY_&(8+O!Up<~NUdt}sBtV-S*1IPvi2)r0^K8h2yD!^>GqIBTY4PwpRuDvA%ynGjcF)!=0{veq`vzLR%0k}8}A>g@}va&O$Y=Em4ul2D*~K5u)`$YB?WR$(hS(O9f-A0rHDi+!_khNmE*rjr|EiOGLi-lA%&th(QMLt?`722446ALZ0_XYs}}~%pB%P) zR>bPLwk1}V9KDKDW+mk+;_3Tq{Cu_{wAwmIw zh6~pL8kZ<26=ncvxg$U~6Ck#h#(Y`p0qD%|n*eb8Pi{VwSPI^HU9 z`9RF11DUOXduLE>Un_ph9r7MMpkof%7Sng7W;> zI@(^?kH*aq9GfDu2_n=}I4Nh5kt!o_kC#N6O%o)r5_v{*5@Ae}*%X1z5V%57$}pOX zWew-}6D^gRvr-HyCe^$^DcdaOYnC*TDYA&g3Y){4@>wzuXHViQC1(+3&8I9Gq>#?z zv2_8Ub7}u((z=rjEi;KJ24j-UB-_Pkg^d<~7?oVw;+7(7`H(VNsZp%us+hwW3c>N9 z{BvY3)2eOdgblpB#bV#4T9PCs3oJZ^JG~T;Vm2kEuxc`^W;6IRCa`EKkLfv4#8bUr zM;2f`$>&l6tbntq2{M)ki*K~_qM{IOW!d-dsouczKj1QKwHl!hVxuc z#26ZB>SRppyu@`6PJPU0vhc{%hoV+KvaHN;@ciekjh}t;^^?MDi+X-g*kwZb-zSy% zd|Tu*q52=+H9YiDKL1HP`^*PH&qb^)_^jc_8PR*ke4HKN_npr@3)MeQjtE=v;@*7) z?qMU3nY0rmPGfhR<4y|P2_C1hyFe-DY1;upslh#aL_NycBOI-vD^Cz|I8M({>lq~< zj|lp63v^ZR^>QB70YLY<+R*)yJK#cX@Tr>D7JoUQ&jWuBG%64KhyUFa^=D#~Pv7AW z@K611bH(dRGDCmBrpf7SU$gN$kiMX=kwYuDQ z-h9&9{r>y9cB6gC{tpCd{|w+CFshFRYW{)tNAG>$<&mcS# zT!uRq`~skH);Y#Q&pKy&MwxCu(9P5PZB=;&kI)A%0CoEH7V*CZ(3LFZW(YvEVp#!z zuBSB}pi6lk>iZf-ZlL5=5|197uZaa3TSrp+S<6n7mdQDjCXU~hl`v}BHzD&US(i+e zmQPogVp*49*%tpS_}8)&OId~$v0(hGlir*1+?Z6wSxcxcQ3flY&v2VX@nrlqbp9OL zad72`7uJT1LWR}9wM(5^E*`c6DtOPB-iiPmQ_u1ZG*=_Ym4X61lqkv=ptsjlKK|@h zT3cyz;1=k1faXgj4Q?{*p(8-+gXaM#fXBaaXcSNv+Prn8XvN7#Uw#E0-q||-^DI`a zC9Sm_P?`m|_!78+tdQhVi&COWjk2Yf;Ir(`W0NPK^1M|eqBf|GZO%|sQG~J+lP$Ik zf3niZyNx{V*G1zL!T`iYvQQ#%bqv=8988JWX)#&yg9n_g%tAjMNBa*}z4T7HiN_=4 zv2wMfU{DkAC09#g4U0F#nHF$gF%@r1TX1G#hHVgVe&t5VRw&pqEFl{tN5lJ{qa!DC zUwUhs9G)CD^yu1^s4%;7;OLybY#n2TI}kkl>tF;dyhRT-D8-h|V2D zt*x71e05sHVAQk|6_jjqgcY+E@W;RhYo*w7i7!^bL%{hWpyqB;prW$GFpO*R7wGVg zmXE(&OISCVZ705*g50i{5m8X*!8w<+T)kbc;te`LSF-k>0b1g=4jF=6)$k}+2RRZ= zRQ2FtsC9eAw_j&44A}5SfIkk8)>$i98#oPaV>2T)b7GAkK>^z$2$vQwM!R;Uz5ezh zHFT*p9OV_Ftn6Yrw4Sy%F=`n>mCAgn!q&5xp>bLA>=0($q`8HcDgvNh3_i3q7M(tY z_8cmC<^4RfeLEZ6z$?Wj!li0y3=7q5)wF3b!`IzWf5oNZq^EqLWD zukb*cc|m(7Y;JY(>pX=4{pdTY`rvz~i;OHf!9q3t8&jsOj11AA741TKwU*uXLX z3b&9T4&G~kyjuVok3_gy3M~+=Iza1utOGR2OU#|*rN%oH!0~ORe@D_e82n*=&v@4appt&XD;e19quW zaTHsF)1ARt!6Bup6=!gVQxz4cOu-sA3HB94Kxhg{PVbeG@nfgxPLqV9^=VP3@hIRXiz7H_Ac)%59r=j?W{}x z492kVR{^@Ce%{6J0B8jO`ZT4UU_y>__A@elj`c;1sf99M+`3_T+_DEIjPO}F;2-mt zM<+cza8aLi)lW6;9-opot^d1U`oA{6&sQ6|&P@BC32A?rkn_N#!Y&_eGQ9ew_UdDA zFB+3`Y}(f2A3UDG8y5BS`Q)BIEQ#=$*5A4ErCs|AYle^d-fTTdDQDUCfmF^h{CQHi zLMWF>+hMa(7r+8<&MKPD>fuTVFL~7e`1b#E;79=I`wRpA-i_$ir$=az@4N{S z2W#K|zG~Ffmcghs^h&jIt;&HKhoQQ07fN4tC4c?gehphY{)$)Vz{mem zu(@ZXhF<`*-UAG#g_LkBK*QyCItMQt-&Q(6gYAZSFx+^F$F}P8ou+u`zB>l!I;fC1 z4xkN>49wzT>e?u^o|6kTsaO+g&BT7*+G0{tL}%Hm6)TfB4;cS($owhVl4;_yY045T z%VI3+qMrr-!U`aHDOTA0@1CFf!Gu?yNVSE#Nh_`|1qmMFHc37dy#ZZ1ht6J3eEZ9# z!NXBj3Chb}?zH5~P^Uue&bvgRQW0IUsE_Il0F4Khp(2cywcV@NtjJ6OdJdmIb>Q+j0MOwpW`{1D>0B}`XvIujAWWEnGs88 zhA)~vXwlSB3n#oj`IG4{J+nD9qLQ}kHp_4ub$~9DC@33HFd9j~BlQjdI?oHxYdiq$ zrDt6_Lw8)#QJ7h8QsciAj?MTLd0UZT9_U%u?*(X(4$waz(ZjVM9XfB7*Ua9bI&JQi z_dwo5cUs|21XV_%EP`MLZUr8Np5&mgxoAconFwGM-IR@^`+Sz%+` zFMQ;B=j-u75g*FhWXZb85|YE%iUM(*F*y9$jJa50OIfmvB0VD|S#X;UBgF=gNsN*r z+ma-Ef?!V+9iUjj7AITcDZbP!@1%k&MduL!0RQw!L_t(`_^B;@q*f-#B?cvvN`l}> z*7|R=4BR$gY~FicC4BzflrfKgC@XU`TdFOhR0t{a7i$T%TDIh{RJO$C$!w)87n{gZ z69e^Kwt-0#wK+y|wu#w7D;boffKVzWdp5&^kuOx$JdVe`3urNw;J4A-5{{W^42+Y+ zB!VoIEI1=sU&3XUq2h4SwhAdIOR#NY@#x>n8EGjeEftjIlD3!;w#oK*Ba>lf;nmI- zg?!DDD_Go0|0e6OGASxo8?>3XFAJcf2{E3Ox0uyv%9^1D=URi(IXRhP(^(}=uqUhG zF>2&e+P1xijb%4gxn{e!9XpnbdC*cimr*;6o zg^GRjKX<5`(I+g-fUpJ8m$Nvw@>YO8PpFs7A?HcQ8A&+78!z)@9cR1{y<$cD+y^F) z@R=6wGuQd&W%h?>1#0t5vr3<7zP@>S+E-zpJ<;vCryqIq+k4(!e)oH;?t5$6Kc9HA z*EsIg6+@E0|2*~5myag}-S) zgbTRsS-eO{0MHjH+yY%~po@P6pbI2PZ-fSn273MlK$ieOTTwY+tMQtv_jR}Ll^Vmj z3g(A~!56o`GvhPnk^6lD3IASX@IwIux{-q)=@-$ZPyfFCqWbm@?eP%72O6IqqQtLy zttRswOw#VR4_3UnGv~E})sL?jKP*%+bnn`$TMuJjL-5_*!td=fwiolxBLUC)GNT^# z?RWnJKJUH$;Gwz^m$y4FxdTw60qFVn0< zwSBlU@TBoaH%}5YaI9fkh{u5N1RmTR5e<{sO`8te>e3PU*972*#bMj+X;f>k(!5JL zPH~0zD*#=^(E!lEF(ryx%h?(j3jj25YLz5ai87!`1FN>s7@&()sYC_iPVZoq>Oe78 zakiu<&5K(X@y*9Ub0?{brwU7_%8RkIMOc=FKMVea6+qGwte^$s$4&q6tGAv_3K@XI z%Yb7ze6ONqW%rgf=)y^K;d1qY)$=1ppp+bxm9-|wRwx4_inW4JEr|foFm2>T4A7o| zi`X) z0Pj(JL?p_|!vGx|vc~SfJYAf#zKk#kp83o6d zz?9=#1;8nByNHud=UPIb{%CvuQ&du3_S)N9`Jfmz{Pg-YC^06>65eVZP{-Tdf(B>~ zH?WnIwo`H=r@-MFNwwT0X0d9<;Gw9w`oQX?G1ka@C8E+ER&8@sYqn}ptKpP-R&C|2 zJ4MHK&f3CgO^n(I+w#EB8a&4o)lxF$D|BQBI(GC-a_abjgHeqe<>n_wMwM{ZMnc*_ z@@+H+SL710lLlAO!Ycp`#R23-qtP|}YjkFRo!?Avh?VVC$lWqt=}blO}xcP^g+3SNd4vJ@*!*P@yI7fv0vXu>N~ zKArOF3+p2WlrYvEgw#YaZkDQ)a2Ad_j)lvCQlS?Ny%Qn4`%o%cfysbYdFj^xx=^yg z+u{1zTB!>*ezI<-y<&^caoQYJ1zgc0_&&i=OcPzslCfP3hboU%-*4N zIKEZ79fljLtJAM{D5x?@Wi0Tn!5r0r7lfm3u)t4-rvUzQnSiCQPzi(=$mK^2D}4FY zgqL1k|M;`9FTS(&#rLL_g$>T8HSnwRXt7eWmP>dL zrBYhSr@%-zdhzwmZ@;tp zjaRmQ{MM%TUX1_vm2JfwOO8nCB^UbItGI}KI3-TZ7T8>Y$`WwkN|MZMRmE*8 z248SjbcX(gJPps@<=H$&XOK5iw-X9`|Gjgyvu+1^hK0Wh(6??0!VS+JfX4kF?*O1L z67o-mpdXEn(~@#XqECVACYw*iFI$>8`=0T`eCCeySvJaNw#YgVg zp7vQV?oSh=LYBY2Yi~*Iu*Z&?gHBVni=0IV=<~FAj*>1=${E(OgO%{-08Y*q)SH6& zb^%!EjnEwdI#KDm`#UoR=qd{;HzBw2dR6ZmwE;g?8?V-~M~i5*|H)nDPYew5>DANc z-UoY_xxu~t?0xz=eftjV*JrqI&k=pP4(i#((!Gm;G6#e@1ILb}o_vfLH_|jT+)p7M z==tzJ?zz8PKf=*1P`kUQ+>Lnr;lLOF(e0J)fp0(3GookjZUXNUx1Ra&;Ea-tbmEq6 zxR$j790RHX+BR}BTr9{#&lsTb_{$u!9iX9jw2{&-LT&|$WtC16!#;XLLMKkJ*& z+(}-0dx!GEZYSvg{eNU=;NuDz3x{d(_|SG2Z(M1UBd^u#D0~u zUlmIf^L#wTZE^%BKl}W?b?eU;^37h_WZswzQ~msHg_*J%o1eLC25cucH@Ep%eSA?Q^4@ zH7Gy#`0ORsV_r+5LJ|UHxZByHlqoWq5|J*Ol4UYcVWKqw4+HMxYfP34$(^xJ|5Yjw@jA!yV<$n8q zVR}1&{=qCGf5&x${e-OSQklJWDc!~$NM5@jdBI(u4f)f`m;bctIiK16eWt5_oFzUu zM&mX$(L%I5`-@OVYJER(Es-80^d)7Vw2csvvg(0y;zn69~uH|og~ zg}r~=u3p(cX4^7lVDMd!K6Dppu=;itjJ<=1fI)se`*(Rbv{&E3{^ZEsrUC!#&fL?> z{6JsBLwy6g^ff)&$NXq7>fxSDAI8~73caTvdrv>LpZ5GChL`?)-!t9%yms&X3P<_P z_)a)bH}p)SaHgyms%5U1k=Lu(e+|$a``-j;5X`jm@h|CF|4Em=LZ@H0xM` zEaH~{UG9m+Y+ua-&|VYlHOd|BawpXZ3ea;shZ!2^7OD`K0z-S}e>weCfOheW7ogp| zy^*y7Km(`NcpA9@prIxPYN?~e5=khPxb3Q?%18qSMGqRfv%ccZ#ZyDS``kL?J88ir zcF`nZ0hT-;OPTkx;9pn)#4p5B=6~CN_J?nN^77_E!^&xUn?c+MC_pPQl5{YA+m++H zTeGv!_T8&rdK2Xop`6@xRzNxh02;Heh-(^`h*7eM=HWin2x={FNs-h7PYZO-xaVV8 zD^7tIABPG{^CJhPG9myp4z$HdbK#ERP>@nPUdc@Hxii5cisK zBlHehIV^)}jM6 zOz{k>)zLE4Sf#VSyVzQJAZ8mncsTm&udcZ&ucxOc4IEO++kgq0X}*QwT3E3e90Nv$ z%^QqND1a7Z30)DIYnns+o$o}A6HjWp#A;m~8CZy&<3 zdw2TlZ_hHyuD3oxJ6gBTnwrJg+nAu%K-}Z7z$WI|dAG=KXZYQuyq&>K+Af^IhAkwh zbXIG8>myX{Ui$GzjfwF$DodlIqEcn0+~X>^Bx?f6gBNiqBmK>VGlJ$%i~wR@FcB2K za;9~`gy3b52WLteh#PF z+_fD;E$k4k8g%glI(-yfIfqUkuXy|2ZIYU%De;Uc*REu6d?go@X0~r}484|FjDEO! z?c7=P!*z7w5;zZ8-+ne%mg7Wg31h9H?JglKhEUgpM4|d7bnzm(;<-z}&}Yw}1G~`m zQwW_wSK$&4Uro;|cYIV|ZGJC6Um_$FX#LS-{a%w= ztV~;wmf%o#rEHs*wDQ5vNBc}0{f8-0|Cm4I!IeY*Iyb~;qWzI+qH|8~)r})t&c456 z@6#uCj=ZpE*zrAs_k90&*8Ue>jS1=fnfb1dZGGpx&}G`QfBGQ&(P@v}H|?=|zZ^Vh z!5as5mAQwGJ4%F}U>&DL8*uX}UOK^x$2jRIuk2MV6`GXJ)A@G*&^X&@XMmP(0<_KoAo8F82{Plp+}8`~hR+ z-~H?l(qVTS9e4XX9taG5*gxXozWuxT4((+c{$QZCguYH&;KZvk|vdF_%?XXCog^e+UlXBidbh`fOOD=F&zN<``q|*2U{|iFGWX=Z+QDd zR8)p?a#o6XSVuR-yIIZ?ULsTpo`zV8Ym{-%vpUh1E@>E`x7WBHdp4TZIs$YW-44)o ztOx)NEDIps5ui(0IX`&7jrmJ)TTV+O%FRT1nP|i6!hr*uP1YR-Tp)8arBK7kBKDZX zeFkBNs8;x!_Og~;T3CjtxnF%59omIlrh^trbg-cuv{<)(2?MKD6rqN-ajkZd9C~|JLhi za&Vmzp#wA&RJi<|W^u1k+(pQ{D5Wg`db=s+_%wg;tTqVz(Pm4~LyI52bs zPNi(3>v*kIb^!0{0Nnxr?O|v@VJIztj8%)KoNX+1&7FfzoXS}+?`nO`PZ{Y6{iDh} z01cPW%yO-)2mp%Vn^t!+$}S$m_hz%XX!57%;vwX&LAk{!w-hzDpna_iBW$TAcCQlL z0^R~ewhCkuM>jBzrkeoWN@9Rc8#W4+R-ydD=#Wqh(2+w>eQVQ%iCMqWiLjMZT7efO zC0~}eNzxBXm!ds;GTwZ5RnVa0vzMSfyR%<=IoT|?a=}d|TzE<>Vv&_^5HLUk@x#gB z02@)MSF|Et%(R8=`*td7*){)-Hye@@prTEA_Q@2x)g>vd3QVmDoRmK9i6h1N&(ED? zUpO&z`E=WY2`~cyZJGZa0JL+-6t6s^czU#WTF~NI!3(E{FP=1R)|X$r|Jvda!!u<^ zErny^;nl7dsTzT9V!@!*y;hzg1q7`+t#crM*VG z)30|du~ym_l|z!oy@1*Pg0Hsi*>UmgIdt_Z+{U5>lh;KJ zNYw1P{%oZ|u8~8cX*qiIW2mkgojDFfexaoyclO+dne*BfFK^9CJ9%LH4`+{H2j+`VCr{fy`QkjDIYXF@s!VFi)LP6nnNy;%vJtt@vY2~be zKS_(n!YnOzcDuutV0G+BNLmoT$#25*|C~Pdfr-Hney2V-$@0L|hC;X2~#{O~cV}G4E`XA#*-8bX$ z`@R@BVBu@6t+{oNJ-y3pJ7EdiOLHd#oQUH%C!FBqlcKgyQp*(~OJH%r4XEZh1&f!w z0G-DHH0#aJxCJ_oV*#L3)NcDHk)Axz3aT)oI^$2({ZK7=qs9aX`;)ud5AKK0*ZW>< z>wl!?mBn90n!EqgFF<_A&v|bj>s@}9y9xU}oc%6N{VUDh#R_**{5>Y=L4RA9zG2;a zM)mDJrdO|#5Bfzs%0%|yA|5hYAM~?!>*wg>Z|Udj|L!Xh`H3%G*!$8cw|cyw7jjd` zZT~5kK~=)_8uEs_?{!x%RAtryIyI~d_-aL-Acu|sUChZIEN<_UcPH|~?te&Lss`zZ z43!h8g+!AbEda9D-j%KM87;0~oXKi?`ZNp}>k z8U-d-l{Z8T!vm=RKwrLcV(q#lt5uJI);ke;W1#CeoM8Zj+v+^u%^PXBG_g_?TSOe> z8clK8AHH9`!)5#IwTPJ$Z8IkGb0$*rzhmcO33IT-*;vw?2_SLq1YsT)J0DA!_l;xz z=TCk4`r=Vz^5n3cChf3Ug`)t$9LbJ8x4&W2`0>|kn=TZTUd<~&g(aKpjuKI=qlG#T z__}1MZ^ULs0Gg~}MF8juQp{3qMW4Ne>dWe%d?}u_t+9DRIP!~g!w000e3fi-3tA(1 z9jpWZT_H08jrGpH4D)Ct?1Z6lo6jSX(g}%iSZW*uR&mI zC9Fn)*}*V}%=|&KxSO|ET0@se;*S|AC-O2s89mY!mw@&kcE9jiVn3pY5L@M-Mx(Hs zR`*a!tBHaAG;^>kAR7!ffOG&%xQQBYA;7$!wd|m@T2`wI8JKMg+9Ipx=FUTDStubJ zEnSDRT;*q%gbypD?KpQbE~^;CcN5Y+v#<*XB*?o=N*iO#qvWkN3))?WKb|I}qLe%o zlYqvL-#2(jDb1Fcsaj5I617I4PfmrSx6m>O2Z7LX6Dg+4O8LAA7aGgr-g+C=HSNz# zzfxa)HYOU!K(iKHoOrR3#|>j`qzLp39zu&54+OhiamI06@s!UnKsPm@m?X3*4mGu+ zJRSDp`sd zDb*U3^Tz8)eQ8@b(Xn{)&%_M#zZCp>Q&WSN&b7^-=2$fG@%iIF`|O>0qerD! zg5fHFbm7&mk!a6n4g6K4fyD{Pehr}Ex#LjF$SClpFhE~C2>`uT4l9CPF#^2%uo@I9 z>}R$+X}1wRDE^Z3JLKis|D!tEz>b0fdFSf1?VYFt?EatRiBxRw?5HpCJQS%`;A(iB zpB|RuhFIQF&N~WuN3Q6|R_r+zN1oMMqA38-)hu1YiP37v#Vtwb>@oDyg-ea~D@Ht( zV;SQTMwQFM)1}Ca!NXGq_0I}*7Fpy%{{R<=dI@O}W3XTP(`AIN zH0S279rfH=GC0}ak=9Smw1g*HY+&x(nsp~_sWnK+W^qesII1c_XMvKBqmw7UU$JJ> zsBv@bq0?w(vn8_Z*|$+;D>`=#ojC_Ic`h+=nZ=PJ+DjE@4vWbID(FfEk3dweXzN&W z!<-4%e>`;!>Y?Mu6JC66lVC0K3?~i_VFQJ;vsZEUOwl=yRd%gegRWjc*Uq4WZ8Qc{7UN$MEW|MVl4Wrz&F){i499rfxUzNI#-@r2^y3xu<0-VKcGHNc4HQ+$!Ruqm zG|=%D>)h}l)KcSV+di{BA?_P{@O;+3fV9sI8=g3R8ai_tUB7(cz)tY?;|33p4`Awy ze6xXa5yoQLoXIok9G^{VpfpiUkuZw_#p(21PU0B=XrSaQ5i483FbzvUfO&d{xAq3< zn=#X!mVh&?r^L|7_|Elj2IvAj(ge3tlmVd6^6EK8JSSU^s?q@`@1lL%M6JLX^?hpL z%CzKr-yimeiTxj#ZtXEw?LIH~!C6E8Hs!@XO?mddB|{&Y9cWqnz@#!$>y=^0&{G+0 z;UC4C>FGW0n(FT}hx1t#;j?z6&%#mvGwt!arablMuLnQ;&7cvh-#K!uI(N|EMzgY8 zw(OJSW1@6|UaNZeTJ8Nm)ONels9oLh?DmY8mwY$6YtMV{>C>-^nd_s3KEen2 z^y7T`(RZ=hpN#BXX6ZrF+JlVfYaHt5H>O|rr+RgLEP#6QuU*uCb`uPIn6H_;>z=>% z^ZonNWBZk4Ja@eHS#)IBk1gDVGT$2&CRC}R5*1ZRcLva&5RU)P189&=$zD*_)$u2N z2~=9RDdOgbLRbzf{2D-mexp|S4e8Yq5Ob%g2bXnd?l=`|1iBMIA78T;0J>uq4ghF9 z3kLu+MpciAuK_;5-IDYQKy*`Z=JFO%DVa7Ye@CTr;`>2U#w(M@bF(Lq^TsoCu=v?n z!YnKuqk*USxme6REOy@4)&*ZY{`H%)AA2m_65d8w51Db^008LkGq+vZ+pyuIPtO2} zx|>mXCCbj-V6}Aw=xXT~09_|qDhUkG#h+q;u6yD|0O+;Wc7VtZhUosu-yazt>tM_p)BAQXj0s1;z}s8 zN|JzU_cP8?vm8zEn78w(OwAMuDxCv0!Ew z%^o!K`w6i&kS(vgLLFogpc%xf8E8RYpJm@{QD-i`7+V|E`O1amkT`%NPvMaQ?UvmlAfGMLqnZ z(ZFnHWB}+yUda9WJ+!~R^6RhWh}M)5Ph45O9@Uj^9yzGo8nT18HJG_N!u&4)y0GLo z09tQ>_I4s{733-w4+R%3%g3fqM|<`hTD9iVhG?|+aOKCJF9sVc1=mTzZp~iCap1hw zdEz(Vh}Dwpl4X4PtWs~W6#+v>4n_qPsJvm#t8bUBT7eF1FZ$~JZNVxS0q`^m897?B z=X~;EVS3!qXKrT|CLY2scQB9E&D-g%`GKTF{a?>ins&@~8#he)#1( zGanzF;0VE`TEGBZ>xm1(Q8E7&fClOI=g!p;g8wh-XahS+C*wO;r_KMRbX)y@*KYuH zHOJsgovd6TItrEGG%YmN8oVtiJSI3i*%^{!4=S}-puE-cY>6mukQ|p2)6ms3=%+J3 zxGJ^`eWH>Z*3>6rhj~z5FDaQ(;zc1v%CHT89r1Zo8ap_UeQu+mOnris$Pj@3>25*=po-ko)x0>7*?;(3xo+T>I|lX!kB0w0-u>>CLfmBcEEOgl)1$CTNjabZD%vxJ3v` z4<499Hzs zh#NAZK(I9jvfKUfsEs*18KVlDG-b2m*s9oLG%Z1q( z%wYW*KqU)GHIpJkHIT!YUn+GkFL&w{u9wCv-*FMZ+<6Quh;_X}O7PADEXukzWK zH`wUUAL%;2`=6)u@mWClthD*8i13*+$Y=Uvch7m@(Ya4N@M*Af=3|FXRHhFeuwAjY zNYXxwdQ22fGu%Z|_|YuiFl!ghmR*EYW#WoxQI9&uF*KY6D&l2O0n395IRT633OE*M zJ4JnT@8kef7KB{t^$G&HscY2%H{9myHU8Htd;V1U2y%D3R^8)#S>ToW$ZO3n9j<p*0J=P{V$|d_q!s~m90KSJSFZ$&EfG-Fwrb`t0F4;5 zE0@Cx&^l-}u-v)gV_JZv;(O&9~p^6y53=PTG+H3H~NiO=QPGEQj0xjHqSFEAyt z+^FQ5m2#njkSROG4;ZjQt=i8>r#w92VZ2X0bJ^L&Ovw!nVhbc-f`i~&A~3}w0_aAP z>QFQ75TF(0C5GES#0PXXLU;1`d?M)R1ot1^UB4kgZ%m;ji(s_aG0jRIjeKJqM7Jsi z<=|R)xP%zWA$qpv5-7+HN?WU9%_=&NmlJt8$;~a!!|i*D-rGkJCp&_|9FUt);4`d{ zbAsUndQ8u<@N7VUZd0*nJec4c)qEu`WwCOihdZdqxw3Ej3BB`WT6eLpeVV<4nV>2J zsan=niy9b>RMA2$Bi7IYO1&j{ls`c7)fk)1@ueGLKwa6XVdGlYZ3i7~;OT>xXU-m=b zYMZZb+P)Q|vLu%>$+<+M&+oeS;Q4PR5I`3S0u&4zpzv zw>$Q2I%?pHNf!Q3HX|Lw`-t=Zp1$eR5U{grM1FX$)y1y|aY+zfw$Qc}w2 zjhD18`UzC48|}hW-CNUQ=aOshTsV66`|6r^ukODGPj6Nf z$B&tQ(oUEDXQ8C8u0r<7CAIKMs8thX-#X-C?70B%r^SijO)CJ`L3Lr)v>Ds`C{HMv zG?QDZ#*m6p@uX%QX{tML2IV5Ze+Zu6y?^5HX^r7BBPMdF!(tAHntVZk&K0HItg2{p z?5j5qUx9ZY0kj_8K_w(rMo`5BZKgE|f^j`1A%K1jN&6{is!SL)GMO=*{+7)dItiqv zS%U}A(wH=7!6pa(kWxC!8Iu`DGiET`%9sCu<@9C>zE)Q&s4A5z%dStlh{YMmm7MLl zd6U5P7VzjEC@G6@^hlny7N)Ldx=0HP$E}|(2&^I{|0W{5Y(s&!I?$p!QMD_{mTqpQ- zZaH`{>FjUjJJ~E3Z8oZGz9($<8vf_*0Gln-ZPv}OSu^5)uM7C&x`4i`eH5`KMWoO_ z0{c3`?%PfDZ#J?2v{myzzjLzL;%c+r?SE|c|KhvhUq^fYaWXYz{pi~rndYJX&4R9; zXRqnxTRi=cAYZ8IcM1V0yemsNLGx7JWX#z zA~qqBn+eqsNau;p|yL>l+D_EPh;M?<5=tt#tW+BAESfh*OZs`mDG2c9Qog4_4r95`^<&Epa)6^q6)1=pk!+f-J7 zMgRxt6S6ow2~`XS>A8VKBhWQC*U1{{G1P(%r59i1WmPP2aZmkG!Nw|K7H`wRNQ4}pCZ(F zMeM5N{Q;oi?#dbYiq5H?5=&IfDV4ftc^G)u*|uu!9?qEHItc7J0;)=n`+KHge1#Gf z5NyAg?r1iZW#c62)vjHr z`OEl;n_av>NhQe4J?iKJ0UC0DF3q888$232hd&>TWUM35T>vecIZYhRB@7*jdM=i? z-`R8O&cy_9trcXPKVgzA1lvStU;uE~*`@mI(H*CDIj;$0wnnqtVuWq6kfEimv6@XW zP=+nbp>$nBRK0aM#A|u$YR&dd{FXKBcd;H@BW6S_SUGXzNmutAQCG};0O-mO0F5S? zLeTtg1!ySi^REB%>as$A8zIB^*|J*rzpaqD{vfV|rMgh^zrDaamwFij=-pe5XeL}!+sn=S3q8l4 z$4uumUdKtvENSx9>M|7_=b$<}a}0P~{~TO<4{lyPbM&#h<^t zT6^lq9xuP6q&`pYlgQ~32;NM|^}NeWDEhR1y1HM}6{Hs{*?^dvXzt-@-S9|r;6!|Lxd55F!Q^Yeh{aVEVrS_Rp*P@b&lq~eb5TJix zXs(-~e+r=kh;+irx^@-<9=6{lKA73cE#|U!|BK+`t|F` zby2E~5%_u}Y8?{27Ridykf*5)Nccu1V&gJ?L-@d`h0CT)IOyS%&!RSOxh#83<{rkM z0If~OJx5*en*`eLfP0VLCS2arH3HoOpds*eVS!L7=>7uGWgh@~pRDf!=-g~KZwSz( zq8=gzWG|?0fJQ^nT>zcO3ONG;KuS8;vwuIqd}rrSHft)lURShmYBE8ih7^KWz@eZB z0xRU;a+1s?@hVx{q~cp?W0}tF-SX8SGc{rSm|Zw~L~8^Y2`|nby5wjwb2`-ZS}iu? zXq>Wy7YhXe?j3S4q-RvTj}=d{WY)?caHH3WfD4dEp`*$$=-cPc1clj|qlX<-;3u^P zP?`tI3RB(vQ&nh^83adoGT}*p;MLGoR1Pv$6R(5(oyE#o{(hj!+_`Q2X;PD^5G@QE za<1X!T0sNR86uPgqf1mI1ZXR4A%^ZEY4|fi-%}pD3^X;Q3>bIPWiY6&0goTNJbo(4 z(W@9k0Bx4ILh(Zi2jn~pC!?x-YPt;PFOYQkilyLAN8{4y?RM-r!5wVf3(8B*1o-Cj zhI(2H_f<|4RU86nNE;QT(OSl?hQxCi`iyTEK1yR&u4XI> z0>+9KPOw(tc)fc!Xl;c69Z3q{ViKsUPZ%*WiP7gP1v7?-8I@2J(C{;4=t>4nr>pIn zw3kJTalBl&Gy+_`{dCLGZL;^S5o1uqQeAM~!&s)IT5(M_r#m^ouPHAv^56#Jx-fd% zj{vmp2f=lDGm^L^M%=to+PZ<+yq5fKxoPXt$&vG8r;a`0;h7<7i+BXk6%1KTlki9U zKMBykNFPJ+e?>hkVYj-h)90$kd;dfI4FUQm`~{j7T}rWaDya%LWQcCNUA*QD@eUZ{ z<1@~C>~N3e9BCQs>_{Fr_>4qb+?;ClI(U!6>!AwQHj$=Q$uq%$-AD44bt^ze4S0SXrT^Z!0fTl> zR$Kes{^N6l*SLBdbJicj912aYyD)Xe#s~mz-UqkefV+j8*X?EX7uA}4(fOhvq!^`K ziO%H2OM>@K*CE#{3*WxE4qjXV4aNCG2BV^BJewx4c^p?nFcu|K#7TQ8rDc5#c=i~) z1>nZr_=z))urj=ob6C>Ms0(RTK858nJOXG!Y~FhaJbwjVKL>Z(b`2YFN^;tx6e?G* z0k7^p1$Q65?Yy)qVjV5Ssf0YiDS;OfWj>z4QYaz^6BBx?Pxp7Ypj1M~UB-%8BzIC2 zcZ~3VTVH~5KdxR+o-}ti@4Q!beRT8`c=;SWe+;f&&z&~=gpx^AGHJZ-q#*D2_jyy8 z30|P8Casq)ZXY&!v+TOxIpFY!sny#LfCtaPjoVjGojx#P*moS8gW-#&g^KcIeVmdci6d@ z2?v75?hl@IG<@mth{zK$At%<(JHBrE@ijBzR?m!IF(WZ@>cybRr{_&SzIf*0=sAZr z%|Etne%!iQ=fftR8#nXlkex?EN>cVbs!OPdnOADBdZy-I==4nv{qFF@J&Jflkk4@L z1);q|=pb95;b)vnC%7LN8UgeV`YC|^79}4S>t2}I*JaF;68l#beP3C6fm-@qwgbqb zL7@f|(U7M>klf%J~an6URZcEYRvq>PTmaeNMNkOR^{+#75;CG z_TRLg|K>H|H|v(VB}nFp@=KPbhY7CC@A29&Bmg$k70f#Pr87kv#NvX|Jt z%(s14Lj6Ag&>v&;&l<#^1n3M5gUj5mEDrd6y8*h#6ULucDb2&fu+|Uhq3+g+e=RB> zS6pW4&j;vg0`6Q zW!O3-axD_I2FZ%ikf+J@NZ1A>e8W~$j$`^kH+g9&&ay6>61ZQSzgGriws>z3&p%x#Bya6T|=V*;8L0_BFQ>Y zTW3$#5SnC0dJr26ECnZr4?d@Nz3kx!@-o4>qz9D*0* z;AR319>WXiC`Z&C-T)r9HqKvs2-hF*7z_%EL4J0^@Il8|Ay;FnpmdE8!5!F-0lN4H zfQIx8Re>|r1lLN+)k+4n8DserjeH|`9w^C488+}3L7mj<<8) zn|suR0J_|30H{R(olKJ509{C;hU8_0P^O~GRaBXpfB>D!vU`=v$6L2TfIdEM;%Y|Q zvT_3`D=i3Ka8|{a;kqh9EMs`D?^`hh-9v;-2krNyA}EUCY9qB zPk&HT4w}m|hxu9hW9=$Ag%r+>8qrXiHhtSt&H7McYZPQ?ert@d1%Wam=8e(X9|YH- zq)pMn=4gKN3V!oCddph%cd_~{OD9CnkDW38sJB;&q%k9aMg?AKD54vnE&uNVbPr3| zEtJajOVs1-KQCx+KRn<2o2uJc6f&rV3MBPLg{E5Vlqz{`_VgVw#!sH+E6nltne4aB z&+C}MJ&!h(;~Hq>(>UoEZg_U!40!SA#p@ey!2ny_E# z0MQohOGP!XnqoVwNI_Llp2Q;O4-4$yLn2XIBjnrQI&F?a<)=iS8dGmbKHh9qZl zcpj(BXB64AGKXX1d3iI=x9&QKs!hK_0R8g4IVwexozJC(e11)o54AsVzfv62ENPBLF3c#R5#UEpFZ7s=)}E* z6mab-c=P~Vzf-Ta0s|3&yH+u*@-hBoQor6kpe`}iyVJm;4kn9M>7fDtU|J;L4OL+A9@!4(0&C9{k1D4x*Lu^ zM}K30PRDTw&Sps9f=3pE*`&f?(EIe@%K+(es(6| z)%p0>32`qH4nMrG>rUMEd&j@OcX(UvszvE8+KxZ>2cp|6in*q?zsq5_SnL)<-e$Pl zoVHoe=SWfl%chVVWM}}MKw-Zqc#1O#7KT$lh=IzcSfs9UBAFx^FMrXv@@rrgL9yXk z0spd$g8==qy!R{1H=vFK1vJRggIq^|s>^)~D*xei$=|;%rrwm8UR#7WRm}S)4s_^W zHM!lZ^uJLwp&@;;`ONs#V?$C;`? zUAVAj2?XfSnNxQ84@{K|MT`hd?NJT)uSH*zVsv{!?9l-eW zk_lW+1c&!sxL#c{cJc+r zc?+e#y<;C}u1}dV_J|;6X&o(;wm~H{*)y#e2LT!#zz2Zt$_D8IXn1nqS8Kq9N(ZV^ z(7-_Y5=UQOG!JAaB?S1KlQgG|#y6MG!k6bwUYWG9@*{w*fq?-$Z}7NwZi>y7mSn%H+vg`2|`fR@_! z;E2PvVzzD|`2HBMSWbDkrYc$ZUU>E_JXOyB2ta3YbR25sjR5+HlPU2BfUfumpy9pw zF+f-0Y>~YZ-i9d*v(wJ*-i8gJrRC(&=r`am#-6qo6b!&`T(|o!aL}a@1{}0fA&By^u#g zJO!`rgSQV~-e>_W4WOkFbhd-eRv3O)%$|Lb)tE&`i(o`m+cB!p&OSqBpD7U8dMQDm z;s`Rq*|~7$ERdBAo<0GuUcZ0x3OoYfDWql4u;aVLal?<3(q3F{+O-Qjdk9|K2ag_> zO%99yMq97+s#iOwDd{|c%eCv*Bk%zsuguBW59!_;5h(S?k10$aSURjEN1ZP9Kj)*waa7_@J5CJy#?nxb{+%| zUxF9U!S$9SBL<&Pi1Cce(|w1*lUo4X0&i{?%$$><*5AZkuR2Ht1fHx>pBDRA<_ree z=bslQ+$uhwv^+4**)f&WC49}E!Cmg1NkE@=|3UMGgf%9gwT`Zf-1WgzhPFSr{p=n5 z?r%Urb&l`&xc*`m>vj^;9dz}7n~@8iJqK?f$3N?;;s;Ut=_~N`?dy9tE+)ngnY8mO zGDV@!# zpXV|v+kI@I+t?b@plYqVMQ1EA8cH0U3r((OcaKzq?j)hC)aqWUv_R+A_NQ;&n;ai7 z)E%0*LnDB`E@RT_{ zcV>NayXcEsCBL~}{-jYajm*zQd^^QuJmszd`{zA5epiq#gK$>n#+ynPnULV$*j%?gwSG@nmdYcTgfXyYI~cLVgt4E>V;4cAd( z2E=IEOjBl(FsrdbC608_V=SP&S#(rEXGM*84 zyZV8uCh+DBG$Ob5?LRBZ1(4lIDx2prMG^J8W*{k|o_Ua-;f@M9B*@J*sF@j8P4Eyq zF0jIxsS^t_E|?-`*~cy*S46U_SKw1PIuXJ{g3j1l1KV2pp^BBN zL@h+3WLZDmi@}CPG|;&<4r7ia{6(*%3`5 zr08s3NbvOmRh6%|f4|8=eL#}Uv!{X1nzHb~bEtzZ1ZWvLJa_;Q79qQrQZ)R@;NC0x z5%p-ky!QU4)u63id-X9bj3INuxr>=Pmn=fcqIrm=ELKz)3 zw2(tl@y^oQ?319iD8<)5N#k)ua(%t;D7bY!J#gj$S(B_WnMrMxO0IX{+6V~(^ba}E zR2iy>M>SAX1IbjgEM$7bNlL0lqk{l_fu=ea%?E|q$9z4%qxn6K&S(;0OGCzh;Yq5l z29xmX&?toik~GQ#=6EwNo*wGG}T0}NG9k? zoPZDs?@efJ%+?N|Xpekme|vaKLg?S^pm@A-6KHKeKX&4JC41awAh^;9YDgbV&E4vOwmoDeKeH9)rA0ok~+ln35&0wO;-n6NmJfJNT>Mq1^02fdhRG>RodveYsl5hXE=h z$4fr9HXT4Cqi-JEZY(_%8M1ZIpz{+ZUl>0wW9sCx*|QQo+)tBa3d5zViDC%oDn$v0 z7iy?9Mq$>_rFuCVBeEG(KIpRlU~^>b%VGLP z(rE&pC2)oC$0e8wd%B#IPbyW7G0~94!OM5x%I(y#(@#=jrYNWJWTt>+aH@1hoy~BG zth`mtb?n@af`pe(KzqZb(Ib!AF&AjZ=lhO;``5wyyWsIv^X&N-`f)X1axGsm4Xm86 zAl+ipuKt9dC;}Q=575 za?**~8*NYDy#+5}@bJ<+G3c0sE}e5btmF>)40r>-)XS&f(fzk~@4mTl{e64u`#YWY zU)==Y33&JfoJ}#ijZRk@FZ9Op8BGDk6{@)cm3W3XF7@{DnlS8(u!&zU9yMj8+a@>p zh+euV2X+71ZW7y5RoCTLR?0nFU}^z3ji{7 z*B0wv;eY->v!5#)>sa!qLRB@`t_IxQzG-$unP{lQ z*mh1=tsoj~@rO#`0Sk>9lS&g;w64{(u6od55E*riF|_xmuNsVKu7JoEQxwFJ8(Qa5 z1zAH#_cUJZO6d+~x8EwhP)4K}x3~CBu`BqL#lb3G_4M5{$L8 z9c1V{lFla4802OC>y8Kp6u7<4{qwu(FQ3<{8Z&K!N761;TdC@8$GC%0|GqWQrslkqvh5Fd^7Np|4>Y(wDV3j<>0eely{YwlT{8f* zkAG4&^iBPUM;0yUbh=aA`*FF$6N><@4tQqaUYBb@)c{Z*09u@%SMo)Nf7g+Wzpin8 zUJ2hj@wsKxlOips8F_qxw|Vdda9$31npwegzt;i?C5&Ku8$Sua_{Gg;3So zDjNH$uh53{ZNRYS$4WA~ls8&BJkc_^50ml`w zOgTx`VPuPvY*53m#+?-8oK>;$@yDgPh~O(B=OM46qBgY zbd^e5qlA(x)glZ?EV7)=QfCCBcIkXjngOzt(_@#U>{<(2%I+UKaK_O&6PMaZ$F|<| z9S5;f$+h52HAP!E65fnZ7KX|Z#51mLsHs&`O~IPz%*YT_R4y;8X6m$bT2nwud9<9z zO8J~v%p&hzNy}xlriOEDz;tB_A<+T9zhnuhwX`4Il^D9{U1Aa_Du23aORm;4-Hs`t z$%!w!o#J^IGl3 zjk`_G$5~yG*0YK>Rod~jsHqqaxwC>H%UGg}!zx&;hDNGnh!R3sMd9@lbk$@Urp|M5 zt(!3$6qYl8vpW-$si*bb5*EJIkrF2`fcrC2fEa=lYU8bYwUNw7R z;1H0M3X02a@7UkD`THB&x82*i(L8F@c{No-$sLrY#zEZ#V+o$9WXNku=0ShqQ6H(z zR)*gFph2!&xeS!&CyW`jOQ+lG>?efEL+d z4YW4Jf$WT20-9>?uUNCwfjo+f;6xlSXQ%pmB`FjIDs`Dj%4Jn`xT;l!qq=@LUk86s zoQ8pDE+xdV5;%1hG&bMZyv?#81YAr7>E_beAsMt>s-_DussQhLN<$FYI0`uP2oiet zbb>mo#CG*}c(q{*Xl^;@KX`|lKJM)L_Tou!z4qJ)pS_rEsYX*xpn0FI*oXXec;4Wt zsG+naoc;{KpK*2v6_p?%Ip5%$MCcE)T+Y-{;6^Rjza`~c`!d|PUn#d8J$*dmlHL3$Q=bO$_pdjC}FA+29Ft*O9K zI(Q|4;v%@Lz^QT!hvW@!mL5xp!syY>j|qmOp9+~W!oC`_uUD$;6=ao~hha|@W2mJJ zFa&L7;H@M;vy;pa$qZR887o)~43f+Lx^;_HU17kF3x2`RTw3*4eE)-Bko=>vTKLZw z@&#QkqsJ0C3#Q9ue7vMT6h$pzI2fa5$}T%xeTR=8Ma&%EXW;~4)`*~i-bWlA^H`yZ zME{(_>rY{tr!dTZd;9g<&etua-wz+SLl6()>`8_@s#cxj@FXL5TBkgxQRK>4K9Bl( zWbkS;hnq1)HAz5sQ_$ZQo`hmvPUq#56o1^wqd0mw>R$Bh!TU!y!Ml5J>nuCH{C5b> zEz8z{HZ%_yJiJ+b?7$8`@52OV(YREqxMqyKA;@V;`jF?CwL@pVuk8SjUxGXLK}Oad zNpngNVJw}g*QYQ{E+?T%Vg!FdMKwo7cGb{$0`5Ob95VhAZA`_{VPxy{1&+qc7@6Fk z$dO#PDyT{r(7tYYt83u#^@`Oiw{p6Zt^=2onzGH`f#=Vj+`fh~o?kU zXs%xeH}8VOXLl0PDZS%CwK|35@^GOT)1H@{7Ww-+P8s~0u(4k*8ZmCT+a_my94|uh zG!t|IMQ3nyy3mEAgqQ(cFexR`kb~Jwg3co7Ojdv)eLBO#5GW0CHk(SZNfZN@*7Y9C zpAvlgkLo7@+Dgw>fQGU%G*l{0LuHVVp5Y-PfVMJp3dul#&QyH>=v%DxkP;se!fled zuBM(b`ZrE~R}Jo+&fYf!(@l+Ir@v=|hrWR&uWID$-k#S741DA_qL$P?@)`2N&HtgT zcvB%>9X7am=)g8!XHj5x7fgE`Jma>Ydqio=)Y!w(L!M0@U8@nUa~j||=%&uKRK>SD z`$N?bx?6(N1C{VvExuFnFI4P3lE2E!6`TkW8RD`vZ{{yT^o#%+((@0Ztq<{&xZWM1 z94HzHO1}kl-#n@0iq7KxqRp&9HZ6H`1Bd*hi-S!~^6avtfUNUkev)vlZbafiZtcR~ zZV&0*oH{jWyY_L(bjxumb=%j?m)N!xrs}MH=H5R&C>~I9Tuj@c$=t0kILf5${_0i3 zfX5ZS*?X9rJz{6BSH%SmZa=s2&mDQXb6bBsMsJg_m3&@1z4WwW#$Lypd1K#H``=9I z4~htoE8Sk}km~*GE`X-;DGrhuMCURB6|#XVkU@K(vsK;1+(RG3@#n}2$DhjjX`cc# zG=D!TX#S7|{K05KbulyqXt9itYH+T)3!qC$2+*p=zId5EpJ>PIP!k6=`r`^Zk1=N1 z(m4t$4W}=YNu+;`c>EmbEJ2)u=X5MyXi8=F+dddyHmXzD~=wO*IXV272xQU`gw zIJ_Oymx8Oc;BE`BP^8^WJKwT+ltORY%AR)DRT2LCH%eG@mai+w9fQMR18X!8Ca?WM6QzhkCi=(03 zVu7g{;s!ELz1zF`ppH63QK__J`^Z@!zqn(?s`IYi=NL^6r7uy*l}f3F($y1u4TT=r zSFi-6=L%L;%^*Q^F2~WbPGsS?%f#_iK~DAX1xZ<;rUle@fZA4&VXm6F@T7__m7VJu zp_O8wnrW_qmg*R}lGB$8#!N<=ZS*`VI~9$e29mQu>lIK{2U=P|Lp>-q--wP*GdNWd za+5t>(c7+$CW{23oPz*OJ?_Un>m_ycmyu0m#j`z9ixR$;a!Q!1_&K|DJ4b zcX%6GaI#d#6^mp8MYiH(3rRQ9bRET1ArRs7IXQt5Zv`&~nOUH@6*RU1OU;w-4kmjJ z$!BzxxKP&hq^ppG4vfqv3Dh%8jX|4<9_Y#XvowEi@e+`dVIDsAB*ty|vR6k$D7fCx z61!+OZF{P7jZwS+FTs$>A z@QDAIEY`&e&~-Ed=mHI1C{fM0(5e>885st9U8AQ6pdp?@TB;+(+nlRKrOh5N4CLi? zWp+MqITjyFIi3@YXvB+^x@E0F3xVJl36-S%M3*T%k+Mr7`sb=uW`fP2HHn0D36s)P zVyOdPp@asLEYfgUdOkyBEsRvI<|>(A2GEdMuSK40=)1 z*?fV@mG~^#ai6o#xDjKxsgwH7pDfH86%^ok%u$!eu~j66u5(tOD7ie^cL=<{`RrxO z+sfPnUY@5g(af4kSR;(sEu5GyFqdRix+75`VEKx^SsFTBq6-LhvAsh*PQkmroFr>B znrt_P+&^k6r&h-vVJ-l}uT_-8U#9b%BgZJS68*uB%z3=z!p!qZp?|5FylJ$`Mazss* zq|20amk1sL^ox5PFJIpSx9(o>8F@}+%%q&sB9@Nl+C$*ujE>G?FR4e zzj+GHS8>vqk;jbA+j%)HFbG`h0B;|GcaL7wRvZ~M@e=DJHZ{Dm9Uw%;Mv&YeQt#82X?98sVEKk9M2cZ2bXzW00zxukh^I~=b^(k(!ILMTq&#`r ztnFIOC2x<*l#qu>MVS7qQfoVcwgZ3>R5VF2)wC(G%%3o=g!C zk!Imyu3E~(CDgExfk;heKye%dXecZ1_Q2xLS2r>D(0>fj-3$%&^8lSfkXdT{V}QO( z3(ziCaeTd?0}(61&I924J-0_sYzYVe+t)Qu8ghxWZyz22&YuF`ZwK3US-ku~%t{cu zvO()oB*S1b~4=`bBqmz3U zExr$00#=nv@pR{#we^do@&_Ucj|6b}J~ z%GV|Mlait3al@y&|5NbL-Z@96E*sxxs@uP2ADXysUhj25--J#6w}b1&*`xnyqW|BA zPI4$b8@zh1I_vO|1w(9>&-jPZbKdC(G<&1|ILqIr_=4B`;WnXTzn(qd4vl$_u)D#k$5~3@mp=*{j^mE;C{IRTP`>6_l=yLLz z>L%tM`uHh$1|Cx(vxRA)v__*8MDChQLwzHiX*PnY`!4%-_rtjF?z z|A-U5V|Nc37dvNKLv!IPa0k4*eSP1qi$*syX{b4c-{cG~5A$95Znrjap=>{djmH?2~xUW%;>{RLVbBF6>> zgiHyYFzkF+%WD`NA)Df7s+vA3fn_r}EsV&k1`n$mJ2qY?WlId?UFbX@z169;^+<9Z z#uwWvAWc@vT&_eX$aI36K5N{FvU#(LCXCN;_q?QLib(OM-lH9tYx<~LDabvj35%KM zpLo4WUovgRyNA>qD-Z7QjtnmMY-M|HKo?W&&;aSJP zVb=zYOjFXO3>sX7^w~f%%>>ng5p61UlL~9#_%b!sCK_|pRJylU!-Bb)J_F8kx(uyz z+o%aG<0s~5bghD+LBW(`c%{Ht7~I0DEgVsbo+J?PD$Qf5OqNOJ+5L95r)9Zv%9O_0 z^Ye#}xn%UXM946jty8m=7zGi$1jh<-wN+*%8r6pOxl}e@CfRIfx9f8kr0HF1^nS^G zsa!|5&RH`rJL=AoN{FEi8ZF8dVVDx0gI9uuLxa%Q6e0}I3I$V=-l=BNl=_k5%UKh= z{gYWH(M4{YH?Df*zR$%X+EtO#>PQIC*!ob-hLFkO z^9~FelPbEJg}(r_S^faf9V)Q}lbbN9O(is`xGEA=Y^PX~=QHxRo}TqgJCCa?fsn7q^O6uaB^!_v`#XVlKGXHBa&N-TZ^w zcX+rTP}8YuK2Ig2Daix0xOv?4hqZ0s!Ao%OIVi2q8$a_Dqs=q8W>P{iug%1md_eD=5P(Am{V@xk4z+xKRTnvpYbQr5tUd6NU<#!NgpdlqP{ z2alehB$mz>6?3AFe2ZP?jn+aaB~M|4uNw=(j1*E1N=eCIdJj-G;?jv-eAMJD|2U*2l%}WUT}BJ zD6nOt#oIH-%?<3{3*ye+96h0!oIw>hfUC7Kr{v&&D;iX6jlo$nVqLa}Fw+p5XTfu*h^B%4(;`-P3} zHO}oH&+Hzwahbe)o<8$<$jpF0#%=QnoA~QHl_B@4mZlu=-W9DF?QT<*K7Q)JzuOVz zy zB4qCO3La>4uRsrKb#Jp2AXNm%ye~QaYpSTugm)V0WF{Po3Au#&(8I3>H+Sn}!2MV~ z`1n6mkGKD*{zA|6=K{1#8vWB(n-q%;DHnj?TcD1Y9f_J^@%N!2QmrHyd9z zR)UTuG*!Q?8C<;yI`998I_~_quHFNkKc=g9e?;*ATW^5tHy+<^>9TOQ!Ru>RcW;l^ zx|9&c8l|=Z6H9TXm|&_fs>7b{fS5x31)!nTuE&WsB~g#TJ4iTea(Yyh6SFy1w`e*R z9sKRG5XHJ!<%%V$6(OH5Y~^A(YN7w4X(8i>pL29CCbTf>fDE+P;oGw!nW82wg0Ya- zClhRz!H_O;MS`_k1Y1c7)ug5t*FYYv$Au~-R-sarQ&=fWq?78iD*F={c7b41`zS2^ ziB?={C!{8Ox=}^9uu_Ahf#_2p@CAZU#7P!PuEDfT3PZEP(80TxlA0unOO)hfy*@*d zEsWGmqau>cYQ#zCnKCazdTyeHW=g8W*cufJJ=1kN<^iv75j2-+Vu!Nd7E-yBB~Nog zG9wk!LM6>sQR*sO*`y@9nuehCk4jowLus2Zp$TUz)XEZ8kx2Bp#MtI(#B#~lgq!O7 z2zkH%*3zqgodedOM)@;!1W}FSl{i*Sql&-PG(_hQs-aK|x>iO5Rg2L@_DZuFvxriW zq|Kn^EW!DrLOkD(O0uW(3BFE}JM_{O4O34!KsAsGsE;t3uA{gLk}Kz=5E>&V3vLn3rPt(Lni94Yp zGDJfjXDAY#G8s)S#$RKcuBoIt1>L}kD3OW5VH9Dlf?Uc_g$yc5Tj}g{nItcfRI02^ zq`3rw%aI*x4DPiA4-dE&BVjOOA=IU~ssvL)SybwBk}hz7EH0;F)X9GK38Lnlf;201 z)wpv3p}o`(JNHe$3Q^ataV)i0L4daKOrFf-Lf{iQ7?0g>5IU7;0&cpXizAp+M$^K( zwF%Cp27RiLj}sK}l%kf9iWHjDTJM{eQWtMr?G(FMTD62*v-C41tXZmA836&BT)z}w zw^&*mGCn+T=g=`pTF*QYhGbkFP1Z2DS%$$3)kvV@=~T#&?62DkR~0;r(`rZ-A}PF# z+hx~0(Rg|E2vD92-b4I)0v_Lg)6@=HZh_{zNGAJJ7v zEmy&w(Tz_2AuZ z{UU~j|J>v4-TD}U|10X@5q@4}BnKmT#I-B~ty8XKJm};#VfZM1>iE9%Cde~Jgbs8+ zZPb-=Y!gn_;9Mc4JB8~X>^qJ+iM+oLYOBtVnRb$JPF1+3*_-lIE=6jm63VGqaxI|@ zwf)2U3m2g^Ud8%1`0V$*~T&k;coTL7v(X>-V@9EDR!yWhFj(Z&gnztPS51)bu zH^9@omnO{EK{_6lyv?)1z|A}01xmSo(^6HmYQi7Bi-ptHG$qaWM zg4>TCY~6E|)n~&i4U50!02|u#pi_HJ<~Mw6y~&5sjuI-3*5bfl09xW?w>Jc9m}6IdLI(qE0?T7SJ8_n zsKQ-a$L#~B&w7qJpwt~!X*W3#oBaK*-e`CUUVz(A>Z7;s7yUL+PVI+|!%H1JgATF1 zaNN{WeW>(4e8QjcBuckKNp95Wubn*$o;(N7-olXN_1=poY~{XWc(r}UU+Uq*xc~LRSgL?7+bhgKh8L^)iAwcJ0+FZhPOy@OcP=M2{=?qOM5^c#je2f7`fgLltSc>TO9ihcG5&EEKY!9e-NXY1KJaOFl^MkQ9LnQ}E#qo&&Js8$7ChBF0SbHo1v&}!5uIEfUF zd3oP1%$~Vyfi83=wIcMJr9u5yMktntDVHz$OsSSH!eYXt$Y8&a89@_9#hE;dNqspX zlrmhdQIl)bLU^sjr3y-u<$#sR+DfgaMr7(Cr3rkcC_|d56b!YTu7TA+;Hx2sa<#Hp zt$??%MU+crQ!VTGf_Hn3>7S}JH|?mVeyXdy+^*B-sZ_;+b@*9AtuzRIjT(M^r$(ir zu$Q_FXNyp|4=zXGEwWrk3RQj8*KrxDos=P-w$qwUQgc_WxkYHplvImkyhcjR-#Xk< z(sw0zNE{^K43j>?$?RYSVvJc z3{{S5ad7o&v4b(R&>D+^C{W?$f>b8!&9tVRb1G56cmtIIsc}#@Vv0t*Z$aN#~2t8QlSR+?<3>5^W3%-{B@RO5B5P>kWl1YHKtm749q9dB};jiL+m!F8nE z01sZxp&ou(F2?|Ak}4928WOL=uu5EQA+a)nFX2&(Y#0|+Gw^#6?UG}s&ZUtO>uDYW zbPWR|0hEGL#wk!D3P%_8wJWnzSqLUuE2Zh=G?FhBjFqgZigqkO*QfTn+VLLg+KTB~ zN%;!KU&k0EoWDYFtppE|tD0i7``H)aRGrRHC28^$YO|Vvv{b65T4=G2HsA!1K;G&#r+dcfkt;8^27@{`{zV{F_y; z0C@Klym<_sJVQCM(AGgxdHe+2yART{a{~q^GE_cC7E!8tLVc~T!$YjAu*^r?+^rtG z+b#Gj|04Bx``=tWJVLj+q4{H30U9-{VwfTxhWExpCa+1uMo3e}+RYiKpE@+s&-Ic{ z3*+QY1=(TGR;skgv@1As8N7M)^xf^}ciYR)pRV0=sCC!Dt4B`WIC1jv=`$eV($m9- z@~2Ht(79GR4=hl?s1>>-O$BR6ro;>%pKBXeUEQ}eDLm-d)X9g3k2yDSc4kOS_4kLL zmQ^?eHA8@(DG%HjpNv(qR_N;BY6A#{rk6|^WOEt z7jAApa((Omj(rENpFGid?C8Ver@-M0mxoUK-Z|jP(R1MWGX&6`wF!YU_TYk9KRC(3 zjf?JEB*kgIFaS;ze<{UY`^h0iHj93%~olm!P2GjLz=_r8_%# zFeoiV>CO)y-M*Bum3K{3YRlA)S(N8ygP+R1PDvU)*n1cpJO6U^maD7QyghiJW6`4b zn>St@=+&@fAxKOBhmJySP8l`fYRFQsb?5D{$d<)nSGKHwuzho$s~=dtseS%}=TWh5 z#?5PY9td{sy=*i!`3@}*^+{S0?Avk8Eq%kZ52eurbc61GoX zKa899YMWTPyd%o+qGvm@__?wmX7^jI~O~cj|@5%i(5|lgpIISG0i4r z7r%6j&4&5EikfPZa!|Kw-tWwD<2EepXFlz|W$~{r?_x3znIgyk%c-?gYmV=hkiR>& zQgwWlddISV>M(o4x9p4hGHt&$a*|EN1e@KVHZQAmuS!&)UJD9cAFk! yZg@JDgY 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 JA!iZxzW_(+v~vIe literal 0 HcmV?d00001 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 + + + + + +