getAll en BaseRepository

This commit is contained in:
Daniel Cortés
2019-06-25 12:50:20 -04:00
parent 3397d9fc6d
commit c183b8e860
23 changed files with 266 additions and 91 deletions

View File

@@ -30,6 +30,7 @@ import xyz.danielcortes.controllers.cliente.telefono.ClienteTelefonoCreateContro
import xyz.danielcortes.controllers.cliente.telefono.ClienteTelefonoSearchController; import xyz.danielcortes.controllers.cliente.telefono.ClienteTelefonoSearchController;
import xyz.danielcortes.controllers.cliente.telefono.ClienteTelefonoUpdateController; import xyz.danielcortes.controllers.cliente.telefono.ClienteTelefonoUpdateController;
import xyz.danielcortes.controllers.cliente.telefono.ClienteTelefonoViewController; import xyz.danielcortes.controllers.cliente.telefono.ClienteTelefonoViewController;
import xyz.danielcortes.controllers.comprar.ComprarSearchController;
import xyz.danielcortes.controllers.distribuidor.DistribuidorCreateController; import xyz.danielcortes.controllers.distribuidor.DistribuidorCreateController;
import xyz.danielcortes.controllers.distribuidor.DistribuidorSearchController; import xyz.danielcortes.controllers.distribuidor.DistribuidorSearchController;
import xyz.danielcortes.controllers.distribuidor.DistribuidorUpdateController; 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.ClienteSearchPanel;
import xyz.danielcortes.views.cliente.ClienteUpdatePanel; import xyz.danielcortes.views.cliente.ClienteUpdatePanel;
import xyz.danielcortes.views.cliente.ClienteViewPanel; import xyz.danielcortes.views.cliente.ClienteViewPanel;
import xyz.danielcortes.views.comprar.ComprarSearchPanel;
import xyz.danielcortes.views.correo.CorreoCreatePanel; import xyz.danielcortes.views.correo.CorreoCreatePanel;
import xyz.danielcortes.views.correo.CorreoSearchPanel; import xyz.danielcortes.views.correo.CorreoSearchPanel;
import xyz.danielcortes.views.correo.CorreoUpdatePanel; 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_CREATE, new DistribuidorDireccionCreateController(new DireccionCreatePanel(), this));
this.controllers.put(PanelName.DISTRIBUIDOR_DIRECCION_UPDATE, new DistribuidorDireccionUpdateController(new DireccionUpdatePanel(), 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<PanelName, BaseController> entry : this.controllers.entrySet()) { for (Entry<PanelName, BaseController> entry : this.controllers.entrySet()) {
this.frame.addCard(entry.getValue().getView().getContentPane(), entry.getKey()); this.frame.addCard(entry.getValue().getView().getContentPane(), entry.getKey());
} }

View File

@@ -1,10 +1,92 @@
package xyz.danielcortes.controllers.comprar; 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.repository.CompraRepository;
import xyz.danielcortes.validator.CompraValidator;
import xyz.danielcortes.views.comprar.ComprarSearchPanel; import xyz.danielcortes.views.comprar.ComprarSearchPanel;
public class ComprarSearchController { public class ComprarSearchController extends BaseController {
private ComprarSearchPanel view; private ComprarSearchPanel view;
private CompraRepository repository; 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<Compra> 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<Compra> compras) {
BaseTableModel<Compra> 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> compra = this.repository.getAll();
this.loadComprarTable(compra);
}
@Override
public BasePanel getView() {
return this.view;
}
} }

View File

@@ -1,15 +1,25 @@
package xyz.danielcortes.framework; package xyz.danielcortes.framework;
import java.util.Collection; import java.util.Collection;
import java.util.List;
import javax.persistence.EntityManager; import javax.persistence.EntityManager;
import javax.persistence.PersistenceException; import javax.persistence.PersistenceException;
import javax.persistence.criteria.CriteriaQuery;
public abstract class BaseRepository<E> { public abstract class BaseRepository<E> {
protected EntityManager em; protected EntityManager em;
private Class<E> entityClass;
public BaseRepository() { public BaseRepository(Class<E> entityClass) {
this.em = PersistenceManager.getEntityManager(); this.em = PersistenceManager.getEntityManager();
this.entityClass = entityClass;
}
public List<E> getAll() {
CriteriaQuery<E> criteriaQuery = this.em.getCriteriaBuilder().createQuery(this.entityClass);
criteriaQuery.select(criteriaQuery.from(this.entityClass));
return this.em.createQuery(criteriaQuery).getResultList();
} }
public void save(E entity) { public void save(E entity) {

View File

@@ -98,6 +98,7 @@ public enum PanelName {
CLIENTE_DIRECCION_UPDATE, CLIENTE_DIRECCION_UPDATE,
COMPRAR_SEARCH, COMPRAR_SEARCH,
COMPRAR_VIEW,
COMPRAR_COMPRAR, COMPRAR_COMPRAR,
VENDER_SEARCH, VENDER_SEARCH,

View File

@@ -1,7 +1,6 @@
package xyz.danielcortes.repository; package xyz.danielcortes.repository;
import java.util.List; import java.util.List;
import javax.persistence.TypedQuery;
import javax.persistence.criteria.CriteriaBuilder; import javax.persistence.criteria.CriteriaBuilder;
import javax.persistence.criteria.CriteriaQuery; import javax.persistence.criteria.CriteriaQuery;
import javax.persistence.criteria.Root; import javax.persistence.criteria.Root;
@@ -10,13 +9,12 @@ import xyz.danielcortes.models.Autor;
public class AutorRepository extends BaseRepository<Autor> { public class AutorRepository extends BaseRepository<Autor> {
public List<Autor> getAll() { public AutorRepository() {
TypedQuery<Autor> query = em.createQuery("SELECT a FROM Autor a", Autor.class); super(Autor.class);
return query.getResultList();
} }
public List<Autor> search(String term) { public List<Autor> search(String term) {
CriteriaBuilder cb = em.getCriteriaBuilder(); CriteriaBuilder cb = this.em.getCriteriaBuilder();
CriteriaQuery<Autor> query = cb.createQuery(Autor.class); CriteriaQuery<Autor> query = cb.createQuery(Autor.class);
Root<Autor> r = query.from(Autor.class); Root<Autor> r = query.from(Autor.class);
query.where( query.where(
@@ -26,6 +24,6 @@ public class AutorRepository extends BaseRepository<Autor> {
cb.like(cb.lower(r.get("apellidoMaterno")), "%" + term.toLowerCase() + "%") cb.like(cb.lower(r.get("apellidoMaterno")), "%" + term.toLowerCase() + "%")
) )
); );
return em.createQuery(query).getResultList(); return this.em.createQuery(query).getResultList();
} }
} }

View File

@@ -1,7 +1,6 @@
package xyz.danielcortes.repository; package xyz.danielcortes.repository;
import java.util.List; import java.util.List;
import javax.persistence.TypedQuery;
import javax.persistence.criteria.CriteriaBuilder; import javax.persistence.criteria.CriteriaBuilder;
import javax.persistence.criteria.CriteriaQuery; import javax.persistence.criteria.CriteriaQuery;
import javax.persistence.criteria.Root; import javax.persistence.criteria.Root;
@@ -10,18 +9,17 @@ import xyz.danielcortes.models.Categoria;
public class CategoriaRepository extends BaseRepository<Categoria> { public class CategoriaRepository extends BaseRepository<Categoria> {
public List<Categoria> getAll() { public CategoriaRepository() {
TypedQuery<Categoria> query = em.createQuery("SELECT c from Categoria c", Categoria.class); super(Categoria.class);
return query.getResultList();
} }
public List<Categoria> search(String term) { public List<Categoria> search(String term) {
CriteriaBuilder cb = em.getCriteriaBuilder(); CriteriaBuilder cb = this.em.getCriteriaBuilder();
CriteriaQuery<Categoria> query = cb.createQuery(Categoria.class); CriteriaQuery<Categoria> query = cb.createQuery(Categoria.class);
Root<Categoria> r = query.from(Categoria.class); Root<Categoria> r = query.from(Categoria.class);
query.where( query.where(
cb.like(cb.lower(r.get("nombre")), "%" + term.toLowerCase() + "%") cb.like(cb.lower(r.get("nombre")), "%" + term.toLowerCase() + "%")
); );
return em.createQuery(query).getResultList(); return this.em.createQuery(query).getResultList();
} }
} }

View File

@@ -7,9 +7,8 @@ import xyz.danielcortes.models.Cliente;
public class ClienteRespository extends BaseRepository<Cliente> { public class ClienteRespository extends BaseRepository<Cliente> {
public List<Cliente> getAll() { public ClienteRespository() {
TypedQuery<Cliente> query = this.em.createQuery("SELECT c FROM Cliente c", Cliente.class); super(Cliente.class);
return query.getResultList();
} }
public List<Cliente> search(String term) { public List<Cliente> search(String term) {

View File

@@ -1,26 +1,26 @@
package xyz.danielcortes.repository; package xyz.danielcortes.repository;
import java.util.ArrayList;
import java.util.List; import java.util.List;
import javax.persistence.TypedQuery; import javax.persistence.Query;
import xyz.danielcortes.framework.BaseRepository; import xyz.danielcortes.framework.BaseRepository;
import xyz.danielcortes.models.Compra; import xyz.danielcortes.models.Compra;
public class CompraRepository extends BaseRepository<Compra> { public class CompraRepository extends BaseRepository<Compra> {
public List<Compra> getAll() { public CompraRepository() {
TypedQuery<Compra> query = this.em.createQuery("SELECT a FROM Compra a", Compra.class); super(Compra.class);
return query.getResultList();
} }
public List<Compra> search(String term) { public List<Compra> search(String term) {
// Query query = this.em.createQuery("SELECT c FROM Compra c WHERE " Query query = this.em.createQuery("SELECT c FROM Compra c WHERE "
// + "LOWER(c.factura.folio) LIKE :term OR " + "LOWER(c.factura.folio) LIKE :term OR "
// + "c.factura.precioNeto LIKE :term OR " + "CONCAT(c.factura.precioNeto, '') LIKE :term OR "
// + "c.factura.precioNeto + c.factura.precioIVA LIKE :term OR " + "CONCAT(c.factura.precioNeto + c.factura.precioIVA, '') LIKE :term OR "
// + "LOWER(c.distribuidor.rut) LIKE :term OR " + "LOWER(c.distribuidor.rut) LIKE :term OR "
// + "COUNT(c.ejemplares.size) LIKE :term" + "CONCAT(COUNT(c.ejemplares.size), '') LIKE :term"
// ); );
return new ArrayList<>();
query.setParameter("term", term);
return query.getResultList();
} }
} }

View File

@@ -2,7 +2,6 @@ package xyz.danielcortes.repository;
import java.util.List; import java.util.List;
import javax.persistence.Query; import javax.persistence.Query;
import javax.persistence.TypedQuery;
import xyz.danielcortes.framework.BaseRepository; import xyz.danielcortes.framework.BaseRepository;
import xyz.danielcortes.models.Cliente; import xyz.danielcortes.models.Cliente;
import xyz.danielcortes.models.Correo; import xyz.danielcortes.models.Correo;
@@ -11,9 +10,8 @@ import xyz.danielcortes.models.Trabajador;
public class CorreoRepository extends BaseRepository<Correo> { public class CorreoRepository extends BaseRepository<Correo> {
public List<Correo> getAll() { public CorreoRepository() {
TypedQuery<Correo> query = this.em.createQuery("SELECT c FROM Correo c", Correo.class); super(Correo.class);
return query.getResultList();
} }
public List<Correo> search(String term) { public List<Correo> search(String term) {

View File

@@ -2,7 +2,6 @@ package xyz.danielcortes.repository;
import java.util.List; import java.util.List;
import javax.persistence.Query; import javax.persistence.Query;
import javax.persistence.TypedQuery;
import xyz.danielcortes.framework.BaseRepository; import xyz.danielcortes.framework.BaseRepository;
import xyz.danielcortes.models.Cliente; import xyz.danielcortes.models.Cliente;
import xyz.danielcortes.models.Direccion; import xyz.danielcortes.models.Direccion;
@@ -11,9 +10,8 @@ import xyz.danielcortes.models.Trabajador;
public class DireccionRepository extends BaseRepository<Direccion> { public class DireccionRepository extends BaseRepository<Direccion> {
public List<Direccion> getAll() { public DireccionRepository() {
TypedQuery<Direccion> query = this.em.createQuery("SELECT t FROM Direccion t", Direccion.class); super(Direccion.class);
return query.getResultList();
} }
public List<Direccion> search(String term) { public List<Direccion> search(String term) {

View File

@@ -2,15 +2,13 @@ package xyz.danielcortes.repository;
import java.util.List; import java.util.List;
import javax.persistence.Query; import javax.persistence.Query;
import javax.persistence.TypedQuery;
import xyz.danielcortes.framework.BaseRepository; import xyz.danielcortes.framework.BaseRepository;
import xyz.danielcortes.models.Distribuidor; import xyz.danielcortes.models.Distribuidor;
public class DistribuidorRepository extends BaseRepository<Distribuidor> { public class DistribuidorRepository extends BaseRepository<Distribuidor> {
public List<Distribuidor> getAll() { public DistribuidorRepository() {
TypedQuery<Distribuidor> query = this.em.createQuery("SELECT d FROM Distribuidor d", Distribuidor.class); super(Distribuidor.class);
return query.getResultList();
} }
public List<Distribuidor> search(String term) { public List<Distribuidor> search(String term) {

View File

@@ -1,7 +1,6 @@
package xyz.danielcortes.repository; package xyz.danielcortes.repository;
import java.util.List; import java.util.List;
import javax.persistence.TypedQuery;
import javax.persistence.criteria.CriteriaBuilder; import javax.persistence.criteria.CriteriaBuilder;
import javax.persistence.criteria.CriteriaQuery; import javax.persistence.criteria.CriteriaQuery;
import javax.persistence.criteria.Root; import javax.persistence.criteria.Root;
@@ -10,18 +9,17 @@ import xyz.danielcortes.models.Editorial;
public class EditorialRepository extends BaseRepository<Editorial> { public class EditorialRepository extends BaseRepository<Editorial> {
public List<Editorial> getAll() { public EditorialRepository() {
TypedQuery<Editorial> query = em.createQuery("SELECT e FROM Editorial e", Editorial.class); super(Editorial.class);
return query.getResultList();
} }
public List<Editorial> search(String term) { public List<Editorial> search(String term) {
CriteriaBuilder cb = em.getCriteriaBuilder(); CriteriaBuilder cb = this.em.getCriteriaBuilder();
CriteriaQuery<Editorial> query = cb.createQuery(Editorial.class); CriteriaQuery<Editorial> query = cb.createQuery(Editorial.class);
Root<Editorial> r = query.from(Editorial.class); Root<Editorial> r = query.from(Editorial.class);
query.where( query.where(
cb.like(cb.lower(r.get("nombre")), "%" + term.toLowerCase() + "%") cb.like(cb.lower(r.get("nombre")), "%" + term.toLowerCase() + "%")
); );
return em.createQuery(query).getResultList(); return this.em.createQuery(query).getResultList();
} }
} }

View File

@@ -2,7 +2,6 @@ package xyz.danielcortes.repository;
import java.util.List; import java.util.List;
import javax.persistence.Query; import javax.persistence.Query;
import javax.persistence.TypedQuery;
import javax.persistence.criteria.CriteriaBuilder; import javax.persistence.criteria.CriteriaBuilder;
import javax.persistence.criteria.CriteriaQuery; import javax.persistence.criteria.CriteriaQuery;
import javax.persistence.criteria.Root; import javax.persistence.criteria.Root;
@@ -11,9 +10,8 @@ import xyz.danielcortes.models.Ejemplar;
public class EjemplarRepository extends BaseRepository<Ejemplar> { public class EjemplarRepository extends BaseRepository<Ejemplar> {
public List<Ejemplar> getAll() { public EjemplarRepository() {
TypedQuery<Ejemplar> query = this.em.createQuery("SELECT e FROM Ejemplar e", Ejemplar.class); super(Ejemplar.class);
return query.getResultList();
} }
public List<Ejemplar> search(String term) { public List<Ejemplar> search(String term) {

View File

@@ -2,15 +2,13 @@ package xyz.danielcortes.repository;
import java.util.List; import java.util.List;
import javax.persistence.Query; import javax.persistence.Query;
import javax.persistence.TypedQuery;
import xyz.danielcortes.framework.BaseRepository; import xyz.danielcortes.framework.BaseRepository;
import xyz.danielcortes.models.Empresa; import xyz.danielcortes.models.Empresa;
public class EmpresaRepository extends BaseRepository<Empresa> { public class EmpresaRepository extends BaseRepository<Empresa> {
public List<Empresa> getAll() { public EmpresaRepository() {
TypedQuery<Empresa> query = this.em.createQuery("SELECT e FROM Empresa e", Empresa.class); super(Empresa.class);
return query.getResultList();
} }
public List<Empresa> search(String term) { public List<Empresa> search(String term) {

View File

@@ -1,19 +1,17 @@
package xyz.danielcortes.repository; package xyz.danielcortes.repository;
import java.util.List;
import javax.persistence.TypedQuery; import javax.persistence.TypedQuery;
import xyz.danielcortes.framework.BaseRepository; import xyz.danielcortes.framework.BaseRepository;
import xyz.danielcortes.models.Estado; import xyz.danielcortes.models.Estado;
public class EstadoRepository extends BaseRepository<Estado> { public class EstadoRepository extends BaseRepository<Estado> {
public List<Estado> getAll() { public EstadoRepository() {
TypedQuery<Estado> query = em.createQuery("SELECT e FROM Estado e", Estado.class); super(Estado.class);
return query.getResultList();
} }
public Estado getByNombre(String nombre) { public Estado getByNombre(String nombre) {
TypedQuery<Estado> query = em.createQuery("SELECT e FROM Estado e WHERE nombre = :nombre", Estado.class); TypedQuery<Estado> query = this.em.createQuery("SELECT e FROM Estado e WHERE nombre = :nombre", Estado.class);
query.setParameter("nombre", nombre); query.setParameter("nombre", nombre);
return query.getSingleResult(); return query.getSingleResult();
} }

View File

@@ -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<Factura> {
public FacturaRepository() {
super(Factura.class);
}
public List<Factura> 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();
}
}

View File

@@ -1,7 +1,6 @@
package xyz.danielcortes.repository; package xyz.danielcortes.repository;
import java.util.List; import java.util.List;
import javax.persistence.TypedQuery;
import javax.persistence.criteria.CriteriaBuilder; import javax.persistence.criteria.CriteriaBuilder;
import javax.persistence.criteria.CriteriaQuery; import javax.persistence.criteria.CriteriaQuery;
import javax.persistence.criteria.Root; import javax.persistence.criteria.Root;
@@ -10,10 +9,8 @@ import xyz.danielcortes.models.Idioma;
public class IdiomaRepository extends BaseRepository<Idioma> { public class IdiomaRepository extends BaseRepository<Idioma> {
public List<Idioma> getAll() { public IdiomaRepository() {
TypedQuery<Idioma> query = this.em.createQuery("SELECT i FROM Idioma i", Idioma.class); super(Idioma.class);
return query.getResultList();
} }
public List<Idioma> search(String term) { public List<Idioma> search(String term) {

View File

@@ -1,7 +1,6 @@
package xyz.danielcortes.repository; package xyz.danielcortes.repository;
import java.util.List; import java.util.List;
import javax.persistence.TypedQuery;
import javax.persistence.criteria.CriteriaBuilder; import javax.persistence.criteria.CriteriaBuilder;
import javax.persistence.criteria.CriteriaQuery; import javax.persistence.criteria.CriteriaQuery;
import javax.persistence.criteria.Root; import javax.persistence.criteria.Root;
@@ -10,13 +9,13 @@ import xyz.danielcortes.models.Libro;
public class LibroRepository extends BaseRepository<Libro> { public class LibroRepository extends BaseRepository<Libro> {
public List<Libro> getAll() { public LibroRepository() {
TypedQuery<Libro> query = em.createQuery("SELECT l FROM Libro l", Libro.class); super(Libro.class);
return query.getResultList();
} }
public List<Libro> search(String term) { public List<Libro> search(String term) {
CriteriaBuilder cb = em.getCriteriaBuilder(); CriteriaBuilder cb = this.em.getCriteriaBuilder();
CriteriaQuery<Libro> query = cb.createQuery(Libro.class); CriteriaQuery<Libro> query = cb.createQuery(Libro.class);
Root<Libro> r = query.from(Libro.class); Root<Libro> r = query.from(Libro.class);
query.where( query.where(
@@ -26,6 +25,6 @@ public class LibroRepository extends BaseRepository<Libro> {
cb.like(r.get("precioReferencia").as(String.class), "%" + term.toLowerCase() + "%") cb.like(r.get("precioReferencia").as(String.class), "%" + term.toLowerCase() + "%")
) )
); );
return em.createQuery(query).getResultList(); return this.em.createQuery(query).getResultList();
} }
} }

View File

@@ -2,7 +2,6 @@ package xyz.danielcortes.repository;
import java.util.List; import java.util.List;
import javax.persistence.Query; import javax.persistence.Query;
import javax.persistence.TypedQuery;
import xyz.danielcortes.framework.BaseRepository; import xyz.danielcortes.framework.BaseRepository;
import xyz.danielcortes.models.Cliente; import xyz.danielcortes.models.Cliente;
import xyz.danielcortes.models.Distribuidor; import xyz.danielcortes.models.Distribuidor;
@@ -11,9 +10,8 @@ import xyz.danielcortes.models.Trabajador;
public class TelefonoRepository extends BaseRepository<Telefono> { public class TelefonoRepository extends BaseRepository<Telefono> {
public List<Telefono> getAll() { public TelefonoRepository() {
TypedQuery<Telefono> query = this.em.createQuery("SELECT t FROM Telefono t", Telefono.class); super(Telefono.class);
return query.getResultList();
} }
public List<Telefono> search(String term) { public List<Telefono> search(String term) {

View File

@@ -1,7 +1,6 @@
package xyz.danielcortes.repository; package xyz.danielcortes.repository;
import java.util.List; import java.util.List;
import javax.persistence.TypedQuery;
import javax.persistence.criteria.CriteriaBuilder; import javax.persistence.criteria.CriteriaBuilder;
import javax.persistence.criteria.CriteriaQuery; import javax.persistence.criteria.CriteriaQuery;
import javax.persistence.criteria.Root; import javax.persistence.criteria.Root;
@@ -10,13 +9,12 @@ import xyz.danielcortes.models.Trabajador;
public class TrabajadorRespository extends BaseRepository<Trabajador> { public class TrabajadorRespository extends BaseRepository<Trabajador> {
public List<Trabajador> getAll() { public TrabajadorRespository() {
TypedQuery<Trabajador> query = em.createQuery("SELECT t FROM Trabajador t", Trabajador.class); super(Trabajador.class);
return query.getResultList();
} }
public List<Trabajador> search(String term) { public List<Trabajador> search(String term) {
CriteriaBuilder cb = em.getCriteriaBuilder(); CriteriaBuilder cb = this.em.getCriteriaBuilder();
CriteriaQuery<Trabajador> query = cb.createQuery(Trabajador.class); CriteriaQuery<Trabajador> query = cb.createQuery(Trabajador.class);
Root<Trabajador> r = query.from(Trabajador.class); Root<Trabajador> r = query.from(Trabajador.class);
query.where( query.where(
@@ -28,7 +26,7 @@ public class TrabajadorRespository extends BaseRepository<Trabajador> {
cb.like(r.get("fechaContrato"), "%" + term.toLowerCase() + "%") cb.like(r.get("fechaContrato"), "%" + term.toLowerCase() + "%")
) )
); );
return em.createQuery(query).getResultList(); return this.em.createQuery(query).getResultList();
} }
} }

View File

@@ -8,6 +8,10 @@ import xyz.danielcortes.models.Usuario;
public class UsuarioRepository extends BaseRepository<Usuario> { public class UsuarioRepository extends BaseRepository<Usuario> {
public UsuarioRepository() {
super(Usuario.class);
}
public Optional<Usuario> getByName(String name) { public Optional<Usuario> getByName(String name) {
TypedQuery<Usuario> query = this.em.createQuery("SELECT u FROM Usuario u WHERE nombre = :nombre", Usuario.class); TypedQuery<Usuario> query = this.em.createQuery("SELECT u FROM Usuario u WHERE nombre = :nombre", Usuario.class);
query.setParameter("nombre", name); query.setParameter("nombre", name);

View File

@@ -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;
}
}

View File

@@ -1,10 +1,13 @@
package xyz.danielcortes.views.comprar; package xyz.danielcortes.views.comprar;
import com.intellij.uiDesigner.core.GridConstraints;
import com.intellij.uiDesigner.core.GridLayoutManager; import com.intellij.uiDesigner.core.GridLayoutManager;
import java.awt.Dimension;
import java.awt.Insets; import java.awt.Insets;
import javax.swing.JButton; import javax.swing.JButton;
import javax.swing.JComponent; import javax.swing.JComponent;
import javax.swing.JPanel; import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable; import javax.swing.JTable;
import javax.swing.JTextField; import javax.swing.JTextField;
import javax.swing.ListSelectionModel; import javax.swing.ListSelectionModel;
@@ -55,7 +58,7 @@ public class ComprarSearchPanel extends BasePanel {
@Override @Override
public JPanel getContentPane() { public JPanel getContentPane() {
return null; return this.contentPane;
} }
/** /**
@@ -64,15 +67,43 @@ public class ComprarSearchPanel extends BasePanel {
* @noinspection ALL * @noinspection ALL
*/ */
private void $$$setupUI$$$() { private void $$$setupUI$$$() {
createUIComponents();
contentPane = new JPanel(); contentPane = new JPanel();
contentPane.setLayout(new GridLayoutManager(1, 1, new Insets(20, 20, 20, 20), -1, -1)); 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,
* @noinspection ALL GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_WANT_GROW, null, null, null, 0, false));
*/ scrollPane1.setViewportView(table);
public JComponent $$$getRootComponent$$$() { final JPanel panel1 = new JPanel();
return contentPane; 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() { private void createUIComponents() {
@@ -101,4 +132,11 @@ public class ComprarSearchPanel extends BasePanel {
this.table = new JTable(this.model); this.table = new JTable(this.model);
this.table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); this.table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
} }
/**
* @noinspection ALL
*/
public JComponent $$$getRootComponent$$$() {
return contentPane;
}
} }