From 0e40880518271bb6db1c04cdd67ca526e2287537 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Cort=C3=A9s?= Date: Thu, 20 Jun 2019 12:24:39 -0400 Subject: [PATCH] Estaba trabajando en las compras y empeze a documentar :c --- .../controllers/LaunchController.java | 16 ++- .../comprar/ComprarSearchController.java | 10 ++ .../framework/BaseController.java | 25 +++++ .../xyz/danielcortes/framework/PanelName.java | 10 +- .../java/xyz/danielcortes/models/Factura.java | 4 + .../repository/CompraRepository.java | 25 +++++ .../views/comprar/ComprarLibroPanel.form | 12 -- .../views/comprar/ComprarLibroPanel.java | 42 ------- .../views/comprar/ComprarSearchPanel.form | 84 ++++++++++++++ .../views/comprar/ComprarSearchPanel.java | 104 ++++++++++++++++++ 10 files changed, 273 insertions(+), 59 deletions(-) create mode 100644 src/main/java/xyz/danielcortes/controllers/comprar/ComprarSearchController.java create mode 100644 src/main/java/xyz/danielcortes/repository/CompraRepository.java delete mode 100644 src/main/java/xyz/danielcortes/views/comprar/ComprarLibroPanel.form delete mode 100644 src/main/java/xyz/danielcortes/views/comprar/ComprarLibroPanel.java create mode 100644 src/main/java/xyz/danielcortes/views/comprar/ComprarSearchPanel.form create mode 100644 src/main/java/xyz/danielcortes/views/comprar/ComprarSearchPanel.java diff --git a/src/main/java/xyz/danielcortes/controllers/LaunchController.java b/src/main/java/xyz/danielcortes/controllers/LaunchController.java index a3b75c8..c09af8e 100644 --- a/src/main/java/xyz/danielcortes/controllers/LaunchController.java +++ b/src/main/java/xyz/danielcortes/controllers/LaunchController.java @@ -351,19 +351,27 @@ public class LaunchController { * @return JMenu con los MenuItem para acceder a las vistas. */ private JMenu createComprarMenu() { - JMenu comprarMenu = new JMenu("Comprar"); + JMenu comprarMenu = new JMenu("Compra, Venta y Arriendo"); JMenuItem comprarLibroItem = new JMenuItem("Comprar Libro"); + JMenuItem venderLibroItem = new JMenuItem("Vender Libro"); + JMenuItem arrendarLibroItem = new JMenuItem("Arrendar Libro"); - comprarLibroItem.addActionListener(e -> this.showCard(PanelName.COMPRAR_LIBRO)); + comprarLibroItem.addActionListener(e -> this.showCard(PanelName.COMPRAR_SEARCH)); + venderLibroItem.addActionListener(e -> this.showCard(PanelName.VENDER_SEARCH)); + arrendarLibroItem.addActionListener(e -> this.showCard(PanelName.ARRENDAR_SEARCH)); - comprarMenu.add(comprarMenu); + comprarMenu.add(comprarLibroItem); + comprarMenu.add(venderLibroItem); + comprarMenu.add(arrendarLibroItem); return comprarMenu; } /** - * Muestra la Carta con el nombre entregado Llama al metodo show del controlador de la carta a mostrar + * Muestra la Carta con el nombre entregado + *

+ * Llama al metodo show del controlador de la carta a mostrar * * @param name PanelName de la Carta que se quiere mostrar. */ diff --git a/src/main/java/xyz/danielcortes/controllers/comprar/ComprarSearchController.java b/src/main/java/xyz/danielcortes/controllers/comprar/ComprarSearchController.java new file mode 100644 index 0000000..47e91d8 --- /dev/null +++ b/src/main/java/xyz/danielcortes/controllers/comprar/ComprarSearchController.java @@ -0,0 +1,10 @@ +package xyz.danielcortes.controllers.comprar; + +import xyz.danielcortes.repository.CompraRepository; +import xyz.danielcortes.views.comprar.ComprarSearchPanel; + +public class ComprarSearchController { + + public ComprarSearchPanel view; + private CompraRepository repository; +} diff --git a/src/main/java/xyz/danielcortes/framework/BaseController.java b/src/main/java/xyz/danielcortes/framework/BaseController.java index 0f34c20..5d3cba9 100644 --- a/src/main/java/xyz/danielcortes/framework/BaseController.java +++ b/src/main/java/xyz/danielcortes/framework/BaseController.java @@ -2,22 +2,47 @@ package xyz.danielcortes.framework; import xyz.danielcortes.controllers.LaunchController; +/** + * Controlador base que debe ser extendido por todos los controladores que se utilizen en la aplicacion + */ public abstract class BaseController { + /** + * El LaunchController que ejecuta este controlador + */ protected LaunchController parentController; + /** + * @param parentController LaunchController que ejecuta este controlador + */ public BaseController(LaunchController parentController) { this.parentController = parentController; } + /** + * @return LaunchController que ejecuta este controlador + */ public LaunchController getParentController() { return this.parentController; } /** * Este metodo sera llamado cada vez que se necesite mostrar la vista que contiene + *

+ * Aqui debe prepararse la vista para ser mostrada, procesos como: + *

*/ public abstract void show(); + /** + * Entrega el BasePanel que maneja el controlador + * + * @return BasePanel + */ public abstract BasePanel getView(); } diff --git a/src/main/java/xyz/danielcortes/framework/PanelName.java b/src/main/java/xyz/danielcortes/framework/PanelName.java index a94585f..6354f95 100644 --- a/src/main/java/xyz/danielcortes/framework/PanelName.java +++ b/src/main/java/xyz/danielcortes/framework/PanelName.java @@ -97,5 +97,13 @@ public enum PanelName { CLIENTE_DIRECCION_CREATE, CLIENTE_DIRECCION_UPDATE, - COMPRAR_LIBRO, + COMPRAR_SEARCH, + COMPRAR_COMPRAR, + + VENDER_SEARCH, + VENDER_VENDER, + + ARRENDAR_SEARCH, + ARRENDAR_ARRENDAR, + ARRENDAR_RECIBIR, } diff --git a/src/main/java/xyz/danielcortes/models/Factura.java b/src/main/java/xyz/danielcortes/models/Factura.java index b53de14..9f86ef7 100644 --- a/src/main/java/xyz/danielcortes/models/Factura.java +++ b/src/main/java/xyz/danielcortes/models/Factura.java @@ -67,6 +67,10 @@ public class Factura { this.precioIVA = precioIVA; } + public Integer getPrecioBruto() { + return this.precioNeto + this.precioIVA; + } + public LocalDate getFechaVenta() { return this.fechaVenta; } diff --git a/src/main/java/xyz/danielcortes/repository/CompraRepository.java b/src/main/java/xyz/danielcortes/repository/CompraRepository.java new file mode 100644 index 0000000..cd41287 --- /dev/null +++ b/src/main/java/xyz/danielcortes/repository/CompraRepository.java @@ -0,0 +1,25 @@ +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.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 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 " + + "COCOUNT(c.ejemplares.size) LIKE :term" + ); + } +} diff --git a/src/main/java/xyz/danielcortes/views/comprar/ComprarLibroPanel.form b/src/main/java/xyz/danielcortes/views/comprar/ComprarLibroPanel.form deleted file mode 100644 index da28675..0000000 --- a/src/main/java/xyz/danielcortes/views/comprar/ComprarLibroPanel.form +++ /dev/null @@ -1,12 +0,0 @@ - -
- - - - - - - - - -
diff --git a/src/main/java/xyz/danielcortes/views/comprar/ComprarLibroPanel.java b/src/main/java/xyz/danielcortes/views/comprar/ComprarLibroPanel.java deleted file mode 100644 index 627ed7f..0000000 --- a/src/main/java/xyz/danielcortes/views/comprar/ComprarLibroPanel.java +++ /dev/null @@ -1,42 +0,0 @@ -package xyz.danielcortes.views.comprar; - -import com.intellij.uiDesigner.core.GridLayoutManager; -import java.awt.Insets; -import javax.swing.JComponent; -import javax.swing.JPanel; -import xyz.danielcortes.framework.BasePanel; - -public class ComprarLibroPanel extends BasePanel { - - private JPanel contentPane; - - { -// GUI initializer generated by IntelliJ IDEA GUI Designer -// >>> IMPORTANT!! <<< -// DO NOT EDIT OR ADD ANY CODE HERE! - this.$$$setupUI$$$(); - } - - @Override - public JPanel getContentPane() { - return null; - } - - /** - * Method generated by IntelliJ IDEA GUI Designer >>> IMPORTANT!! <<< DO NOT edit this method OR call it in your code! - * - * @noinspection ALL - */ - private void $$$setupUI$$$() { - contentPane = new JPanel(); - contentPane.setLayout(new GridLayoutManager(1, 1, new Insets(20, 20, 20, 20), -1, -1)); - } - - /** - * @noinspection ALL - */ - public JComponent $$$getRootComponent$$$() { - return contentPane; - } - -} diff --git a/src/main/java/xyz/danielcortes/views/comprar/ComprarSearchPanel.form b/src/main/java/xyz/danielcortes/views/comprar/ComprarSearchPanel.form new file mode 100644 index 0000000..268a712 --- /dev/null +++ b/src/main/java/xyz/danielcortes/views/comprar/ComprarSearchPanel.form @@ -0,0 +1,84 @@ + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
diff --git a/src/main/java/xyz/danielcortes/views/comprar/ComprarSearchPanel.java b/src/main/java/xyz/danielcortes/views/comprar/ComprarSearchPanel.java new file mode 100644 index 0000000..0097a47 --- /dev/null +++ b/src/main/java/xyz/danielcortes/views/comprar/ComprarSearchPanel.java @@ -0,0 +1,104 @@ +package xyz.danielcortes.views.comprar; + +import com.intellij.uiDesigner.core.GridLayoutManager; +import java.awt.Insets; +import javax.swing.JButton; +import javax.swing.JComponent; +import javax.swing.JPanel; +import javax.swing.JTable; +import javax.swing.JTextField; +import javax.swing.ListSelectionModel; +import xyz.danielcortes.framework.BasePanel; +import xyz.danielcortes.framework.BaseTableModel; +import xyz.danielcortes.models.Compra; + +public class ComprarSearchPanel extends BasePanel { + + private JPanel contentPane; + private JTextField searchField; + private JButton buscarButton; + private JTable table; + private BaseTableModel model; + private JButton comprarButton; + private JButton verButton; + + { +// GUI initializer generated by IntelliJ IDEA GUI Designer +// >>> IMPORTANT!! <<< +// DO NOT EDIT OR ADD ANY CODE HERE! + this.$$$setupUI$$$(); + } + + public JTextField getSearchField() { + return this.searchField; + } + + public JButton getBuscarButton() { + return this.buscarButton; + } + + public JTable getTable() { + return this.table; + } + + public BaseTableModel getModel() { + return this.model; + } + + public JButton getComprarButton() { + return this.comprarButton; + } + + public JButton getVerButton() { + return this.verButton; + } + + @Override + public JPanel getContentPane() { + return null; + } + + /** + * Method generated by IntelliJ IDEA GUI Designer >>> IMPORTANT!! <<< DO NOT edit this method OR call it in your code! + * + * @noinspection ALL + */ + private void $$$setupUI$$$() { + contentPane = new JPanel(); + contentPane.setLayout(new GridLayoutManager(1, 1, new Insets(20, 20, 20, 20), -1, -1)); + } + + /** + * @noinspection ALL + */ + public JComponent $$$getRootComponent$$$() { + return contentPane; + } + + private void createUIComponents() { + this.model = new BaseTableModel<>( + new String[]{"Folio Factura", "Precio Neto", "Precio Bruto", "Distribuidor", "Fecha Compra", "NÂș Libros Comprados"}, + (row, rowIndex, colIndex) -> { + switch (colIndex) { + case 0: + return row.get(rowIndex).getFactura().getFolio(); + case 1: + return row.get(rowIndex).getFactura().getPrecioNeto(); + case 2: + return row.get(rowIndex).getFactura().getPrecioBruto(); + case 3: + return row.get(rowIndex).getDistribuidor().getRut(); + case 4: + return row.get(rowIndex).getFactura().getFechaVenta(); + case 6: + return row.get(rowIndex).getEjemplares().size(); + default: + return null; + } + } + ); + // @formatter:on + this.table = new JTable(this.model); + this.table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); + } +}