From c183b8e860b73f95b812361f1740f8e80eeca038 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Cort=C3=A9s?= Date: Tue, 25 Jun 2019 12:50:20 -0400 Subject: [PATCH] getAll en BaseRepository --- .../controllers/LaunchController.java | 4 + .../comprar/ComprarSearchController.java | 84 ++++++++++++++++++- .../framework/BaseRepository.java | 12 ++- .../xyz/danielcortes/framework/PanelName.java | 1 + .../repository/AutorRepository.java | 10 +-- .../repository/CategoriaRepository.java | 10 +-- .../repository/ClienteRespository.java | 5 +- .../repository/CompraRepository.java | 26 +++--- .../repository/CorreoRepository.java | 6 +- .../repository/DireccionRepository.java | 6 +- .../repository/DistribuidorRepository.java | 6 +- .../repository/EditorialRepository.java | 10 +-- .../repository/EjemplarRepository.java | 6 +- .../repository/EmpresaRepository.java | 6 +- .../repository/EstadoRepository.java | 8 +- .../repository/FacturaRepository.java | 24 ++++++ .../repository/IdiomaRepository.java | 7 +- .../repository/LibroRepository.java | 11 ++- .../repository/TelefonoRepository.java | 6 +- .../repository/TrabajadorRespository.java | 10 +-- .../repository/UsuarioRepository.java | 4 + .../validator/CompraValidator.java | 39 +++++++++ .../views/comprar/ComprarSearchPanel.java | 56 +++++++++++-- 23 files changed, 266 insertions(+), 91 deletions(-) create mode 100644 src/main/java/xyz/danielcortes/repository/FacturaRepository.java create mode 100644 src/main/java/xyz/danielcortes/validator/CompraValidator.java diff --git a/src/main/java/xyz/danielcortes/controllers/LaunchController.java b/src/main/java/xyz/danielcortes/controllers/LaunchController.java index dd20e21..3de8537 100644 --- a/src/main/java/xyz/danielcortes/controllers/LaunchController.java +++ b/src/main/java/xyz/danielcortes/controllers/LaunchController.java @@ -30,6 +30,7 @@ import xyz.danielcortes.controllers.cliente.telefono.ClienteTelefonoCreateContro import xyz.danielcortes.controllers.cliente.telefono.ClienteTelefonoSearchController; import xyz.danielcortes.controllers.cliente.telefono.ClienteTelefonoUpdateController; import xyz.danielcortes.controllers.cliente.telefono.ClienteTelefonoViewController; +import xyz.danielcortes.controllers.comprar.ComprarSearchController; import xyz.danielcortes.controllers.distribuidor.DistribuidorCreateController; import xyz.danielcortes.controllers.distribuidor.DistribuidorSearchController; import xyz.danielcortes.controllers.distribuidor.DistribuidorUpdateController; @@ -97,6 +98,7 @@ import xyz.danielcortes.views.cliente.ClienteCreatePanel; import xyz.danielcortes.views.cliente.ClienteSearchPanel; import xyz.danielcortes.views.cliente.ClienteUpdatePanel; import xyz.danielcortes.views.cliente.ClienteViewPanel; +import xyz.danielcortes.views.comprar.ComprarSearchPanel; import xyz.danielcortes.views.correo.CorreoCreatePanel; import xyz.danielcortes.views.correo.CorreoSearchPanel; import xyz.danielcortes.views.correo.CorreoUpdatePanel; @@ -286,6 +288,8 @@ public class LaunchController { this.controllers.put(PanelName.DISTRIBUIDOR_DIRECCION_CREATE, new DistribuidorDireccionCreateController(new DireccionCreatePanel(), this)); this.controllers.put(PanelName.DISTRIBUIDOR_DIRECCION_UPDATE, new DistribuidorDireccionUpdateController(new DireccionUpdatePanel(), this)); + this.controllers.put(PanelName.COMPRAR_SEARCH, new ComprarSearchController(new ComprarSearchPanel(), this)); + for (Entry entry : this.controllers.entrySet()) { this.frame.addCard(entry.getValue().getView().getContentPane(), entry.getKey()); } diff --git a/src/main/java/xyz/danielcortes/controllers/comprar/ComprarSearchController.java b/src/main/java/xyz/danielcortes/controllers/comprar/ComprarSearchController.java index 93a6541..89aed35 100644 --- a/src/main/java/xyz/danielcortes/controllers/comprar/ComprarSearchController.java +++ b/src/main/java/xyz/danielcortes/controllers/comprar/ComprarSearchController.java @@ -1,10 +1,92 @@ package xyz.danielcortes.controllers.comprar; +import java.util.List; +import javax.swing.JOptionPane; +import xyz.danielcortes.controllers.LaunchController; +import xyz.danielcortes.framework.BaseController; +import xyz.danielcortes.framework.BasePanel; +import xyz.danielcortes.framework.BaseTableModel; +import xyz.danielcortes.framework.PanelName; +import xyz.danielcortes.models.Compra; import xyz.danielcortes.repository.CompraRepository; +import xyz.danielcortes.validator.CompraValidator; import xyz.danielcortes.views.comprar.ComprarSearchPanel; -public class ComprarSearchController { +public class ComprarSearchController extends BaseController { private ComprarSearchPanel view; private CompraRepository repository; + private CompraValidator validator; + + public ComprarSearchController(ComprarSearchPanel view, LaunchController parent) { + super(parent); + this.view = view; + this.repository = new CompraRepository(); + this.validator = new CompraValidator(this.repository); + this.setupListeners(); + } + + private void setupListeners() { + this.view.getComprarButton().addActionListener(e -> this.getParentController().showCard(PanelName.COMPRAR_COMPRAR)); + this.view.getBuscarButton().addActionListener(e -> this.search()); + this.view.getSearchField().addActionListener(e -> this.search()); + this.view.getVerButton().addActionListener(e -> this.view()); + } + + private void search() { + String term = this.view.getSearchField().getText(); + List compras = this.repository.search(term); + this.loadComprarTable(compras); + } + + private void view() { + Compra compra = this.getSelectedCompra(); + if (compra != null) { +// CompraViewController controller = (CompraViewController) this.getParentController().getCard(PanelName.COMPRAR_VIEW); +// controller.setCompra(compra); +// this.getParentController().showCard(PanelName.COMPRAR_VIEW); + } + } + + private void loadComprarTable(List compras) { + BaseTableModel model = this.view.getModel(); + model.setRows(compras); + } + + private Compra getSelectedCompra() { + int selectedRow = this.view.getTable().getSelectedRow(); + if (selectedRow == -1) { + JOptionPane.showMessageDialog( + null, + "No hay copra seleccionada", + "Error", + JOptionPane.ERROR_MESSAGE + ); + return null; + } + + return this.view.getModel().getRow(selectedRow); + } + + @Override + public void show() { + this.reload(); + } + + public void reload() { + this.loadComprarTable(); + this.view.getSearchField().requestFocus(); + this.view.getTable().setRowSelectionInterval(0, 0); + } + + private void loadComprarTable() { + List compra = this.repository.getAll(); + this.loadComprarTable(compra); + } + + @Override + public BasePanel getView() { + return this.view; + } + } diff --git a/src/main/java/xyz/danielcortes/framework/BaseRepository.java b/src/main/java/xyz/danielcortes/framework/BaseRepository.java index 7cdc2c1..8b1638b 100644 --- a/src/main/java/xyz/danielcortes/framework/BaseRepository.java +++ b/src/main/java/xyz/danielcortes/framework/BaseRepository.java @@ -1,15 +1,25 @@ package xyz.danielcortes.framework; import java.util.Collection; +import java.util.List; import javax.persistence.EntityManager; import javax.persistence.PersistenceException; +import javax.persistence.criteria.CriteriaQuery; public abstract class BaseRepository { protected EntityManager em; + private Class entityClass; - public BaseRepository() { + public BaseRepository(Class entityClass) { this.em = PersistenceManager.getEntityManager(); + this.entityClass = entityClass; + } + + public List getAll() { + CriteriaQuery criteriaQuery = this.em.getCriteriaBuilder().createQuery(this.entityClass); + criteriaQuery.select(criteriaQuery.from(this.entityClass)); + return this.em.createQuery(criteriaQuery).getResultList(); } public void save(E entity) { diff --git a/src/main/java/xyz/danielcortes/framework/PanelName.java b/src/main/java/xyz/danielcortes/framework/PanelName.java index 6354f95..d1784bb 100644 --- a/src/main/java/xyz/danielcortes/framework/PanelName.java +++ b/src/main/java/xyz/danielcortes/framework/PanelName.java @@ -98,6 +98,7 @@ public enum PanelName { CLIENTE_DIRECCION_UPDATE, COMPRAR_SEARCH, + COMPRAR_VIEW, COMPRAR_COMPRAR, VENDER_SEARCH, diff --git a/src/main/java/xyz/danielcortes/repository/AutorRepository.java b/src/main/java/xyz/danielcortes/repository/AutorRepository.java index ec41f5a..aca79f2 100644 --- a/src/main/java/xyz/danielcortes/repository/AutorRepository.java +++ b/src/main/java/xyz/danielcortes/repository/AutorRepository.java @@ -1,7 +1,6 @@ package xyz.danielcortes.repository; import java.util.List; -import javax.persistence.TypedQuery; import javax.persistence.criteria.CriteriaBuilder; import javax.persistence.criteria.CriteriaQuery; import javax.persistence.criteria.Root; @@ -10,13 +9,12 @@ import xyz.danielcortes.models.Autor; public class AutorRepository extends BaseRepository { - public List getAll() { - TypedQuery query = em.createQuery("SELECT a FROM Autor a", Autor.class); - return query.getResultList(); + public AutorRepository() { + super(Autor.class); } public List search(String term) { - CriteriaBuilder cb = em.getCriteriaBuilder(); + CriteriaBuilder cb = this.em.getCriteriaBuilder(); CriteriaQuery query = cb.createQuery(Autor.class); Root r = query.from(Autor.class); query.where( @@ -26,6 +24,6 @@ public class AutorRepository extends BaseRepository { cb.like(cb.lower(r.get("apellidoMaterno")), "%" + term.toLowerCase() + "%") ) ); - return em.createQuery(query).getResultList(); + return this.em.createQuery(query).getResultList(); } } diff --git a/src/main/java/xyz/danielcortes/repository/CategoriaRepository.java b/src/main/java/xyz/danielcortes/repository/CategoriaRepository.java index c0855f1..81a6fc7 100644 --- a/src/main/java/xyz/danielcortes/repository/CategoriaRepository.java +++ b/src/main/java/xyz/danielcortes/repository/CategoriaRepository.java @@ -1,7 +1,6 @@ package xyz.danielcortes.repository; import java.util.List; -import javax.persistence.TypedQuery; import javax.persistence.criteria.CriteriaBuilder; import javax.persistence.criteria.CriteriaQuery; import javax.persistence.criteria.Root; @@ -10,18 +9,17 @@ import xyz.danielcortes.models.Categoria; public class CategoriaRepository extends BaseRepository { - public List getAll() { - TypedQuery query = em.createQuery("SELECT c from Categoria c", Categoria.class); - return query.getResultList(); + public CategoriaRepository() { + super(Categoria.class); } public List search(String term) { - CriteriaBuilder cb = em.getCriteriaBuilder(); + CriteriaBuilder cb = this.em.getCriteriaBuilder(); CriteriaQuery query = cb.createQuery(Categoria.class); Root r = query.from(Categoria.class); query.where( cb.like(cb.lower(r.get("nombre")), "%" + term.toLowerCase() + "%") ); - return em.createQuery(query).getResultList(); + return this.em.createQuery(query).getResultList(); } } diff --git a/src/main/java/xyz/danielcortes/repository/ClienteRespository.java b/src/main/java/xyz/danielcortes/repository/ClienteRespository.java index 7ff052d..6f7c1d0 100644 --- a/src/main/java/xyz/danielcortes/repository/ClienteRespository.java +++ b/src/main/java/xyz/danielcortes/repository/ClienteRespository.java @@ -7,9 +7,8 @@ import xyz.danielcortes.models.Cliente; public class ClienteRespository extends BaseRepository { - public List getAll() { - TypedQuery query = this.em.createQuery("SELECT c FROM Cliente c", Cliente.class); - return query.getResultList(); + public ClienteRespository() { + super(Cliente.class); } public List search(String term) { diff --git a/src/main/java/xyz/danielcortes/repository/CompraRepository.java b/src/main/java/xyz/danielcortes/repository/CompraRepository.java index 23d9adf..b48a10b 100644 --- a/src/main/java/xyz/danielcortes/repository/CompraRepository.java +++ b/src/main/java/xyz/danielcortes/repository/CompraRepository.java @@ -1,26 +1,26 @@ package xyz.danielcortes.repository; -import java.util.ArrayList; import java.util.List; -import javax.persistence.TypedQuery; +import javax.persistence.Query; import xyz.danielcortes.framework.BaseRepository; import xyz.danielcortes.models.Compra; public class CompraRepository extends BaseRepository { - public List getAll() { - TypedQuery query = this.em.createQuery("SELECT a FROM Compra a", Compra.class); - return query.getResultList(); + public CompraRepository() { + super(Compra.class); } public List search(String term) { -// Query query = this.em.createQuery("SELECT c FROM Compra c WHERE " -// + "LOWER(c.factura.folio) LIKE :term OR " -// + "c.factura.precioNeto LIKE :term OR " -// + "c.factura.precioNeto + c.factura.precioIVA LIKE :term OR " -// + "LOWER(c.distribuidor.rut) LIKE :term OR " -// + "COUNT(c.ejemplares.size) LIKE :term" -// ); - return new ArrayList<>(); + Query query = this.em.createQuery("SELECT c FROM Compra c WHERE " + + "LOWER(c.factura.folio) LIKE :term OR " + + "CONCAT(c.factura.precioNeto, '') LIKE :term OR " + + "CONCAT(c.factura.precioNeto + c.factura.precioIVA, '') LIKE :term OR " + + "LOWER(c.distribuidor.rut) LIKE :term OR " + + "CONCAT(COUNT(c.ejemplares.size), '') LIKE :term" + ); + + query.setParameter("term", term); + return query.getResultList(); } } diff --git a/src/main/java/xyz/danielcortes/repository/CorreoRepository.java b/src/main/java/xyz/danielcortes/repository/CorreoRepository.java index 0693d4c..f89cb14 100644 --- a/src/main/java/xyz/danielcortes/repository/CorreoRepository.java +++ b/src/main/java/xyz/danielcortes/repository/CorreoRepository.java @@ -2,7 +2,6 @@ package xyz.danielcortes.repository; import java.util.List; import javax.persistence.Query; -import javax.persistence.TypedQuery; import xyz.danielcortes.framework.BaseRepository; import xyz.danielcortes.models.Cliente; import xyz.danielcortes.models.Correo; @@ -11,9 +10,8 @@ import xyz.danielcortes.models.Trabajador; public class CorreoRepository extends BaseRepository { - public List getAll() { - TypedQuery query = this.em.createQuery("SELECT c FROM Correo c", Correo.class); - return query.getResultList(); + public CorreoRepository() { + super(Correo.class); } public List search(String term) { diff --git a/src/main/java/xyz/danielcortes/repository/DireccionRepository.java b/src/main/java/xyz/danielcortes/repository/DireccionRepository.java index 5d76d29..48e7e50 100644 --- a/src/main/java/xyz/danielcortes/repository/DireccionRepository.java +++ b/src/main/java/xyz/danielcortes/repository/DireccionRepository.java @@ -2,7 +2,6 @@ package xyz.danielcortes.repository; import java.util.List; import javax.persistence.Query; -import javax.persistence.TypedQuery; import xyz.danielcortes.framework.BaseRepository; import xyz.danielcortes.models.Cliente; import xyz.danielcortes.models.Direccion; @@ -11,9 +10,8 @@ import xyz.danielcortes.models.Trabajador; public class DireccionRepository extends BaseRepository { - public List getAll() { - TypedQuery query = this.em.createQuery("SELECT t FROM Direccion t", Direccion.class); - return query.getResultList(); + public DireccionRepository() { + super(Direccion.class); } public List search(String term) { diff --git a/src/main/java/xyz/danielcortes/repository/DistribuidorRepository.java b/src/main/java/xyz/danielcortes/repository/DistribuidorRepository.java index e4be7f0..96578a5 100644 --- a/src/main/java/xyz/danielcortes/repository/DistribuidorRepository.java +++ b/src/main/java/xyz/danielcortes/repository/DistribuidorRepository.java @@ -2,15 +2,13 @@ package xyz.danielcortes.repository; import java.util.List; import javax.persistence.Query; -import javax.persistence.TypedQuery; import xyz.danielcortes.framework.BaseRepository; import xyz.danielcortes.models.Distribuidor; public class DistribuidorRepository extends BaseRepository { - public List getAll() { - TypedQuery query = this.em.createQuery("SELECT d FROM Distribuidor d", Distribuidor.class); - return query.getResultList(); + public DistribuidorRepository() { + super(Distribuidor.class); } public List search(String term) { diff --git a/src/main/java/xyz/danielcortes/repository/EditorialRepository.java b/src/main/java/xyz/danielcortes/repository/EditorialRepository.java index f72448f..ca8f543 100644 --- a/src/main/java/xyz/danielcortes/repository/EditorialRepository.java +++ b/src/main/java/xyz/danielcortes/repository/EditorialRepository.java @@ -1,7 +1,6 @@ package xyz.danielcortes.repository; import java.util.List; -import javax.persistence.TypedQuery; import javax.persistence.criteria.CriteriaBuilder; import javax.persistence.criteria.CriteriaQuery; import javax.persistence.criteria.Root; @@ -10,18 +9,17 @@ import xyz.danielcortes.models.Editorial; public class EditorialRepository extends BaseRepository { - public List getAll() { - TypedQuery query = em.createQuery("SELECT e FROM Editorial e", Editorial.class); - return query.getResultList(); + public EditorialRepository() { + super(Editorial.class); } public List search(String term) { - CriteriaBuilder cb = em.getCriteriaBuilder(); + CriteriaBuilder cb = this.em.getCriteriaBuilder(); CriteriaQuery query = cb.createQuery(Editorial.class); Root r = query.from(Editorial.class); query.where( cb.like(cb.lower(r.get("nombre")), "%" + term.toLowerCase() + "%") ); - return em.createQuery(query).getResultList(); + return this.em.createQuery(query).getResultList(); } } diff --git a/src/main/java/xyz/danielcortes/repository/EjemplarRepository.java b/src/main/java/xyz/danielcortes/repository/EjemplarRepository.java index c628be1..6759d78 100644 --- a/src/main/java/xyz/danielcortes/repository/EjemplarRepository.java +++ b/src/main/java/xyz/danielcortes/repository/EjemplarRepository.java @@ -2,7 +2,6 @@ package xyz.danielcortes.repository; import java.util.List; import javax.persistence.Query; -import javax.persistence.TypedQuery; import javax.persistence.criteria.CriteriaBuilder; import javax.persistence.criteria.CriteriaQuery; import javax.persistence.criteria.Root; @@ -11,9 +10,8 @@ import xyz.danielcortes.models.Ejemplar; public class EjemplarRepository extends BaseRepository { - public List getAll() { - TypedQuery query = this.em.createQuery("SELECT e FROM Ejemplar e", Ejemplar.class); - return query.getResultList(); + public EjemplarRepository() { + super(Ejemplar.class); } public List search(String term) { diff --git a/src/main/java/xyz/danielcortes/repository/EmpresaRepository.java b/src/main/java/xyz/danielcortes/repository/EmpresaRepository.java index 36ebf1c..ce9ae1e 100644 --- a/src/main/java/xyz/danielcortes/repository/EmpresaRepository.java +++ b/src/main/java/xyz/danielcortes/repository/EmpresaRepository.java @@ -2,15 +2,13 @@ package xyz.danielcortes.repository; import java.util.List; import javax.persistence.Query; -import javax.persistence.TypedQuery; import xyz.danielcortes.framework.BaseRepository; import xyz.danielcortes.models.Empresa; public class EmpresaRepository extends BaseRepository { - public List getAll() { - TypedQuery query = this.em.createQuery("SELECT e FROM Empresa e", Empresa.class); - return query.getResultList(); + public EmpresaRepository() { + super(Empresa.class); } public List search(String term) { diff --git a/src/main/java/xyz/danielcortes/repository/EstadoRepository.java b/src/main/java/xyz/danielcortes/repository/EstadoRepository.java index fc87b75..8792f93 100644 --- a/src/main/java/xyz/danielcortes/repository/EstadoRepository.java +++ b/src/main/java/xyz/danielcortes/repository/EstadoRepository.java @@ -1,19 +1,17 @@ package xyz.danielcortes.repository; -import java.util.List; import javax.persistence.TypedQuery; import xyz.danielcortes.framework.BaseRepository; import xyz.danielcortes.models.Estado; public class EstadoRepository extends BaseRepository { - public List getAll() { - TypedQuery query = em.createQuery("SELECT e FROM Estado e", Estado.class); - return query.getResultList(); + public EstadoRepository() { + super(Estado.class); } public Estado getByNombre(String nombre) { - TypedQuery query = em.createQuery("SELECT e FROM Estado e WHERE nombre = :nombre", Estado.class); + TypedQuery query = this.em.createQuery("SELECT e FROM Estado e WHERE nombre = :nombre", Estado.class); query.setParameter("nombre", nombre); return query.getSingleResult(); } diff --git a/src/main/java/xyz/danielcortes/repository/FacturaRepository.java b/src/main/java/xyz/danielcortes/repository/FacturaRepository.java new file mode 100644 index 0000000..43d4154 --- /dev/null +++ b/src/main/java/xyz/danielcortes/repository/FacturaRepository.java @@ -0,0 +1,24 @@ +package xyz.danielcortes.repository; + +import java.util.List; +import javax.persistence.Query; +import xyz.danielcortes.framework.BaseRepository; +import xyz.danielcortes.models.Factura; + +public class FacturaRepository extends BaseRepository { + + public FacturaRepository() { + super(Factura.class); + } + + public List search(String term) { + Query query = this.em.createQuery("SELECT f FROM Factura f WHERE " + + "LOWER(f.folio) LIKE :term OR " + + "CONCAT(f.precioNeto,'') LIKE :term OR " + + "CONCAT(f.precioIVA,'') LIKE :term OR " + + "LOWER(f.fechaVenta) LIKE :term"); + query.setParameter("term", "%" + term.toLowerCase() + "%"); + return query.getResultList(); + } + +} diff --git a/src/main/java/xyz/danielcortes/repository/IdiomaRepository.java b/src/main/java/xyz/danielcortes/repository/IdiomaRepository.java index 5595ff0..9ba8a15 100644 --- a/src/main/java/xyz/danielcortes/repository/IdiomaRepository.java +++ b/src/main/java/xyz/danielcortes/repository/IdiomaRepository.java @@ -1,7 +1,6 @@ package xyz.danielcortes.repository; import java.util.List; -import javax.persistence.TypedQuery; import javax.persistence.criteria.CriteriaBuilder; import javax.persistence.criteria.CriteriaQuery; import javax.persistence.criteria.Root; @@ -10,10 +9,8 @@ import xyz.danielcortes.models.Idioma; public class IdiomaRepository extends BaseRepository { - public List getAll() { - TypedQuery query = this.em.createQuery("SELECT i FROM Idioma i", Idioma.class); - - return query.getResultList(); + public IdiomaRepository() { + super(Idioma.class); } public List search(String term) { diff --git a/src/main/java/xyz/danielcortes/repository/LibroRepository.java b/src/main/java/xyz/danielcortes/repository/LibroRepository.java index 67e3e17..0eb7904 100644 --- a/src/main/java/xyz/danielcortes/repository/LibroRepository.java +++ b/src/main/java/xyz/danielcortes/repository/LibroRepository.java @@ -1,7 +1,6 @@ package xyz.danielcortes.repository; import java.util.List; -import javax.persistence.TypedQuery; import javax.persistence.criteria.CriteriaBuilder; import javax.persistence.criteria.CriteriaQuery; import javax.persistence.criteria.Root; @@ -10,13 +9,13 @@ import xyz.danielcortes.models.Libro; public class LibroRepository extends BaseRepository { - public List getAll() { - TypedQuery query = em.createQuery("SELECT l FROM Libro l", Libro.class); - return query.getResultList(); + public LibroRepository() { + super(Libro.class); } + public List search(String term) { - CriteriaBuilder cb = em.getCriteriaBuilder(); + CriteriaBuilder cb = this.em.getCriteriaBuilder(); CriteriaQuery query = cb.createQuery(Libro.class); Root r = query.from(Libro.class); query.where( @@ -26,6 +25,6 @@ public class LibroRepository extends BaseRepository { cb.like(r.get("precioReferencia").as(String.class), "%" + term.toLowerCase() + "%") ) ); - return em.createQuery(query).getResultList(); + return this.em.createQuery(query).getResultList(); } } diff --git a/src/main/java/xyz/danielcortes/repository/TelefonoRepository.java b/src/main/java/xyz/danielcortes/repository/TelefonoRepository.java index 3789a10..9249c0e 100644 --- a/src/main/java/xyz/danielcortes/repository/TelefonoRepository.java +++ b/src/main/java/xyz/danielcortes/repository/TelefonoRepository.java @@ -2,7 +2,6 @@ package xyz.danielcortes.repository; import java.util.List; import javax.persistence.Query; -import javax.persistence.TypedQuery; import xyz.danielcortes.framework.BaseRepository; import xyz.danielcortes.models.Cliente; import xyz.danielcortes.models.Distribuidor; @@ -11,9 +10,8 @@ import xyz.danielcortes.models.Trabajador; public class TelefonoRepository extends BaseRepository { - public List getAll() { - TypedQuery query = this.em.createQuery("SELECT t FROM Telefono t", Telefono.class); - return query.getResultList(); + public TelefonoRepository() { + super(Telefono.class); } public List search(String term) { diff --git a/src/main/java/xyz/danielcortes/repository/TrabajadorRespository.java b/src/main/java/xyz/danielcortes/repository/TrabajadorRespository.java index da37f04..ee90188 100644 --- a/src/main/java/xyz/danielcortes/repository/TrabajadorRespository.java +++ b/src/main/java/xyz/danielcortes/repository/TrabajadorRespository.java @@ -1,7 +1,6 @@ package xyz.danielcortes.repository; import java.util.List; -import javax.persistence.TypedQuery; import javax.persistence.criteria.CriteriaBuilder; import javax.persistence.criteria.CriteriaQuery; import javax.persistence.criteria.Root; @@ -10,13 +9,12 @@ import xyz.danielcortes.models.Trabajador; public class TrabajadorRespository extends BaseRepository { - public List getAll() { - TypedQuery query = em.createQuery("SELECT t FROM Trabajador t", Trabajador.class); - return query.getResultList(); + public TrabajadorRespository() { + super(Trabajador.class); } public List search(String term) { - CriteriaBuilder cb = em.getCriteriaBuilder(); + CriteriaBuilder cb = this.em.getCriteriaBuilder(); CriteriaQuery query = cb.createQuery(Trabajador.class); Root r = query.from(Trabajador.class); query.where( @@ -28,7 +26,7 @@ public class TrabajadorRespository extends BaseRepository { cb.like(r.get("fechaContrato"), "%" + term.toLowerCase() + "%") ) ); - return em.createQuery(query).getResultList(); + return this.em.createQuery(query).getResultList(); } } diff --git a/src/main/java/xyz/danielcortes/repository/UsuarioRepository.java b/src/main/java/xyz/danielcortes/repository/UsuarioRepository.java index 5429fb2..0f5cd80 100644 --- a/src/main/java/xyz/danielcortes/repository/UsuarioRepository.java +++ b/src/main/java/xyz/danielcortes/repository/UsuarioRepository.java @@ -8,6 +8,10 @@ import xyz.danielcortes.models.Usuario; public class UsuarioRepository extends BaseRepository { + public UsuarioRepository() { + super(Usuario.class); + } + public Optional getByName(String name) { TypedQuery query = this.em.createQuery("SELECT u FROM Usuario u WHERE nombre = :nombre", Usuario.class); query.setParameter("nombre", name); diff --git a/src/main/java/xyz/danielcortes/validator/CompraValidator.java b/src/main/java/xyz/danielcortes/validator/CompraValidator.java new file mode 100644 index 0000000..fcf85ab --- /dev/null +++ b/src/main/java/xyz/danielcortes/validator/CompraValidator.java @@ -0,0 +1,39 @@ +package xyz.danielcortes.validator; + +import xyz.danielcortes.framework.ValidationResult; +import xyz.danielcortes.models.Compra; +import xyz.danielcortes.models.Distribuidor; +import xyz.danielcortes.models.Factura; +import xyz.danielcortes.repository.CompraRepository; + +public class CompraValidator { + + private CompraRepository compraRepository; + + public CompraValidator(CompraRepository compraRepository) { + this.compraRepository = compraRepository; + } + + public ValidationResult validateFactura(Factura factura) { + if (factura == null) { + return new ValidationResult("No hay factura"); + } + return ValidationResult.NON_ERROR; + } + + public ValidationResult validateDistribuidor(Distribuidor distribuidor) { + if (distribuidor == null) { + return new ValidationResult("No hay distribuidor"); + } + return ValidationResult.NON_ERROR; + } + + public ValidationResult validateOriginal(Compra original) { + if (original == null) { + return new ValidationResult("No hay compra seleccionda"); + } + return ValidationResult.NON_ERROR; + } + + +} diff --git a/src/main/java/xyz/danielcortes/views/comprar/ComprarSearchPanel.java b/src/main/java/xyz/danielcortes/views/comprar/ComprarSearchPanel.java index 0097a47..6140841 100644 --- a/src/main/java/xyz/danielcortes/views/comprar/ComprarSearchPanel.java +++ b/src/main/java/xyz/danielcortes/views/comprar/ComprarSearchPanel.java @@ -1,10 +1,13 @@ package xyz.danielcortes.views.comprar; +import com.intellij.uiDesigner.core.GridConstraints; import com.intellij.uiDesigner.core.GridLayoutManager; +import java.awt.Dimension; import java.awt.Insets; import javax.swing.JButton; import javax.swing.JComponent; import javax.swing.JPanel; +import javax.swing.JScrollPane; import javax.swing.JTable; import javax.swing.JTextField; import javax.swing.ListSelectionModel; @@ -55,7 +58,7 @@ public class ComprarSearchPanel extends BasePanel { @Override public JPanel getContentPane() { - return null; + return this.contentPane; } /** @@ -64,15 +67,43 @@ public class ComprarSearchPanel extends BasePanel { * @noinspection ALL */ private void $$$setupUI$$$() { + createUIComponents(); contentPane = new JPanel(); - contentPane.setLayout(new GridLayoutManager(1, 1, new Insets(20, 20, 20, 20), -1, -1)); - } - - /** - * @noinspection ALL - */ - public JComponent $$$getRootComponent$$$() { - return contentPane; + contentPane.setLayout(new GridLayoutManager(3, 1, new Insets(20, 20, 20, 20), -1, -1)); + final JScrollPane scrollPane1 = new JScrollPane(); + contentPane.add(scrollPane1, new GridConstraints(1, 0, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_BOTH, + GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_WANT_GROW, + GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_WANT_GROW, null, null, null, 0, false)); + scrollPane1.setViewportView(table); + final JPanel panel1 = new JPanel(); + panel1.setLayout(new GridLayoutManager(1, 2, new Insets(0, 0, 0, 0), -1, -1)); + contentPane.add(panel1, new GridConstraints(0, 0, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_BOTH, + GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, + GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, null, null, null, 0, false)); + searchField = new JTextField(); + panel1.add(searchField, + new GridConstraints(0, 0, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_WANT_GROW, + GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(150, -1), null, 0, false)); + buscarButton = new JButton(); + buscarButton.setText("Buscar"); + panel1.add(buscarButton, new GridConstraints(0, 1, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_NONE, + GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(150, -1), + null, 0, false)); + final JPanel panel2 = new JPanel(); + panel2.setLayout(new GridLayoutManager(1, 2, new Insets(0, 0, 0, 0), -1, -1)); + contentPane.add(panel2, new GridConstraints(2, 0, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_BOTH, + GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, + GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, null, null, null, 0, false)); + comprarButton = new JButton(); + comprarButton.setText("Comprar"); + panel2.add(comprarButton, new GridConstraints(0, 0, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_NONE, + GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(150, -1), + null, 0, false)); + verButton = new JButton(); + verButton.setText("Ver Orden de Compra"); + panel2.add(verButton, new GridConstraints(0, 1, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_NONE, + GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(150, -1), + null, 0, false)); } private void createUIComponents() { @@ -101,4 +132,11 @@ public class ComprarSearchPanel extends BasePanel { this.table = new JTable(this.model); this.table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); } + + /** + * @noinspection ALL + */ + public JComponent $$$getRootComponent$$$() { + return contentPane; + } }