Se aplico el estilo de codigo de google :3

https://github.com/google/styleguide
This commit is contained in:
Daniel Cortes
2019-03-01 23:28:43 -03:00
parent 412e128398
commit 95685b7f82
81 changed files with 8826 additions and 7757 deletions

View File

@@ -28,68 +28,72 @@ import danielcortes.xyz.controllers.BaseLayoutController;
import danielcortes.xyz.data.Configuration;
import danielcortes.xyz.data.DAOManager;
import danielcortes.xyz.views.BaseLayout;
import javax.swing.*;
import java.io.FileInputStream;
import java.io.IOException;
import java.util.Locale;
import java.util.logging.LogManager;
import javax.swing.JComponent;
import javax.swing.JFrame;
import javax.swing.UIManager;
import javax.swing.UnsupportedLookAndFeelException;
public class Main {
private static final int DATABASE_VERSION = 2;
static {
setUpLogger();
setUpSystemProperties();
updateDatabase();
private static final int DATABASE_VERSION = 2;
static {
setUpLogger();
setUpSystemProperties();
updateDatabase();
}
public static void main(String[] args) {
run();
}
private static void run() {
BaseLayout view = new BaseLayout();
BaseLayoutController controller = new BaseLayoutController(view);
executeView(view.getContentPanel());
}
private static void updateDatabase() {
DAOManager.getVersionDAO().updateTo(DATABASE_VERSION);
}
private static void executeView(JComponent view) {
JFrame frame = new JFrame(Configuration.get("nombre_caja"));
frame.setContentPane(view);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.pack();
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
private static void setUpSystemProperties() {
System.setProperty("awt.useSystemAAFontSettings", "on");
System.setProperty("swing.aatext", "true");
try {
UIManager.setLookAndFeel(Configuration.get("look_and_feel"));
} catch (ClassNotFoundException | InstantiationException | IllegalAccessException | UnsupportedLookAndFeelException e) {
e.printStackTrace();
}
public static void main(String[] args) {
run();
Locale.setDefault(new Locale("es"));
}
private static void setUpLogger() {
LogManager manager = LogManager.getLogManager();
try {
FileInputStream in = new FileInputStream("config/logging.properties");
manager.readConfiguration(in);
in.close();
} catch (IOException e) {
System.exit(1);
}
private static void run() {
BaseLayout view = new BaseLayout();
BaseLayoutController controller = new BaseLayoutController(view);
executeView(view.getContentPanel());
}
private static void updateDatabase(){
DAOManager.getVersionDAO().updateTo(DATABASE_VERSION);
}
private static void executeView(JComponent view) {
JFrame frame = new JFrame(Configuration.get("nombre_caja"));
frame.setContentPane(view);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.pack();
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
private static void setUpSystemProperties() {
System.setProperty("awt.useSystemAAFontSettings", "on");
System.setProperty("swing.aatext", "true");
try {
UIManager.setLookAndFeel(Configuration.get("look_and_feel"));
} catch (ClassNotFoundException | InstantiationException | IllegalAccessException | UnsupportedLookAndFeelException e) {
e.printStackTrace();
}
Locale.setDefault(new Locale("es"));
}
private static void setUpLogger() {
LogManager manager = LogManager.getLogManager();
try {
FileInputStream in = new FileInputStream("config/logging.properties");
manager.readConfiguration(in);
in.close();
} catch (IOException e) {
System.exit(1);
}
}
}
}

View File

@@ -31,228 +31,233 @@ import danielcortes.xyz.models.efectivo.Efectivo;
import danielcortes.xyz.views.ArqueoView;
import danielcortes.xyz.views.CalcularFondoView;
import danielcortes.xyz.views.components.NumberFormatedTextField;
import javax.swing.*;
import java.awt.*;
import java.awt.Color;
import javax.swing.KeyStroke;
/**
* Controlador destinado a la vista ArqueoView
* Maneja su contenido y las acciones que esta realiza.
* Controlador destinado a la vista ArqueoView Maneja su contenido y las acciones que esta realiza.
*/
public class ArqueoController extends BaseController{
private ArqueoView view;
private Caja caja;
private Efectivo efectivo;
private Documentos documentos;
public class ArqueoController extends BaseController {
/**
* Crea el controlador y ejecuta el metodo que genera los eventos para su vista.
*/
public ArqueoController(ArqueoView view) {
this.view = view;
this.setUpViewEvents();
private ArqueoView view;
private Caja caja;
private Efectivo efectivo;
private Documentos documentos;
/**
* Crea el controlador y ejecuta el metodo que genera los eventos para su vista.
*/
public ArqueoController(ArqueoView view) {
this.view = view;
this.setUpViewEvents();
}
/**
* Actualiza los campos de documentos, efectivo y resumen con los datos de la caja.
*
* @param caja Caja para la cual se seleccionaran los datos a mostrar
*/
public void updateCaja(Caja caja) {
this.caja = caja;
this.fillDocumentos();
this.fillEfectivo();
this.fillResumen();
}
/**
* Acceso publico para rellenar el resumen
*/
public void updateResumen() {
this.fillResumen();
}
/**
* Rellena los campos del efectivo con la instancia de efectivo que pertenece a la caja
*/
private void fillEfectivo() {
this.efectivo = DAOManager.getEfectivoDAO().findByCaja(this.caja);
this.view.getVeinteMilField().setValue(efectivo.getVeinteMil());
this.view.getDiezMilField().setValue(efectivo.getDiezMil());
this.view.getCincoMilField().setValue(efectivo.getCincoMil());
this.view.getDosMilField().setValue(efectivo.getDosMil());
this.view.getMilField().setValue(efectivo.getMil());
this.view.getQuinientosField().setValue(efectivo.getQuinientos());
this.view.getCienField().setValue(efectivo.getCien());
this.view.getCincuentaField().setValue(efectivo.getCincuenta());
this.view.getDiezField().setValue(efectivo.getDiez());
}
/**
* Rellea los campos de documentos con la instancia de documentos que pertenece a la caja
*/
private void fillDocumentos() {
this.documentos = DAOManager.getDocumentosDAO().findByCaja(caja);
this.view.getTarjetasField().setValue(documentos.getTarjetas());
this.view.getChequesField().setValue(documentos.getCheques());
this.view.getRetiroField().setValue(documentos.getRetiros());
}
/**
* Llama a todos los metodos que llenan y calculan los campos de resumen
*/
private void fillResumen() {
this.updateResumenEfectivo();
this.updateResumenDocumentos();
this.updateResumenEgresos();
this.updateResumenArqueo();
}
/**
* Calcula el total de efectivo y lo muestra en el efectivoField
*/
private void updateResumenEfectivo() {
NumberFormatedTextField efectivoField = this.view.getEfectivoField();
int total = DAOManager.getEfectivoDAO().getTotalEfectivo(this.caja);
efectivoField.setValue(total);
}
/**
* Calcula el total de documentos y lo muestra en el documentosField
*/
private void updateResumenDocumentos() {
NumberFormatedTextField documentosField = this.view.getDocumentosField();
int total = DAOManager.getDocumentosDAO().getTotalDocumentos(this.caja);
documentosField.setValue(total);
}
/**
* Obtiene el total de egresos y lo muestra en el campo de egresosField
*/
private void updateResumenEgresos() {
int total = DAOManager.getEgresoDAO().getTotalEgreso(this.caja);
this.view.getEgresosField().setValue(total);
}
/**
* Calcula los datos de arqueo, rendido y ajuste y los muestra en sus campos correspondientes
*/
private void updateResumenArqueo() {
int totalEfectivo = DAOManager.getEfectivoDAO().getTotalEfectivo(this.caja);
int totalDocumentos = DAOManager.getDocumentosDAO().getTotalDocumentos(this.caja);
int totalEgresos = DAOManager.getEgresoDAO().getTotalEgreso(this.caja);
int totalIngresos = DAOManager.getIngresoDAO().getTotalIngreso(this.caja);
int rendido = totalDocumentos + totalEfectivo + totalEgresos;
int diferencia = rendido - totalIngresos;
this.view.getRendidoField().setValue(rendido);
this.view.getDebeRendirField().setValue(totalIngresos);
this.view.getDiferenciaField().setValue(diferencia);
if (diferencia < 0) {
this.view.getDiferenciaField().setForeground(new Color(255, 0, 0));
} else {
this.view.getDiferenciaField().setForeground(new Color(0, 0, 0));
}
/**
* Actualiza los campos de documentos, efectivo y resumen con los datos de la caja.
*
* @param caja Caja para la cual se seleccionaran los datos a mostrar
*/
public void updateCaja(Caja caja) {
this.caja = caja;
this.fillDocumentos();
this.fillEfectivo();
this.fillResumen();
}
}
/**
* Acceso publico para rellenar el resumen
*/
public void updateResumen() {
this.fillResumen();
}
/**
* Setea los eventos de los fields de la vista
*/
private void setUpViewEvents() {
moveTo(this.view.getVeinteMilField(), this.view.getDiezMilField());
moveTo(this.view.getDiezMilField(), this.view.getCincoMilField());
moveTo(this.view.getCincoMilField(), this.view.getDosMilField());
moveTo(this.view.getDosMilField(), this.view.getMilField());
moveTo(this.view.getMilField(), this.view.getQuinientosField());
moveTo(this.view.getQuinientosField(), this.view.getCienField());
moveTo(this.view.getCienField(), this.view.getCincuentaField());
moveTo(this.view.getCincuentaField(), this.view.getDiezField());
doAction(this.view.getDiezField(), "save", KeyStroke.getKeyStroke("ENTER"),
e -> this.guardarEfectivoActionListener());
moveTo(this.view.getChequesField(), this.view.getTarjetasField());
moveTo(this.view.getTarjetasField(), this.view.getRetiroField());
doAction(this.view.getRetiroField(), "save", KeyStroke.getKeyStroke("ENTER"),
e -> this.guardarDocumentosActionListener());
/**
* Rellena los campos del efectivo con la instancia de efectivo que pertenece a la caja
*/
private void fillEfectivo() {
this.efectivo = DAOManager.getEfectivoDAO().findByCaja(this.caja);
this.view.getVeinteMilField().setValue(efectivo.getVeinteMil());
this.view.getDiezMilField().setValue(efectivo.getDiezMil());
this.view.getCincoMilField().setValue(efectivo.getCincoMil());
this.view.getDosMilField().setValue(efectivo.getDosMil());
this.view.getMilField().setValue(efectivo.getMil());
this.view.getQuinientosField().setValue(efectivo.getQuinientos());
this.view.getCienField().setValue(efectivo.getCien());
this.view.getCincuentaField().setValue(efectivo.getCincuenta());
this.view.getDiezField().setValue(efectivo.getDiez());
}
this.view.getGuardarEfectivoButton()
.addActionListener(e -> this.guardarEfectivoActionListener());
this.view.getGuardarDocumentosButton()
.addActionListener(e -> this.guardarEfectivoActionListener());
this.view.getCalcularFondoButton().addActionListener(e -> this.calcularFondoActionListener());
}
/**
* Rellea los campos de documentos con la instancia de documentos que pertenece a la caja
*/
private void fillDocumentos() {
this.documentos = DAOManager.getDocumentosDAO().findByCaja(caja);
this.view.getTarjetasField().setValue(documentos.getTarjetas());
this.view.getChequesField().setValue(documentos.getCheques());
this.view.getRetiroField().setValue(documentos.getRetiros());
}
/**
* Llama a los metodos necesarios para guardar los campos de efectivo Primero llama a normalizar
* el input, luego a esconder los mensajes de error, para finalmente llamar a guardar el efectivo
*/
private void guardarEfectivoActionListener() {
this.view.getGuardarEfectivoButton().requestFocus();
this.guardarEfectivo();
}
/**
* Llama a todos los metodos que llenan y calculan los campos de resumen
*/
private void fillResumen() {
this.updateResumenEfectivo();
this.updateResumenDocumentos();
this.updateResumenEgresos();
this.updateResumenArqueo();
}
/**
* Llama a los metodos necesarios para guardar los documentos Primero llama a normalizar el input,
* luego a esconder los mensajes de error y finalmente a guardar los documentos
*/
private void guardarDocumentosActionListener() {
this.view.getGuardarDocumentosButton().requestFocus();
this.guardarDocumentos();
}
/**
* Calcula el total de efectivo y lo muestra en el efectivoField
*/
private void updateResumenEfectivo() {
NumberFormatedTextField efectivoField = this.view.getEfectivoField();
int total = DAOManager.getEfectivoDAO().getTotalEfectivo(this.caja);
efectivoField.setValue(total);
}
/**
* Lanza la ventana en la que se puede calcular el fondo de la caja.
*/
private void calcularFondoActionListener() {
CalcularFondoView view = new CalcularFondoView();
CalcularFondoController controller = new CalcularFondoController(view, this.caja);
launchFrame(view.getContentPanel(), "Calcular Fondo");
}
/**
* Calcula el total de documentos y lo muestra en el documentosField
*/
private void updateResumenDocumentos() {
NumberFormatedTextField documentosField = this.view.getDocumentosField();
int total = DAOManager.getDocumentosDAO().getTotalDocumentos(this.caja);
documentosField.setValue(total);
}
/**
* Guarda los datos del detalle de efectivo solo despues de que los campos sean validados, luego
* de guardar llama a updateResumenEfectivo y updateResumenArqueo para actualizar los datos en
* efectivoField y arqueoField
*/
private void guardarEfectivo() {
int diez = this.view.getDiezField().getValue();
int cincuenta = this.view.getCincuentaField().getValue();
int cien = this.view.getCienField().getValue();
int quinientos = this.view.getQuinientosField().getValue();
int mil = this.view.getMilField().getValue();
int dosMil = this.view.getDosMilField().getValue();
int cincoMil = this.view.getCincoMilField().getValue();
int diezMil = this.view.getDiezMilField().getValue();
int veinteMil = this.view.getVeinteMilField().getValue();
/**
* Obtiene el total de egresos y lo muestra en el campo de egresosField
*/
private void updateResumenEgresos() {
int total = DAOManager.getEgresoDAO().getTotalEgreso(this.caja);
this.view.getEgresosField().setValue(total);
}
this.efectivo.setDiez(diez);
this.efectivo.setCincuenta(cincuenta);
this.efectivo.setCien(cien);
this.efectivo.setQuinientos(quinientos);
this.efectivo.setMil(mil);
this.efectivo.setDosMil(dosMil);
this.efectivo.setCincoMil(cincoMil);
this.efectivo.setDiezMil(diezMil);
this.efectivo.setVeinteMil(veinteMil);
DAOManager.getEfectivoDAO().updateEfectivo(efectivo);
/**
* Calcula los datos de arqueo, rendido y ajuste y los muestra en sus campos correspondientes
*/
private void updateResumenArqueo() {
int totalEfectivo = DAOManager.getEfectivoDAO().getTotalEfectivo(this.caja);
int totalDocumentos = DAOManager.getDocumentosDAO().getTotalDocumentos(this.caja);
int totalEgresos = DAOManager.getEgresoDAO().getTotalEgreso(this.caja);
int totalIngresos = DAOManager.getIngresoDAO().getTotalIngreso(this.caja);
this.updateResumenEfectivo();
this.updateResumenArqueo();
}
int rendido = totalDocumentos + totalEfectivo + totalEgresos;
int diferencia = rendido - totalIngresos;
/**
* Guarda los datos del detalle de documentos solo despues de que los campos sean validados, luego
* de guardar llama a updateResumenDocumentos y updateResumenArqueo para actualizar los datos de
* documentosField y arqueoField
*/
private void guardarDocumentos() {
int tarjetas = this.view.getTarjetasField().getValue();
int cheques = this.view.getChequesField().getValue();
int retiros = this.view.getRetiroField().getValue();
this.view.getRendidoField().setValue(rendido);
this.view.getDebeRendirField().setValue(totalIngresos);
this.view.getDiferenciaField().setValue(diferencia);
this.documentos.setTarjetas(tarjetas);
this.documentos.setCheques(cheques);
this.documentos.setRetiros(retiros);
DAOManager.getDocumentosDAO().updateDocumentos(documentos);
if (diferencia < 0) {
this.view.getDiferenciaField().setForeground(new Color(255, 0, 0));
} else {
this.view.getDiferenciaField().setForeground(new Color(0, 0, 0));
}
}
/**
* Setea los eventos de los fields de la vista
*/
private void setUpViewEvents() {
moveTo(this.view.getVeinteMilField(), this.view.getDiezMilField());
moveTo(this.view.getDiezMilField(), this.view.getCincoMilField());
moveTo(this.view.getCincoMilField(), this.view.getDosMilField());
moveTo(this.view.getDosMilField(), this.view.getMilField());
moveTo(this.view.getMilField(), this.view.getQuinientosField());
moveTo(this.view.getQuinientosField(), this.view.getCienField());
moveTo(this.view.getCienField(), this.view.getCincuentaField());
moveTo(this.view.getCincuentaField(), this.view.getDiezField());
doAction(this.view.getDiezField(), "save", KeyStroke.getKeyStroke("ENTER"), e -> this.guardarEfectivoActionListener());
moveTo(this.view.getChequesField(), this.view.getTarjetasField());
moveTo(this.view.getTarjetasField(), this.view.getRetiroField());
doAction(this.view.getRetiroField(), "save", KeyStroke.getKeyStroke("ENTER"), e -> this.guardarDocumentosActionListener());
this.view.getGuardarEfectivoButton().addActionListener(e -> this.guardarEfectivoActionListener());
this.view.getGuardarDocumentosButton().addActionListener(e -> this.guardarEfectivoActionListener());
this.view.getCalcularFondoButton().addActionListener(e -> this.calcularFondoActionListener());
}
/**
* Llama a los metodos necesarios para guardar los campos de efectivo
* Primero llama a normalizar el input, luego a esconder los mensajes de error, para finalmente llamar a guardar el efectivo
*/
private void guardarEfectivoActionListener() {
this.view.getGuardarEfectivoButton().requestFocus();
this.guardarEfectivo();
}
/**
* Llama a los metodos necesarios para guardar los documentos
* Primero llama a normalizar el input, luego a esconder los mensajes de error y finalmente a guardar los documentos
*/
private void guardarDocumentosActionListener() {
this.view.getGuardarDocumentosButton().requestFocus();
this.guardarDocumentos();
}
/**
* Lanza la ventana en la que se puede calcular el fondo de la caja.
*/
private void calcularFondoActionListener() {
CalcularFondoView view = new CalcularFondoView();
CalcularFondoController controller = new CalcularFondoController(view, this.caja);
launchFrame(view.getContentPanel(), "Calcular Fondo");
}
/**
* Guarda los datos del detalle de efectivo solo despues de que los campos sean validados, luego de guardar
* llama a updateResumenEfectivo y updateResumenArqueo para actualizar los datos en efectivoField y arqueoField
*/
private void guardarEfectivo() {
int diez = this.view.getDiezField().getValue();
int cincuenta = this.view.getCincuentaField().getValue();
int cien = this.view.getCienField().getValue();
int quinientos = this.view.getQuinientosField().getValue();
int mil = this.view.getMilField().getValue();
int dosMil = this.view.getDosMilField().getValue();
int cincoMil = this.view.getCincoMilField().getValue();
int diezMil = this.view.getDiezMilField().getValue();
int veinteMil = this.view.getVeinteMilField().getValue();
this.efectivo.setDiez(diez);
this.efectivo.setCincuenta(cincuenta);
this.efectivo.setCien(cien);
this.efectivo.setQuinientos(quinientos);
this.efectivo.setMil(mil);
this.efectivo.setDosMil(dosMil);
this.efectivo.setCincoMil(cincoMil);
this.efectivo.setDiezMil(diezMil);
this.efectivo.setVeinteMil(veinteMil);
DAOManager.getEfectivoDAO().updateEfectivo(efectivo);
this.updateResumenEfectivo();
this.updateResumenArqueo();
}
/**
* Guarda los datos del detalle de documentos solo despues de que los campos sean validados, luego de guardar
* llama a updateResumenDocumentos y updateResumenArqueo para actualizar los datos de documentosField y arqueoField
*/
private void guardarDocumentos() {
int tarjetas = this.view.getTarjetasField().getValue();
int cheques = this.view.getChequesField().getValue();
int retiros = this.view.getRetiroField().getValue();
this.documentos.setTarjetas(tarjetas);
this.documentos.setCheques(cheques);
this.documentos.setRetiros(retiros);
DAOManager.getDocumentosDAO().updateDocumentos(documentos);
this.updateResumenDocumentos();
this.updateResumenArqueo();
}
this.updateResumenDocumentos();
this.updateResumenArqueo();
}
}

View File

@@ -2,41 +2,44 @@ package danielcortes.xyz.controllers;
import danielcortes.xyz.controllers.actions.BasicAction;
import danielcortes.xyz.data.Configuration;
import javax.swing.*;
import java.awt.*;
import java.awt.Dimension;
import javax.swing.JComponent;
import javax.swing.JFrame;
import javax.swing.KeyStroke;
class BaseController {
static void moveTo(JComponent origin, JComponent destiny) {
KeyStroke next = KeyStroke.getKeyStroke("ENTER");
KeyStroke back = KeyStroke.getKeyStroke("ESCAPE");
origin.getInputMap(JComponent.WHEN_FOCUSED).put(next, "nextField");
destiny.getInputMap(JComponent.WHEN_FOCUSED).put(back, "previousField");
origin.getActionMap().put("nextField", (BasicAction) e -> destiny.requestFocus());
destiny.getActionMap().put("previousField", (BasicAction) e -> origin.requestFocus());
}
static void doAction(JComponent target, String name, KeyStroke keyStroke, BasicAction action){
target.getInputMap(JComponent.WHEN_FOCUSED).put(keyStroke, name);
target.getActionMap().put(name, action);
}
static void launchFrame(JComponent view, String title) {
JFrame frame = new JFrame(title + ": " + Configuration.get("nombre_caja"));
frame.setContentPane(view);
frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
static void moveTo(JComponent origin, JComponent destiny) {
KeyStroke next = KeyStroke.getKeyStroke("ENTER");
KeyStroke back = KeyStroke.getKeyStroke("ESCAPE");
origin.getInputMap(JComponent.WHEN_FOCUSED).put(next, "nextField");
destiny.getInputMap(JComponent.WHEN_FOCUSED).put(back, "previousField");
origin.getActionMap().put("nextField", (BasicAction) e -> destiny.requestFocus());
destiny.getActionMap().put("previousField", (BasicAction) e -> origin.requestFocus());
}
frame.pack();
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
static void doAction(JComponent target, String name, KeyStroke keyStroke, BasicAction action) {
target.getInputMap(JComponent.WHEN_FOCUSED).put(keyStroke, name);
target.getActionMap().put(name, action);
}
static void launchFrame(JComponent view, String title, Dimension d){
JFrame frame = new JFrame(title + ": " + Configuration.get("nombre_caja"));
frame.setContentPane(view);
frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
static void launchFrame(JComponent view, String title) {
JFrame frame = new JFrame(title + ": " + Configuration.get("nombre_caja"));
frame.setContentPane(view);
frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
frame.setSize(d);
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
frame.pack();
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
static void launchFrame(JComponent view, String title, Dimension d) {
JFrame frame = new JFrame(title + ": " + Configuration.get("nombre_caja"));
frame.setContentPane(view);
frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
frame.setSize(d);
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
}

View File

@@ -1,84 +1,89 @@
package danielcortes.xyz.controllers;
import danielcortes.xyz.views.*;
import java.awt.*;
import danielcortes.xyz.views.BaseLayout;
import danielcortes.xyz.views.CajasView;
import danielcortes.xyz.views.EstadoResultadoView;
import danielcortes.xyz.views.InformesSideBar;
import danielcortes.xyz.views.MainSideBar;
import java.awt.CardLayout;
public class BaseLayoutController extends BaseController {
private final String MAIN_SIDEBAR = "MAIN";
private final String INFORMES_SIDEBAR = "INFORMES";
private final String CAJAS_MAIN = "CAJAS";
private final String ESTADO_RESULTADO_MAIN = "ESTADO_RESULTADO";
private BaseLayout baseLayoutView;
private final String MAIN_SIDEBAR = "MAIN";
private final String INFORMES_SIDEBAR = "INFORMES";
private final String CAJAS_MAIN = "CAJAS";
private final String ESTADO_RESULTADO_MAIN = "ESTADO_RESULTADO";
private MainSideBarController mainSideBarController;
private InformesSideBarController informesSideBarController;
private BaseLayout baseLayoutView;
private CajasController cajasController;
private EstadoResultadoController estadoResultadoController;
private MainSideBarController mainSideBarController;
private InformesSideBarController informesSideBarController;
public BaseLayoutController(BaseLayout baseLayoutView) {
this.baseLayoutView = baseLayoutView;
this.loadSideBarContents();
this.loadMainPanelContents();
this.setupViewEvents();
}
private CajasController cajasController;
private EstadoResultadoController estadoResultadoController;
private void setupViewEvents() {
CardLayout sideLayout = (CardLayout) this.baseLayoutView.getSidePanel().getLayout();
CardLayout mainLayout = (CardLayout) this.baseLayoutView.getMainPanel().getLayout();
public BaseLayoutController(BaseLayout baseLayoutView) {
this.baseLayoutView = baseLayoutView;
this.loadSideBarContents();
this.loadMainPanelContents();
this.setupViewEvents();
}
this.mainSideBarController.getView().getInformesMensualesButton().addActionListener(
e -> sideLayout.show(this.baseLayoutView.getSidePanel(), INFORMES_SIDEBAR)
);
this.mainSideBarController.getView().getCajasButton().addActionListener(
e -> mainLayout.show(this.baseLayoutView.getMainPanel(), CAJAS_MAIN)
);
private void setupViewEvents() {
CardLayout sideLayout = (CardLayout) this.baseLayoutView.getSidePanel().getLayout();
CardLayout mainLayout = (CardLayout) this.baseLayoutView.getMainPanel().getLayout();
this.informesSideBarController.getView().getVolverButton().addActionListener(
e -> sideLayout.show(this.baseLayoutView.getSidePanel(), MAIN_SIDEBAR)
);
this.mainSideBarController.getView().getInformesMensualesButton().addActionListener(
e -> sideLayout.show(this.baseLayoutView.getSidePanel(), INFORMES_SIDEBAR)
);
this.mainSideBarController.getView().getCajasButton().addActionListener(
e -> mainLayout.show(this.baseLayoutView.getMainPanel(), CAJAS_MAIN)
);
this.informesSideBarController.getView().getEstadoResultadoButton().addActionListener(e -> {
this.estadoResultadoController.update();
mainLayout.show(this.baseLayoutView.getMainPanel(), ESTADO_RESULTADO_MAIN);
});
this.informesSideBarController.getView().getVolverButton().addActionListener(
e -> sideLayout.show(this.baseLayoutView.getSidePanel(), MAIN_SIDEBAR)
);
}
this.informesSideBarController.getView().getEstadoResultadoButton().addActionListener(e -> {
this.estadoResultadoController.update();
mainLayout.show(this.baseLayoutView.getMainPanel(), ESTADO_RESULTADO_MAIN);
});
private void loadSideBarContents() {
this.loadMainSideBar();
this.loadInformesSideBar();
}
}
private void loadMainSideBar() {
MainSideBar mainSideBar = new MainSideBar();
this.mainSideBarController = new MainSideBarController(mainSideBar);
this.baseLayoutView.getSidePanel().add(mainSideBar.getContentPanel(), MAIN_SIDEBAR);
}
private void loadSideBarContents() {
this.loadMainSideBar();
this.loadInformesSideBar();
}
private void loadInformesSideBar() {
InformesSideBar informesSideBar = new InformesSideBar();
this.informesSideBarController = new InformesSideBarController(informesSideBar);
this.baseLayoutView.getSidePanel().add(informesSideBar.getContentPanel(), INFORMES_SIDEBAR);
}
private void loadMainSideBar() {
MainSideBar mainSideBar = new MainSideBar();
this.mainSideBarController = new MainSideBarController(mainSideBar);
this.baseLayoutView.getSidePanel().add(mainSideBar.getContentPanel(), MAIN_SIDEBAR);
}
private void loadMainPanelContents() {
this.loadCajasMainContent();
this.loadEstadoResultadoMainContent();
}
private void loadInformesSideBar() {
InformesSideBar informesSideBar = new InformesSideBar();
this.informesSideBarController = new InformesSideBarController(informesSideBar);
this.baseLayoutView.getSidePanel().add(informesSideBar.getContentPanel(), INFORMES_SIDEBAR);
}
private void loadCajasMainContent() {
CajasView cajasView = new CajasView();
this.cajasController= new CajasController(cajasView);
this.baseLayoutView.getMainPanel().add(cajasView.getContentPanel(), CAJAS_MAIN);
}
private void loadMainPanelContents() {
this.loadCajasMainContent();
this.loadEstadoResultadoMainContent();
}
private void loadEstadoResultadoMainContent() {
EstadoResultadoView estadoResultadoView = new EstadoResultadoView();
this.estadoResultadoController = new EstadoResultadoController(estadoResultadoView);
this.baseLayoutView.getMainPanel().add(estadoResultadoView.getContentPanel(), ESTADO_RESULTADO_MAIN);
}
private void loadCajasMainContent() {
CajasView cajasView = new CajasView();
this.cajasController = new CajasController(cajasView);
this.baseLayoutView.getMainPanel().add(cajasView.getContentPanel(), CAJAS_MAIN);
}
private void loadEstadoResultadoMainContent() {
EstadoResultadoView estadoResultadoView = new EstadoResultadoView();
this.estadoResultadoController = new EstadoResultadoController(estadoResultadoView);
this.baseLayoutView.getMainPanel()
.add(estadoResultadoView.getContentPanel(), ESTADO_RESULTADO_MAIN);
}
}

View File

@@ -28,147 +28,147 @@ import danielcortes.xyz.data.DAOManager;
import danielcortes.xyz.models.caja.Caja;
import danielcortes.xyz.models.documentos.Documentos;
import danielcortes.xyz.models.efectivo.Efectivo;
import danielcortes.xyz.views.*;
import java.awt.*;
import danielcortes.xyz.views.ArqueoView;
import danielcortes.xyz.views.CajasView;
import danielcortes.xyz.views.EgresosView;
import danielcortes.xyz.views.IngresosView;
import java.awt.CardLayout;
import java.time.LocalDate;
/**
* Controlador destinado a controlar la vista de CajasView
* Ademas es la que crea las vistas internas en un CardLayaut junto a sus controladores
* Controlador destinado a controlar la vista de CajasView Ademas es la que crea las vistas internas
* en un CardLayaut junto a sus controladores
*/
public class CajasController {
private CajasView view;
private IngresosController ingresosController;
private EgresosController egresosController;
private ArqueoController arqueoController;
private CajasView view;
/**
* Crea el controlador
* Necesita todos las interfaces DAO para poder asignarselos a sus vistas,
* esto con el objetivo que sean facilmente intercambiables.
* <p>
* Llama a los metodos que:
* - Cargan el contenido del CardLayout
* - Selecciona una fecha inicial
* - Genera los eventos de la vista
* - Presiona el boton de la vista inicial
*/
public CajasController(CajasView view) {
this.view = view;
this.loadCardContents();
this.setUpDate();
this.setUpViewEvents();
this.pressInitialButton();
}
private IngresosController ingresosController;
private EgresosController egresosController;
private ArqueoController arqueoController;
public CajasView getView() {
return view;
}
/**
* Crea el controlador Necesita todos las interfaces DAO para poder asignarselos a sus vistas,
* esto con el objetivo que sean facilmente intercambiables.
* <p>
* Llama a los metodos que: - Cargan el contenido del CardLayout - Selecciona una fecha inicial -
* Genera los eventos de la vista - Presiona el boton de la vista inicial
*/
public CajasController(CajasView view) {
this.view = view;
this.loadCardContents();
this.setUpDate();
this.setUpViewEvents();
this.pressInitialButton();
}
/**
* Coloca la fecha actual en el datepicker y luego llama a actualizar las cajas de las vistas
*/
private void setUpDate() {
this.view.getDatePicker().setDateToToday();
this.updateCaja();
}
public CajasView getView() {
return view;
}
/**
* Setea los eventos de los botones y el datepicker
* - Cada vez que se cambia la fecha en el datepicker se llama a actualizar la caja
* - Cuando se presiona uno de los botones muestra la vista correspondiente en el cardlayout
*/
private void setUpViewEvents() {
this.view.getEgresosButton().addActionListener(e -> {
CardLayout layout = (CardLayout) this.view.getCardPanel().getLayout();
layout.show(this.view.getCardPanel(), "EGRESOS");
});
this.view.getIngresosButton().addActionListener(e -> {
CardLayout layout = (CardLayout) this.view.getCardPanel().getLayout();
layout.show(this.view.getCardPanel(), "INGRESOS");
});
this.view.getArqueoButton().addActionListener(e -> {
this.arqueoController.updateResumen();
/**
* Coloca la fecha actual en el datepicker y luego llama a actualizar las cajas de las vistas
*/
private void setUpDate() {
this.view.getDatePicker().setDateToToday();
this.updateCaja();
}
CardLayout layout = (CardLayout) this.view.getCardPanel().getLayout();
layout.show(this.view.getCardPanel(), "ARQUEO");
});
this.view.getDatePicker().addDateChangeListener(e -> updateCaja());
}
/**
* Setea los eventos de los botones y el datepicker - Cada vez que se cambia la fecha en el
* datepicker se llama a actualizar la caja - Cuando se presiona uno de los botones muestra la
* vista correspondiente en el cardlayout
*/
private void setUpViewEvents() {
this.view.getEgresosButton().addActionListener(e -> {
CardLayout layout = (CardLayout) this.view.getCardPanel().getLayout();
layout.show(this.view.getCardPanel(), "EGRESOS");
});
this.view.getIngresosButton().addActionListener(e -> {
CardLayout layout = (CardLayout) this.view.getCardPanel().getLayout();
layout.show(this.view.getCardPanel(), "INGRESOS");
});
this.view.getArqueoButton().addActionListener(e -> {
this.arqueoController.updateResumen();
/**
* Llama a update caja con la fecha seleccionada en el datepicker en los controladores del manager.
*/
private void updateCaja() {
LocalDate selectedDate = this.view.getDatePicker().getDate();
Caja caja = DAOManager.getCajaDAO().getByFecha(selectedDate).orElseGet(() -> {
Caja c = new Caja();
c.setFecha(selectedDate);
DAOManager.getCajaDAO().insert(c);
CardLayout layout = (CardLayout) this.view.getCardPanel().getLayout();
layout.show(this.view.getCardPanel(), "ARQUEO");
});
this.view.getDatePicker().addDateChangeListener(e -> updateCaja());
}
Efectivo efectivo = new Efectivo();
efectivo.setCaja(c);
DAOManager.getEfectivoDAO().insertDefaultEfectivo(efectivo);
/**
* Llama a update caja con la fecha seleccionada en el datepicker en los controladores del
* manager.
*/
private void updateCaja() {
LocalDate selectedDate = this.view.getDatePicker().getDate();
Caja caja = DAOManager.getCajaDAO().getByFecha(selectedDate).orElseGet(() -> {
Caja c = new Caja();
c.setFecha(selectedDate);
DAOManager.getCajaDAO().insert(c);
Documentos documentos = new Documentos();
documentos.setCaja(c);
DAOManager.getDocumentosDAO().insertDefaultDocumentos(documentos);
return c;
});
Efectivo efectivo = new Efectivo();
efectivo.setCaja(c);
DAOManager.getEfectivoDAO().insertDefaultEfectivo(efectivo);
this.ingresosController.updateCaja(caja);
this.egresosController.updateCaja(caja);
this.arqueoController.updateCaja(caja);
}
Documentos documentos = new Documentos();
documentos.setCaja(c);
DAOManager.getDocumentosDAO().insertDefaultDocumentos(documentos);
return c;
});
/**
* Llama a los metodos que cargan las vistas que estaran dentro del cardlayout
*/
private void loadCardContents() {
this.loadEgresosView();
this.loadIngresosView();
this.loadArqueoView();
}
this.ingresosController.updateCaja(caja);
this.egresosController.updateCaja(caja);
this.arqueoController.updateCaja(caja);
}
/**
* Crea la vista de ingresos, la agrega a el cardlayout y se le es asignado a su controlador
*/
private void loadIngresosView() {
IngresosView ingresosView = new IngresosView();
/**
* Llama a los metodos que cargan las vistas que estaran dentro del cardlayout
*/
private void loadCardContents() {
this.loadEgresosView();
this.loadIngresosView();
this.loadArqueoView();
}
this.view.getCardPanel().add(ingresosView.getContentPanel(), "INGRESOS");
/**
* Crea la vista de ingresos, la agrega a el cardlayout y se le es asignado a su controlador
*/
private void loadIngresosView() {
IngresosView ingresosView = new IngresosView();
this.ingresosController = new IngresosController(ingresosView);
}
this.view.getCardPanel().add(ingresosView.getContentPanel(), "INGRESOS");
/**
* Crea la vista de egresos, la agrega a el cardlayout y se le es asignado a su controlador
*/
private void loadEgresosView() {
EgresosView egresosView = new EgresosView();
this.ingresosController = new IngresosController(ingresosView);
}
this.view.getCardPanel().add(egresosView.getContentPanel(), "EGRESOS");
/**
* Crea la vista de egresos, la agrega a el cardlayout y se le es asignado a su controlador
*/
private void loadEgresosView() {
EgresosView egresosView = new EgresosView();
this.egresosController = new EgresosController(egresosView);
}
this.view.getCardPanel().add(egresosView.getContentPanel(), "EGRESOS");
/**
* Crea la vista de arqueo, la agrega a el cardlayout y se le es asignado a su controlador
*/
private void loadArqueoView() {
ArqueoView arqueoView = new ArqueoView();
this.egresosController = new EgresosController(egresosView);
}
this.view.getCardPanel().add(arqueoView.getContentPanel(), "ARQUEO");
/**
* Crea la vista de arqueo, la agrega a el cardlayout y se le es asignado a su controlador
*/
private void loadArqueoView() {
ArqueoView arqueoView = new ArqueoView();
this.arqueoController = new ArqueoController(arqueoView);
}
this.view.getCardPanel().add(arqueoView.getContentPanel(), "ARQUEO");
/**
* Activa el primer boton del manager
*/
private void pressInitialButton() {
this.view.getIngresosButton().doClick();
}
this.arqueoController = new ArqueoController(arqueoView);
}
/**
* Activa el primer boton del manager
*/
private void pressInitialButton() {
this.view.getIngresosButton().doClick();
}
}

View File

@@ -5,160 +5,162 @@ import danielcortes.xyz.models.caja.Caja;
import danielcortes.xyz.models.calculo_fondo.CalculoFondo;
import danielcortes.xyz.views.CalcularFondoView;
import danielcortes.xyz.views.components.table_model.FondoTableModel;
import javax.swing.*;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.JTable;
import javax.swing.KeyStroke;
public class CalcularFondoController extends BaseController{
private CalcularFondoView view;
private Caja caja;
public class CalcularFondoController extends BaseController {
private int editingId;
private boolean editing;
private CalculoFondo editingCalculoFondo;
private CalcularFondoView view;
private Caja caja;
public CalcularFondoController(CalcularFondoView view, Caja caja) {
this.view = view;
this.caja = caja;
private int editingId;
private boolean editing;
private CalculoFondo editingCalculoFondo;
this.fillTable();
this.fillResumen();
this.updateResumen();
this.setupViewEvents();
this.updateButtonsEnabled();
public CalcularFondoController(CalcularFondoView view, Caja caja) {
this.view = view;
this.caja = caja;
this.fillTable();
this.fillResumen();
this.updateResumen();
this.setupViewEvents();
this.updateButtonsEnabled();
}
private void fillTable() {
FondoTableModel tableModel = this.view.getTableModel();
tableModel.removeRows();
for (CalculoFondo calculoFondo : DAOManager.getCalculoFondoDAO().findByCaja(this.caja)) {
tableModel.addRow(calculoFondo);
}
}
private void fillTable() {
FondoTableModel tableModel = this.view.getTableModel();
tableModel.removeRows();
for (CalculoFondo calculoFondo : DAOManager.getCalculoFondoDAO().findByCaja(this.caja)) {
tableModel.addRow(calculoFondo);
private void fillResumen() {
this.view.getFondoField().setValue(this.caja.getFondo());
}
private void updateResumen() {
this.caja.setFondo(this.view.getFondoField().getValue());
int suma = DAOManager.getCalculoFondoDAO().getTotalCalculoFondo(this.caja);
this.view.getSumaField().setValue(suma);
this.view.getDepositoField().setValue(suma - this.caja.getFondo());
DAOManager.getCajaDAO().update(this.caja);
}
private void setupViewEvents() {
moveTo(this.view.getValorField(), this.view.getDescripcionField());
doAction(this.view.getDescripcionField(), "save", KeyStroke.getKeyStroke("ENTER"),
e -> this.guardarActionListener());
doAction(this.view.getFondoField(), "updateResumen", KeyStroke.getKeyStroke("ENTER"),
e -> this.updateResumen());
this.view.getTable().getSelectionModel().addListSelectionListener(e -> updateButtonsEnabled());
this.view.getGuardarButton().addActionListener(e -> guardarActionListener());
this.view.getEditarButton().addActionListener(e -> editarActionListener());
this.view.getEliminarButton().addActionListener(e -> eliminarActionListener());
this.view.getTable().addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent mouseEvent) {
JTable table = (JTable) mouseEvent.getSource();
if (mouseEvent.getClickCount() == 2 && table.getSelectedRow() != -1) {
CalcularFondoController.this.editarActionListener();
}
}
});
}
private void guardarActionListener() {
this.normalizeInput();
int valor = this.view.getValorField().getValue();
String descripcion = this.view.getDescripcionField().getText();
if (editing) {
this.editarCalculoFondo(valor, descripcion);
this.editing = false;
} else {
this.guardarCalculoFondo(valor, descripcion);
}
private void fillResumen() {
this.view.getFondoField().setValue(this.caja.getFondo());
this.updateResumen();
this.cleanInput();
this.resetFocus();
}
private void editarActionListener() {
int selectedID = this.view.getTable().getSelectedRow();
if (selectedID >= 0) {
int selectedModelID = this.view.getTable().getRowSorter().convertRowIndexToModel(selectedID);
CalculoFondo calculoFondo = this.view.getTableModel().getCalculoFondo(selectedModelID);
this.editingId = selectedModelID;
this.editingCalculoFondo = calculoFondo;
this.editing = true;
this.view.getValorField().setValue(calculoFondo.getValor());
this.view.getDescripcionField().setText(calculoFondo.getDescripcion());
}
}
private void eliminarActionListener() {
int selectedID = this.view.getTable().getSelectedRow();
if (selectedID >= 0) {
CalculoFondo calculoFondo = this.view.getTableModel().getCalculoFondo(selectedID);
this.view.getTableModel().removeRow(selectedID);
DAOManager.getCalculoFondoDAO().deleteCalculoFondo(calculoFondo);
this.updateResumen();
this.updateButtonsEnabled();
this.resetFocus();
}
}
private void guardarCalculoFondo(int valor, String descripcion) {
CalculoFondo calculoFondo = new CalculoFondo();
calculoFondo.setValor(valor);
calculoFondo.setDescripcion(descripcion);
calculoFondo.setCaja(this.caja);
DAOManager.getCalculoFondoDAO().insertCalculoFondo(calculoFondo);
this.view.getTableModel().addRow(calculoFondo);
}
private void editarCalculoFondo(int valor, String descripcion) {
this.editingCalculoFondo.setValor(valor);
this.editingCalculoFondo.setDescripcion(descripcion);
this.editingCalculoFondo.setCaja(this.caja);
DAOManager.getCalculoFondoDAO().updateCalculoFondo(editingCalculoFondo);
this.view.getTableModel().setCalculoFondo(this.editingId, this.editingCalculoFondo);
}
private void updateButtonsEnabled() {
if (this.view.getTable().getSelectedRow() >= 0) {
this.view.getEliminarButton().setEnabled(true);
this.view.getEditarButton().setEnabled(true);
} else {
this.view.getEliminarButton().setEnabled(false);
this.view.getEditarButton().setEnabled(false);
}
}
private void cleanInput() {
this.view.getValorField().setValue(0);
this.view.getDescripcionField().setText("");
}
private void normalizeInput() {
if (this.view.getDescripcionField().getText() == null) {
this.view.getDescripcionField().setText("");
}
private void updateResumen() {
this.caja.setFondo(this.view.getFondoField().getValue());
int suma = DAOManager.getCalculoFondoDAO().getTotalCalculoFondo(this.caja);
this.view.getDescripcionField().setText(this.view.getDescripcionField().getText().trim());
}
this.view.getSumaField().setValue(suma);
this.view.getDepositoField().setValue(suma - this.caja.getFondo());
DAOManager.getCajaDAO().update(this.caja);
}
private void setupViewEvents() {
moveTo(this.view.getValorField(), this.view.getDescripcionField());
doAction(this.view.getDescripcionField(), "save", KeyStroke.getKeyStroke("ENTER"), e -> this.guardarActionListener());
doAction(this.view.getFondoField(), "updateResumen", KeyStroke.getKeyStroke("ENTER"), e -> this.updateResumen());
this.view.getTable().getSelectionModel().addListSelectionListener(e -> updateButtonsEnabled());
this.view.getGuardarButton().addActionListener(e -> guardarActionListener());
this.view.getEditarButton().addActionListener(e -> editarActionListener());
this.view.getEliminarButton().addActionListener(e -> eliminarActionListener());
this.view.getTable().addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent mouseEvent) {
JTable table = (JTable) mouseEvent.getSource();
if (mouseEvent.getClickCount() == 2 && table.getSelectedRow() != -1) {
CalcularFondoController.this.editarActionListener();
}
}
});
}
private void guardarActionListener() {
this.normalizeInput();
int valor = this.view.getValorField().getValue();
String descripcion = this.view.getDescripcionField().getText();
if (editing) {
this.editarCalculoFondo(valor, descripcion);
this.editing = false;
} else {
this.guardarCalculoFondo(valor, descripcion);
}
this.updateResumen();
this.cleanInput();
this.resetFocus();
}
private void editarActionListener() {
int selectedID = this.view.getTable().getSelectedRow();
if (selectedID >= 0) {
int selectedModelID = this.view.getTable().getRowSorter().convertRowIndexToModel(selectedID);
CalculoFondo calculoFondo = this.view.getTableModel().getCalculoFondo(selectedModelID);
this.editingId = selectedModelID;
this.editingCalculoFondo = calculoFondo;
this.editing = true;
this.view.getValorField().setValue(calculoFondo.getValor());
this.view.getDescripcionField().setText(calculoFondo.getDescripcion());
}
}
private void eliminarActionListener() {
int selectedID = this.view.getTable().getSelectedRow();
if (selectedID >= 0) {
CalculoFondo calculoFondo = this.view.getTableModel().getCalculoFondo(selectedID);
this.view.getTableModel().removeRow(selectedID);
DAOManager.getCalculoFondoDAO().deleteCalculoFondo(calculoFondo);
this.updateResumen();
this.updateButtonsEnabled();
this.resetFocus();
}
}
private void guardarCalculoFondo(int valor, String descripcion) {
CalculoFondo calculoFondo = new CalculoFondo();
calculoFondo.setValor(valor);
calculoFondo.setDescripcion(descripcion);
calculoFondo.setCaja(this.caja);
DAOManager.getCalculoFondoDAO().insertCalculoFondo(calculoFondo);
this.view.getTableModel().addRow(calculoFondo);
}
private void editarCalculoFondo(int valor, String descripcion) {
this.editingCalculoFondo.setValor(valor);
this.editingCalculoFondo.setDescripcion(descripcion);
this.editingCalculoFondo.setCaja(this.caja);
DAOManager.getCalculoFondoDAO().updateCalculoFondo(editingCalculoFondo);
this.view.getTableModel().setCalculoFondo(this.editingId, this.editingCalculoFondo);
}
private void updateButtonsEnabled() {
if (this.view.getTable().getSelectedRow() >= 0) {
this.view.getEliminarButton().setEnabled(true);
this.view.getEditarButton().setEnabled(true);
} else {
this.view.getEliminarButton().setEnabled(false);
this.view.getEditarButton().setEnabled(false);
}
}
private void cleanInput() {
this.view.getValorField().setValue(0);
this.view.getDescripcionField().setText("");
}
private void normalizeInput() {
if (this.view.getDescripcionField().getText() == null) {
this.view.getDescripcionField().setText("");
}
this.view.getDescripcionField().setText(this.view.getDescripcionField().getText().trim());
}
private void resetFocus() {
this.view.getValorField().requestFocus();
}
private void resetFocus() {
this.view.getValorField().requestFocus();
}
}

View File

@@ -31,357 +31,356 @@ import danielcortes.xyz.models.tipo_egreso.TipoEgreso;
import danielcortes.xyz.models.tipo_egreso.TipoEgresoToStringWrapper;
import danielcortes.xyz.views.EgresosView;
import danielcortes.xyz.views.components.table_model.EgresosTableModel;
import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.AbstractAction;
import javax.swing.JComboBox;
import javax.swing.JTable;
import javax.swing.KeyStroke;
/**
* Controlador el cual esta orientado a manejar la vista de EgresosView
* Maneja su contenido y las acciones que esta realiza
* Controlador el cual esta orientado a manejar la vista de EgresosView Maneja su contenido y las
* acciones que esta realiza
*/
public class EgresosController extends BaseController{
private EgresosView view;
private Caja caja;
public class EgresosController extends BaseController {
private int editingId;
private boolean editing;
private Egreso editingEgreso;
private EgresosView view;
private Caja caja;
/**
* Crea el controlador
* Al inicial ejecuta:
* - Metodo que genera los eventos para la vista.
* - Metodo que llena los tipos de egresos en la vista.
* - Actualiza el estado de los botones.
*/
public EgresosController(EgresosView view) {
this.view = view;
this.setUpViewEvents();
this.fillTipoEgresoCombo();
this.updateButtonsEnabled();
private int editingId;
private boolean editing;
private Egreso editingEgreso;
/**
* Crea el controlador Al inicial ejecuta: - Metodo que genera los eventos para la vista. - Metodo
* que llena los tipos de egresos en la vista. - Actualiza el estado de los botones.
*/
public EgresosController(EgresosView view) {
this.view = view;
this.setUpViewEvents();
this.fillTipoEgresoCombo();
this.updateButtonsEnabled();
}
/**
* Guarda la caja entregada y actualiza los datos de la tabla de egresos y actualiza el field con
* el total de egresos.
*/
public void updateCaja(Caja caja) {
this.caja = caja;
this.fillEgresosTable();
this.updateTotalEgresos();
}
/**
* Rellena el ComboBox con los tipos de egresos disponibles
*/
private void fillTipoEgresoCombo() {
JComboBox<TipoEgresoToStringWrapper> tipoCombo = view.getTipoCombo();
for (TipoEgreso tipoEgreso : DAOManager.getTipoEgresoDAO().findAll()) {
tipoCombo.addItem(new TipoEgresoToStringWrapper(tipoEgreso));
}
}
/**
* Guarda la caja entregada y actualiza los datos de la tabla de egresos y actualiza el field con el total de egresos.
*/
public void updateCaja(Caja caja) {
this.caja = caja;
this.fillEgresosTable();
this.updateTotalEgresos();
/**
* Rellena la tabla de egresos con los egresos correspondientes a la caja seleccionada
*/
private void fillEgresosTable() {
EgresosTableModel egresosTableModel = view.getEgresosTableModel();
egresosTableModel.removeRows();
for (Egreso egreso : DAOManager.getEgresoDAO().findByCaja(this.caja)) {
egresosTableModel.addRow(egreso);
}
}
/**
* Rellena el ComboBox con los tipos de egresos disponibles
*/
private void fillTipoEgresoCombo() {
JComboBox<TipoEgresoToStringWrapper> tipoCombo = view.getTipoCombo();
for (TipoEgreso tipoEgreso : DAOManager.getTipoEgresoDAO().findAll()) {
tipoCombo.addItem(new TipoEgresoToStringWrapper(tipoEgreso));
/**
* Asigna todos los eventos para la vista de egresos. - Cuando se apreta el boton de guardar o se
* apreta enter en los fields de descripcion, nro, valor y tipo Se llama al metodo
* guardarActionListener. - Cuando se apreta el boton de eliminar se llama al metodos
* eliminarActionListener - Cuando se presiona editar o se realizan 2 clicks en la tabla de
* egresos se llama a editarActionListener - Cuando se selecciona una fila en la tabla se llama a
* updateButtonsEnabled
*/
private void setUpViewEvents() {
moveTo(this.view.getNroField(), this.view.getDescripcionField());
moveTo(this.view.getDescripcionField(), this.view.getValorField());
moveTo(this.view.getValorField(), this.view.getTipoCombo());
doAction(this.view.getTipoCombo(), "save", KeyStroke.getKeyStroke("ENTER"),
e -> this.guardarActionListener());
this.view.getEgresosTable().getSelectionModel()
.addListSelectionListener(e -> updateButtonsEnabled());
this.view.getGuardarButton().addActionListener(e -> guardarActionListener());
this.view.getEliminarButton().addActionListener(e -> eliminarActionListener());
this.view.getEditarButton().addActionListener(e -> editarActionListener());
this.view.getEgresosTable().addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent mouseEvent) {
JTable table = (JTable) mouseEvent.getSource();
if (mouseEvent.getClickCount() == 2 && table.getSelectedRow() != -1) {
EgresosController.this.editarActionListener();
}
}
});
}
/**
* Realiza las preparaciones previas a guardar un egreso Primero llama a normalizar los inputs y a
* ocultar los mensajes de error Luego si es que esta colocada la flag de editing se llama al
* metodo editarEgreso y si no, se llama a guardarEgreso Al terminar esto, se llama a resetear el
* focus en los inputs y a actualizar el total de egresos
*/
private void guardarActionListener() {
this.normalizeInputs();
this.hideErrorMessages();
String nro = this.view.getNroField().getText();
String descripcion = this.view.getDescripcionField().getText();
int valor = this.view.getValorField().getValue();
TipoEgreso tipo = (TipoEgreso) this.view.getTipoCombo().getSelectedItem();
if (editing) {
this.editarEgreso(nro, descripcion, valor, tipo, this.caja);
} else {
this.guardarEgreso(nro, descripcion, valor, tipo, this.caja);
}
this.resetFocus();
}
/**
* Realiza las acciones necesarias para eliminar un egreso Obtiene el egreso seleccionado y lo
* elimina, luego llama a actualizar el total de egresos y a actualizar el estado de los botones.
*/
private void eliminarActionListener() {
int selectedID = this.view.getEgresosTable().getSelectedRow();
if (selectedID >= 0) {
Egreso egreso = this.view.getEgresosTableModel().getEgreso(selectedID);
this.view.getEgresosTableModel().removeRow(selectedID);
DAOManager.getEgresoDAO().deleteEgreso(egreso);
this.updateTotalEgresos();
this.updateButtonsEnabled();
this.resetFocus();
}
}
/**
* Realiza lo necesario para comenzar a editar un egreso Llama a esconder los mensajes de error.
* Guarda globalmente en la clase el egreso que se esta editando, su id y una flag indicando que
* se esta en modo editar. Ademas rellena los campos de input con los valores del egreso que se
* esta editando.
*/
private void editarActionListener() {
this.hideErrorMessages();
int selectedID = this.view.getEgresosTable().getSelectedRow();
int selectedModelID = this.view.getEgresosTable().getRowSorter()
.convertRowIndexToModel(selectedID);
if (selectedModelID >= 0) {
Egreso egreso = this.view.getEgresosTableModel().getEgreso(selectedModelID);
this.editingId = selectedModelID;
this.editingEgreso = egreso;
this.editing = true;
this.view.getNroField().setText(egreso.getNro());
this.view.getDescripcionField().setText(egreso.getDescripcion());
this.view.getValorField().setValue(egreso.getValor());
this.view.getTipoCombo().setSelectedItem(egreso.getTipoEgreso());
}
}
/**
* Obtiene el total de egresos y los coloca en el campo de totalEgresosField.
*/
private void updateTotalEgresos() {
int total = DAOManager.getEgresoDAO().getTotalEgreso(this.caja);
this.view.getTotalEgresosField().setValue(total);
}
/**
* Cuando se tiene seleccionada una fila de la tabla activa los botones de eliminar y editar Si no
* esta seleccionada los desactiva
*/
private void updateButtonsEnabled() {
if (this.view.getEgresosTable().getSelectedRow() >= 0) {
this.view.getEliminarButton().setEnabled(true);
this.view.getEditarButton().setEnabled(true);
} else {
this.view.getEliminarButton().setEnabled(false);
this.view.getEditarButton().setEnabled(false);
}
}
/**
* Guarda un egreso tras llamar a validar su input Luego de guardar, agrega el egreso a la tabla,
* llama a actualizar el total de egresos y llama a limpiar a los inputs
*/
private void guardarEgreso(String nro, String descripcion, int valor, TipoEgreso tipo,
Caja caja) {
if (this.validateInput(nro, descripcion, tipo, caja)) {
Egreso egreso = new Egreso();
egreso.setValor(valor);
egreso.setDescripcion(descripcion);
egreso.setNro(nro);
egreso.setTipoEgreso(tipo);
egreso.setCaja(caja);
DAOManager.getEgresoDAO().insertEgreso(egreso);
this.view.getEgresosTableModel().addRow(egreso);
this.updateTotalEgresos();
this.clearInputs();
}
}
/**
* Actualiza un egreso tras llamar a validar su input Tras esto actualiza el egreso en la tabla,
* llama a actualizar el total de egresos y a limpiar los inputs Finalmente setea la flag editing
* a false
*/
private void editarEgreso(String nro, String descripcion, int valor, TipoEgreso tipo, Caja caja) {
if (this.validateInput(nro, descripcion, tipo, caja)) {
this.editingEgreso.setValor(valor);
this.editingEgreso.setDescripcion(descripcion);
this.editingEgreso.setNro(nro);
this.editingEgreso.setTipoEgreso(tipo);
DAOManager.getEgresoDAO().updateEgreso(this.editingEgreso);
this.view.getEgresosTableModel().setEgreso(this.editingId, this.editingEgreso);
this.updateTotalEgresos();
this.clearInputs();
this.editing = false;
}
}
/**
* llama a los metodos necesarios para validar los inputs entregados
*
* @return true cuando todas las validaciones retoran true, si no, false
*/
private boolean validateInput(String nro, String descripcion, TipoEgreso tipoEgreso, Caja caja) {
boolean nroValidation = this.validateNro(nro);
boolean descripcionValidation = this.validateDescripcion(descripcion);
boolean tipoEgresoValidation = this.validateTipoEgreso(tipoEgreso);
boolean cajaValidation = this.validateCaja(caja);
return nroValidation && descripcionValidation && tipoEgresoValidation;
}
/**
* Valida la variable nro contra los casos - Es null - Esta vacio Cuando el primer caso sea true,
* colocara un mensaje de error correspondiente en el jlabel correspondiente
*
* @return Si cualquiera de estos casos son true se retornara false, si no, se retorna true
*/
private boolean validateNro(String nro) {
if (nro == null) {
this.view.getErrorNumero().setText("Hubo un problema con los datos");
this.view.getErrorNumero().setVisible(true);
return false;
}
/**
* Rellena la tabla de egresos con los egresos correspondientes a la caja seleccionada
*/
private void fillEgresosTable() {
EgresosTableModel egresosTableModel = view.getEgresosTableModel();
egresosTableModel.removeRows();
for (Egreso egreso : DAOManager.getEgresoDAO().findByCaja(this.caja)) {
egresosTableModel.addRow(egreso);
}
nro = nro.trim();
if (nro.isEmpty()) {
this.view.getErrorNumero().setText("El campo esta vacio");
this.view.getErrorNumero().setVisible(true);
return false;
}
return true;
}
/**
* Valida la variable descripcion contra los casos - Es null - Esta vacio Cuando el primer caso
* sea true, colocara un mensaje de error correspondiente en el jlabel correspondiente
*
* @return Si cualquiera de estos casos son true se retornara false, si no, se retorna true
*/
private boolean validateDescripcion(String descripcion) {
if (descripcion == null) {
this.view.getErrorDescripcion().setText("Hubo un problema con los datos");
this.view.getErrorDescripcion().setVisible(true);
return false;
}
/**
* Asigna todos los eventos para la vista de egresos.
* - Cuando se apreta el boton de guardar o se apreta enter en los fields de descripcion, nro, valor y tipo
* Se llama al metodo guardarActionListener.
* - Cuando se apreta el boton de eliminar se llama al metodos eliminarActionListener
* - Cuando se presiona editar o se realizan 2 clicks en la tabla de egresos se llama a editarActionListener
* - Cuando se selecciona una fila en la tabla se llama a updateButtonsEnabled
*/
private void setUpViewEvents() {
moveTo(this.view.getNroField(), this.view.getDescripcionField());
moveTo(this.view.getDescripcionField(), this.view.getValorField());
moveTo(this.view.getValorField(), this.view.getTipoCombo());
doAction(this.view.getTipoCombo(), "save", KeyStroke.getKeyStroke("ENTER"), e -> this.guardarActionListener());
if (descripcion.isEmpty()) {
this.view.getErrorDescripcion().setText("El campo esta vacio");
this.view.getErrorDescripcion().setVisible(true);
return false;
}
return true;
}
this.view.getEgresosTable().getSelectionModel().addListSelectionListener(e -> updateButtonsEnabled());
this.view.getGuardarButton().addActionListener(e -> guardarActionListener());
this.view.getEliminarButton().addActionListener(e -> eliminarActionListener());
this.view.getEditarButton().addActionListener(e -> editarActionListener());
/**
* Valida la variable tipoEgreso contra los casos - Es null Cuando este caso sea true, colocara un
* mensaje de error correspondiente en el jlabel correspondiente
*
* @return Si este caso es true se retornara false, si no, se retorna true
*/
private boolean validateTipoEgreso(TipoEgreso tipoEgreso) {
if (tipoEgreso == null) {
this.view.getErrorTipoEgreso().setText("Hubo un problema con los datos");
this.view.getErrorTipoEgreso().setVisible(true);
return false;
}
return true;
}
this.view.getEgresosTable().addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent mouseEvent) {
JTable table = (JTable) mouseEvent.getSource();
if (mouseEvent.getClickCount() == 2 && table.getSelectedRow() != -1) {
EgresosController.this.editarActionListener();
}
}
});
/**
* Valida la variable caja contra los casos - Es null
*
* @return Si este caso es true se retornara false, si no, se retorna true
*/
private boolean validateCaja(Caja caja) {
return caja != null;
}
/**
* Esconde los mensajes de error en la ventana de egresos
*/
private void hideErrorMessages() {
this.view.getErrorTipoEgreso().setVisible(false);
this.view.getErrorDescripcion().setVisible(false);
this.view.getErrorNumero().setVisible(false);
}
/**
* Vacia los campos de texto y selecciona la primera opcion en el jcombobox
*/
private void clearInputs() {
this.view.getTipoCombo().setSelectedIndex(0);
this.view.getNroField().setText("");
this.view.getValorField().setValue(0);
this.view.getValorField().setText("");
this.view.getDescripcionField().setText("");
}
/**
* Ejecuta trim sobre todos los campos de texto
*/
private void normalizeInputs() {
this.view.getNroField().setText(this.view.getNroField().getText().trim());
this.view.getDescripcionField().setText(this.view.getDescripcionField().getText().trim());
}
/**
* Setea el focus en el campo nroField
*/
private void resetFocus() {
this.view.getNroField().requestFocus();
}
private class GuardarAction extends AbstractAction {
EgresosController controller;
GuardarAction(EgresosController controller) {
this.controller = controller;
}
/**
* Realiza las preparaciones previas a guardar un egreso
* Primero llama a normalizar los inputs y a ocultar los mensajes de error
* Luego si es que esta colocada la flag de editing se llama al metodo editarEgreso y si no, se llama a guardarEgreso
* Al terminar esto, se llama a resetear el focus en los inputs y a actualizar el total de egresos
*/
private void guardarActionListener() {
this.normalizeInputs();
this.hideErrorMessages();
String nro = this.view.getNroField().getText();
String descripcion = this.view.getDescripcionField().getText();
int valor = this.view.getValorField().getValue();
TipoEgreso tipo = (TipoEgreso) this.view.getTipoCombo().getSelectedItem();
if (editing) {
this.editarEgreso(nro, descripcion, valor, tipo, this.caja);
} else {
this.guardarEgreso(nro, descripcion, valor, tipo, this.caja);
}
this.resetFocus();
}
/**
* Realiza las acciones necesarias para eliminar un egreso
* Obtiene el egreso seleccionado y lo elimina, luego llama a actualizar el total de egresos y a actualizar el estado de los botones.
*/
private void eliminarActionListener() {
int selectedID = this.view.getEgresosTable().getSelectedRow();
if (selectedID >= 0) {
Egreso egreso = this.view.getEgresosTableModel().getEgreso(selectedID);
this.view.getEgresosTableModel().removeRow(selectedID);
DAOManager.getEgresoDAO().deleteEgreso(egreso);
this.updateTotalEgresos();
this.updateButtonsEnabled();
this.resetFocus();
}
}
/**
* Realiza lo necesario para comenzar a editar un egreso
* Llama a esconder los mensajes de error.
* Guarda globalmente en la clase el egreso que se esta editando, su id y una flag indicando que se esta en modo editar.
* Ademas rellena los campos de input con los valores del egreso que se esta editando.
*/
private void editarActionListener() {
this.hideErrorMessages();
int selectedID = this.view.getEgresosTable().getSelectedRow();
int selectedModelID = this.view.getEgresosTable().getRowSorter().convertRowIndexToModel(selectedID);
if (selectedModelID >= 0) {
Egreso egreso = this.view.getEgresosTableModel().getEgreso(selectedModelID);
this.editingId = selectedModelID;
this.editingEgreso = egreso;
this.editing = true;
this.view.getNroField().setText(egreso.getNro());
this.view.getDescripcionField().setText(egreso.getDescripcion());
this.view.getValorField().setValue(egreso.getValor());
this.view.getTipoCombo().setSelectedItem(egreso.getTipoEgreso());
}
}
/**
* Obtiene el total de egresos y los coloca en el campo de totalEgresosField.
*/
private void updateTotalEgresos() {
int total = DAOManager.getEgresoDAO().getTotalEgreso(this.caja);
this.view.getTotalEgresosField().setValue(total);
}
/**
* Cuando se tiene seleccionada una fila de la tabla activa los botones de eliminar y editar
* Si no esta seleccionada los desactiva
*/
private void updateButtonsEnabled() {
if (this.view.getEgresosTable().getSelectedRow() >= 0) {
this.view.getEliminarButton().setEnabled(true);
this.view.getEditarButton().setEnabled(true);
} else {
this.view.getEliminarButton().setEnabled(false);
this.view.getEditarButton().setEnabled(false);
}
}
/**
* Guarda un egreso tras llamar a validar su input
* Luego de guardar, agrega el egreso a la tabla, llama a actualizar el total de egresos y llama a limpiar a los inputs
*/
private void guardarEgreso(String nro, String descripcion, int valor, TipoEgreso tipo, Caja caja) {
if (this.validateInput(nro, descripcion, tipo, caja)) {
Egreso egreso = new Egreso();
egreso.setValor(valor);
egreso.setDescripcion(descripcion);
egreso.setNro(nro);
egreso.setTipoEgreso(tipo);
egreso.setCaja(caja);
DAOManager.getEgresoDAO().insertEgreso(egreso);
this.view.getEgresosTableModel().addRow(egreso);
this.updateTotalEgresos();
this.clearInputs();
}
}
/**
* Actualiza un egreso tras llamar a validar su input
* Tras esto actualiza el egreso en la tabla, llama a actualizar el total de egresos y a limpiar los inputs
* Finalmente setea la flag editing a false
*/
private void editarEgreso(String nro, String descripcion, int valor, TipoEgreso tipo, Caja caja) {
if (this.validateInput(nro, descripcion, tipo, caja)) {
this.editingEgreso.setValor(valor);
this.editingEgreso.setDescripcion(descripcion);
this.editingEgreso.setNro(nro);
this.editingEgreso.setTipoEgreso(tipo);
DAOManager.getEgresoDAO().updateEgreso(this.editingEgreso);
this.view.getEgresosTableModel().setEgreso(this.editingId, this.editingEgreso);
this.updateTotalEgresos();
this.clearInputs();
this.editing = false;
}
}
/**
* llama a los metodos necesarios para validar los inputs entregados
*
* @return true cuando todas las validaciones retoran true, si no, false
*/
private boolean validateInput(String nro, String descripcion, TipoEgreso tipoEgreso, Caja caja) {
boolean nroValidation = this.validateNro(nro);
boolean descripcionValidation = this.validateDescripcion(descripcion);
boolean tipoEgresoValidation = this.validateTipoEgreso(tipoEgreso);
boolean cajaValidation = this.validateCaja(caja);
return nroValidation && descripcionValidation && tipoEgresoValidation;
}
/**
* Valida la variable nro contra los casos
* - Es null
* - Esta vacio
* Cuando el primer caso sea true, colocara un mensaje de error correspondiente en el jlabel correspondiente
*
* @return Si cualquiera de estos casos son true se retornara false, si no, se retorna true
*/
private boolean validateNro(String nro) {
if (nro == null) {
this.view.getErrorNumero().setText("Hubo un problema con los datos");
this.view.getErrorNumero().setVisible(true);
return false;
}
nro = nro.trim();
if (nro.isEmpty()) {
this.view.getErrorNumero().setText("El campo esta vacio");
this.view.getErrorNumero().setVisible(true);
return false;
}
return true;
}
/**
* Valida la variable descripcion contra los casos
* - Es null
* - Esta vacio
* Cuando el primer caso sea true, colocara un mensaje de error correspondiente en el jlabel correspondiente
*
* @return Si cualquiera de estos casos son true se retornara false, si no, se retorna true
*/
private boolean validateDescripcion(String descripcion) {
if (descripcion == null) {
this.view.getErrorDescripcion().setText("Hubo un problema con los datos");
this.view.getErrorDescripcion().setVisible(true);
return false;
}
if (descripcion.isEmpty()) {
this.view.getErrorDescripcion().setText("El campo esta vacio");
this.view.getErrorDescripcion().setVisible(true);
return false;
}
return true;
}
/**
* Valida la variable tipoEgreso contra los casos
* - Es null
* Cuando este caso sea true, colocara un mensaje de error correspondiente en el jlabel correspondiente
*
* @return Si este caso es true se retornara false, si no, se retorna true
*/
private boolean validateTipoEgreso(TipoEgreso tipoEgreso) {
if (tipoEgreso == null) {
this.view.getErrorTipoEgreso().setText("Hubo un problema con los datos");
this.view.getErrorTipoEgreso().setVisible(true);
return false;
}
return true;
}
/**
* Valida la variable caja contra los casos
* - Es null
*
* @return Si este caso es true se retornara false, si no, se retorna true
*/
private boolean validateCaja(Caja caja) {
return caja != null;
}
/**
* Esconde los mensajes de error en la ventana de egresos
*/
private void hideErrorMessages() {
this.view.getErrorTipoEgreso().setVisible(false);
this.view.getErrorDescripcion().setVisible(false);
this.view.getErrorNumero().setVisible(false);
}
/**
* Vacia los campos de texto y selecciona la primera opcion en el jcombobox
*/
private void clearInputs() {
this.view.getTipoCombo().setSelectedIndex(0);
this.view.getNroField().setText("");
this.view.getValorField().setValue(0);
this.view.getValorField().setText("");
this.view.getDescripcionField().setText("");
}
/**
* Ejecuta trim sobre todos los campos de texto
*/
private void normalizeInputs() {
this.view.getNroField().setText(this.view.getNroField().getText().trim());
this.view.getDescripcionField().setText(this.view.getDescripcionField().getText().trim());
}
/**
* Setea el focus en el campo nroField
*/
private void resetFocus() {
this.view.getNroField().requestFocus();
}
private class GuardarAction extends AbstractAction {
EgresosController controller;
GuardarAction(EgresosController controller) {
this.controller = controller;
}
@Override
public void actionPerformed(ActionEvent e) {
this.controller.guardarActionListener();
}
@Override
public void actionPerformed(ActionEvent e) {
this.controller.guardarActionListener();
}
}
}

View File

@@ -11,331 +11,367 @@ import danielcortes.xyz.views.EstadoResultadoView;
import danielcortes.xyz.views.dialogs.InformeGeneratedConfirmation;
import danielcortes.xyz.views.dialogs.XLSFileChooser;
import danielcortes.xyz.views.listeners.FocusLostListener;
import java.nio.file.Path;
import java.time.YearMonth;
import java.time.format.DateTimeFormatter;
public class EstadoResultadoController extends BaseController {
private EstadoResultadoView view;
private EstadoResultado estadoResultado;
private YearMonth mes;
public EstadoResultadoController(EstadoResultadoView view) {
this.view = view;
this.setupViewEvents();
this.updateMonth();
private EstadoResultadoView view;
private EstadoResultado estadoResultado;
private YearMonth mes;
public EstadoResultadoController(EstadoResultadoView view) {
this.view = view;
this.setupViewEvents();
this.updateMonth();
}
public void update() {
this.updateMonth();
}
private void setupViewEvents() {
this.view.getMonthCombo().addActionListener(e -> this.updateMonth());
this.view.getYearSpinner().addChangeListener(e -> this.updateMonth());
this.setupUpdateViewEvents();
this.setupMovementViewEvents();
this.view.getGuardarButton()
.addActionListener(e -> EstadoResultadoController.this.guardarListener());
this.view.getExportarButton()
.addActionListener(e -> EstadoResultadoController.this.exportarListener());
}
private void setupUpdateViewEvents() {
this.view.getGastosGeneralesCuentaCorrienteFactura().addFocusListener(
(FocusLostListener) e -> EstadoResultadoController.this.updateGastosGenerales());
this.view.getGastosGeneralesCuentaCorrienteBoleta().addFocusListener(
(FocusLostListener) e -> EstadoResultadoController.this.updateGastosGenerales());
this.view.getGastosGeneralesCuentaCorrienteSinRespaldo().addFocusListener(
(FocusLostListener) e -> EstadoResultadoController.this.updateGastosGenerales());
this.view.getServiciosAgua().addFocusListener(
(FocusLostListener) e -> EstadoResultadoController.this.updateServicios());
this.view.getServiciosLuz().addFocusListener(
(FocusLostListener) e -> EstadoResultadoController.this.updateServicios());
this.view.getServiciosGas().addFocusListener(
(FocusLostListener) e -> EstadoResultadoController.this.updateServicios());
this.view.getServiciosTelefono().addFocusListener(
(FocusLostListener) e -> EstadoResultadoController.this.updateServicios());
this.view.getServiciosOtro().addFocusListener(
(FocusLostListener) e -> EstadoResultadoController.this.updateServicios());
this.view.getGastosOperacionalesCostoVenta().addFocusListener(
(FocusLostListener) e -> EstadoResultadoController.this.updateGastosOperacionales());
this.view.getGastosOperacionalesRemuneraciones().addFocusListener(
(FocusLostListener) e -> EstadoResultadoController.this.updateGastosOperacionales());
this.view.getGastosOperacionalesFiniquitos().addFocusListener(
(FocusLostListener) e -> EstadoResultadoController.this.updateGastosOperacionales());
this.view.getGastosOperacionalesAguinaldo().addFocusListener(
(FocusLostListener) e -> EstadoResultadoController.this.updateGastosOperacionales());
this.view.getGastosOperacionalesBonos().addFocusListener(
(FocusLostListener) e -> EstadoResultadoController.this.updateGastosOperacionales());
this.view.getGastosOperacionalesHonorariosContador().addFocusListener(
(FocusLostListener) e -> EstadoResultadoController.this.updateGastosOperacionales());
this.view.getGastosOperacionalesArriendo().addFocusListener(
(FocusLostListener) e -> EstadoResultadoController.this.updateGastosOperacionales());
this.view.getResumenIVAFavor()
.addFocusListener((FocusLostListener) e -> EstadoResultadoController.this.updateResumen());
this.view.getResumenPPM()
.addFocusListener((FocusLostListener) e -> EstadoResultadoController.this.updateResumen());
}
private void setupMovementViewEvents() {
moveTo(this.view.getGastosOperacionalesCostoVenta(),
this.view.getGastosOperacionalesRemuneraciones());
moveTo(this.view.getGastosOperacionalesRemuneraciones(),
this.view.getGastosOperacionalesFiniquitos());
moveTo(this.view.getGastosOperacionalesFiniquitos(),
this.view.getGastosOperacionalesAguinaldo());
moveTo(this.view.getGastosOperacionalesAguinaldo(), this.view.getGastosOperacionalesBonos());
moveTo(this.view.getGastosOperacionalesBonos(),
this.view.getGastosOperacionalesHonorariosContador());
moveTo(this.view.getGastosOperacionalesHonorariosContador(),
this.view.getGastosOperacionalesArriendo());
moveTo(this.view.getGastosOperacionalesArriendo(), this.view.getServiciosAgua());
moveTo(this.view.getServiciosAgua(), this.view.getServiciosLuz());
moveTo(this.view.getServiciosLuz(), this.view.getServiciosGas());
moveTo(this.view.getServiciosGas(), this.view.getServiciosTelefono());
moveTo(this.view.getServiciosTelefono(), this.view.getServiciosOtro());
moveTo(this.view.getServiciosOtro(), this.view.getGastosGeneralesCuentaCorrienteFactura());
moveTo(this.view.getGastosGeneralesCuentaCorrienteFactura(),
this.view.getGastosGeneralesCuentaCorrienteBoleta());
moveTo(this.view.getGastosGeneralesCuentaCorrienteBoleta(),
this.view.getGastosGeneralesCuentaCorrienteSinRespaldo());
moveTo(this.view.getGastosGeneralesCuentaCorrienteSinRespaldo(), this.view.getResumenPPM());
moveTo(this.view.getResumenPPM(), this.view.getResumenIVAFavor());
}
private void guardarListener() {
EstadoResultadoDAO dao = DAOManager.getEstadoResultadoDAO();
dao.updateEstadoResultado(this.estadoResultado);
}
private void exportarListener() {
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("MMMM yyyy");
String formatedName = mes.format(formatter);
String capitalized = StringUtils.capitalize(formatedName);
Path saveFile = new XLSFileChooser(
Configuration.get("base_save_directory") + "Estado Resultado " + capitalized).execute();
if (saveFile == null) {
return;
}
public void update() {
this.updateMonth();
InformeEstadoResultado estadoResultado = new InformeEstadoResultado(this.mes, saveFile);
estadoResultado.generarInforme();
new InformeGeneratedConfirmation(saveFile).execute();
}
private void updateMonth() {
this.mes = this.view.getMonth();
this.estadoResultado = DAOManager.getEstadoResultadoDAO().findByMonth(this.mes);
if (estadoResultado == null) {
this.estadoResultado = EstadoResultado.emptyEstadoResultado;
this.estadoResultado.setMes(this.mes);
DAOManager.getEstadoResultadoDAO().insertEstadoResultado(estadoResultado);
}
private void setupViewEvents() {
this.view.getMonthCombo().addActionListener(e -> this.updateMonth());
this.view.getYearSpinner().addChangeListener(e -> this.updateMonth());
this.fillVentas();
this.fillGastosGenerales();
this.fillServicios();
this.fillGastosOperacionales();
this.fillResumen();
}
this.setupUpdateViewEvents();
this.setupMovementViewEvents();
private void fillVentas() {
int ventaBruta = DAOManager.getIngresoDAO().getTotalIngresoMes(this.mes);
int ventaExentas = DAOManager.getIngresoDAO().getTotalExentasMes(this.mes);
int ventaNeta = (int) Math.round((double) ventaBruta / 1.19d);
int ventaIVA = ventaBruta - ventaNeta;
int ventaNetaYExentas = ventaExentas + ventaNeta;
this.view.getGuardarButton().addActionListener(e -> EstadoResultadoController.this.guardarListener());
this.view.getExportarButton().addActionListener(e -> EstadoResultadoController.this.exportarListener());
}
this.view.getVentaBrutaField().setValue(ventaBruta);
this.view.getVentaIVAField().setValue(ventaIVA);
this.view.getVentaNetaField().setValue(ventaNeta);
this.view.getVentaExentasField().setValue(ventaExentas);
this.view.getVentasNetaExentasField().setValue(ventaNetaYExentas);
}
private void setupUpdateViewEvents() {
this.view.getGastosGeneralesCuentaCorrienteFactura().addFocusListener((FocusLostListener) e -> EstadoResultadoController.this.updateGastosGenerales());
this.view.getGastosGeneralesCuentaCorrienteBoleta().addFocusListener((FocusLostListener) e -> EstadoResultadoController.this.updateGastosGenerales());
this.view.getGastosGeneralesCuentaCorrienteSinRespaldo().addFocusListener((FocusLostListener) e -> EstadoResultadoController.this.updateGastosGenerales());
private void fillGastosGenerales() {
TipoEgreso facturaGastosGenerales = DAOManager.getTipoEgresoDAO()
.findByNombre("Factura Gastos Generales").get(0);
TipoEgreso gastoGeneralConBoleta = DAOManager.getTipoEgresoDAO()
.findByNombre("Gasto General Con Boleta").get(0);
TipoEgreso gastoGeneralSinRespaldo = DAOManager.getTipoEgresoDAO()
.findByNombre("Gasto General Sin Respaldo").get(0);
this.view.getServiciosAgua().addFocusListener((FocusLostListener) e -> EstadoResultadoController.this.updateServicios());
this.view.getServiciosLuz().addFocusListener((FocusLostListener) e -> EstadoResultadoController.this.updateServicios());
this.view.getServiciosGas().addFocusListener((FocusLostListener) e -> EstadoResultadoController.this.updateServicios());
this.view.getServiciosTelefono().addFocusListener((FocusLostListener) e -> EstadoResultadoController.this.updateServicios());
this.view.getServiciosOtro().addFocusListener((FocusLostListener) e -> EstadoResultadoController.this.updateServicios());
int cuentaCorrienteFactura = this.estadoResultado.getCuentaCorrienteFactura();
int cuentaCorrienteBoleta = this.estadoResultado.getCuentaCorrienteBoleta();
int cuentaCorrienteSinRespaldo = this.estadoResultado.getCuentaCorrienteSinRespaldo();
int efectivoFacturaGastosGenerales = DAOManager.getEgresoDAO()
.getTotalEgresoMesPorTipo(this.mes, facturaGastosGenerales);
int efectivoGastoGeneralConBoleta = DAOManager.getEgresoDAO()
.getTotalEgresoMesPorTipo(this.mes, gastoGeneralConBoleta);
int efectivoGastoGeneralSinRespaldo = DAOManager.getEgresoDAO()
.getTotalEgresoMesPorTipo(this.mes, gastoGeneralSinRespaldo);
int gastoTotal = efectivoFacturaGastosGenerales + efectivoGastoGeneralConBoleta
+ efectivoGastoGeneralSinRespaldo + cuentaCorrienteBoleta + cuentaCorrienteFactura
+ cuentaCorrienteSinRespaldo;
this.view.getGastosOperacionalesCostoVenta().addFocusListener((FocusLostListener) e -> EstadoResultadoController.this.updateGastosOperacionales());
this.view.getGastosOperacionalesRemuneraciones().addFocusListener((FocusLostListener) e -> EstadoResultadoController.this.updateGastosOperacionales());
this.view.getGastosOperacionalesFiniquitos().addFocusListener((FocusLostListener) e -> EstadoResultadoController.this.updateGastosOperacionales());
this.view.getGastosOperacionalesAguinaldo().addFocusListener((FocusLostListener) e -> EstadoResultadoController.this.updateGastosOperacionales());
this.view.getGastosOperacionalesBonos().addFocusListener((FocusLostListener) e -> EstadoResultadoController.this.updateGastosOperacionales());
this.view.getGastosOperacionalesHonorariosContador().addFocusListener((FocusLostListener) e -> EstadoResultadoController.this.updateGastosOperacionales());
this.view.getGastosOperacionalesArriendo().addFocusListener((FocusLostListener) e -> EstadoResultadoController.this.updateGastosOperacionales());
this.view.getGastosGeneralesEfectivoFacturaField().setValue(efectivoFacturaGastosGenerales);
this.view.getGastosGeneralesEfectivoBoletaField().setValue(efectivoGastoGeneralConBoleta);
this.view.getGastosGeneralesEfectivoSinRespaldo().setValue(efectivoGastoGeneralSinRespaldo);
this.view.getGastosGeneralesCuentaCorrienteFactura().setValue(cuentaCorrienteFactura);
this.view.getGastosGeneralesCuentaCorrienteBoleta().setValue(cuentaCorrienteBoleta);
this.view.getGastosGeneralesCuentaCorrienteSinRespaldo().setValue(cuentaCorrienteSinRespaldo);
this.view.getGastosGeneralesTotal().setValue(gastoTotal);
}
this.view.getResumenIVAFavor().addFocusListener((FocusLostListener) e -> EstadoResultadoController.this.updateResumen());
this.view.getResumenPPM().addFocusListener((FocusLostListener) e -> EstadoResultadoController.this.updateResumen());
}
private void fillGastosOperacionales() {
TipoEgreso tipoPagoPartime = DAOManager.getTipoEgresoDAO().findByNombre("Pago Partime").get(0);
private void setupMovementViewEvents() {
int costoVenta = this.estadoResultado.getCostoVenta();
int remuneraciones = this.estadoResultado.getRemuneraciones();
int finiquitos = this.estadoResultado.getFiniquitos();
int aguinaldo = this.estadoResultado.getAguinaldo();
int bonosPersonal = this.estadoResultado.getBonosPersonal();
int honorariosContador = this.estadoResultado.getHonorariosContador();
int arriendo = this.estadoResultado.getArriendo();
int partime = DAOManager.getEgresoDAO().getTotalEgresoMesPorTipo(this.mes, tipoPagoPartime);
int ventaBruta = DAOManager.getIngresoDAO().getTotalIngresoMes(this.mes);
moveTo(this.view.getGastosOperacionalesCostoVenta(), this.view.getGastosOperacionalesRemuneraciones());
moveTo(this.view.getGastosOperacionalesRemuneraciones(), this.view.getGastosOperacionalesFiniquitos());
moveTo(this.view.getGastosOperacionalesFiniquitos(), this.view.getGastosOperacionalesAguinaldo());
moveTo(this.view.getGastosOperacionalesAguinaldo(), this.view.getGastosOperacionalesBonos());
moveTo(this.view.getGastosOperacionalesBonos(), this.view.getGastosOperacionalesHonorariosContador());
moveTo(this.view.getGastosOperacionalesHonorariosContador(), this.view.getGastosOperacionalesArriendo());
moveTo(this.view.getGastosOperacionalesArriendo(), this.view.getServiciosAgua());
int total = costoVenta + remuneraciones + finiquitos + aguinaldo + bonosPersonal
+ honorariosContador + arriendo + partime;
double porcentajeCostoVenta = (double) costoVenta / (double) ventaBruta * 100d;
moveTo(this.view.getServiciosAgua(), this.view.getServiciosLuz());
moveTo(this.view.getServiciosLuz(), this.view.getServiciosGas());
moveTo(this.view.getServiciosGas(), this.view.getServiciosTelefono());
moveTo(this.view.getServiciosTelefono(), this.view.getServiciosOtro());
moveTo(this.view.getServiciosOtro(), this.view.getGastosGeneralesCuentaCorrienteFactura());
this.view.getGastosOperacionalesCostoVenta().setValue(costoVenta);
this.view.getGastosOperacionesPorcentajeCostoVenta().setValue(porcentajeCostoVenta);
this.view.getGastosOperacionalesRemuneraciones().setValue(remuneraciones);
this.view.getGastosOperacionalesFiniquitos().setValue(finiquitos);
this.view.getGastosOperacionalesAguinaldo().setValue(aguinaldo);
this.view.getGastosOperacionalesBonos().setValue(bonosPersonal);
this.view.getGastosOperacionalesHonorariosContador().setValue(honorariosContador);
this.view.getGastosOperacionalesArriendo().setValue(arriendo);
this.view.getGastosOperacionalesPartime().setValue(partime);
moveTo(this.view.getGastosGeneralesCuentaCorrienteFactura(), this.view.getGastosGeneralesCuentaCorrienteBoleta());
moveTo(this.view.getGastosGeneralesCuentaCorrienteBoleta(), this.view.getGastosGeneralesCuentaCorrienteSinRespaldo());
moveTo(this.view.getGastosGeneralesCuentaCorrienteSinRespaldo(), this.view.getResumenPPM());
this.view.getGastosOperacionalesTotal().setValue(total);
}
moveTo(this.view.getResumenPPM(), this.view.getResumenIVAFavor());
}
private void fillServicios() {
int agua = this.estadoResultado.getAgua();
int luz = this.estadoResultado.getLuz();
int gas = this.estadoResultado.getGas();
int telefono = this.estadoResultado.getTelefono();
int otro = this.estadoResultado.getOtroServicio();
private void guardarListener() {
EstadoResultadoDAO dao = DAOManager.getEstadoResultadoDAO();
dao.updateEstadoResultado(this.estadoResultado);
}
int total = agua + luz + gas + telefono + otro;
private void exportarListener() {
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("MMMM yyyy");
String formatedName = mes.format(formatter);
String capitalized = StringUtils.capitalize(formatedName);
this.view.getServiciosAgua().setValue(agua);
this.view.getServiciosLuz().setValue(luz);
this.view.getServiciosGas().setValue(gas);
this.view.getServiciosTelefono().setValue(telefono);
this.view.getServiciosOtro().setValue(otro);
this.view.getServiciosTotal().setValue(total);
}
Path saveFile = new XLSFileChooser(Configuration.get("base_save_directory") + "Estado Resultado " + capitalized).execute();
private void fillResumen() {
double ppm = this.estadoResultado.getPpm();
int aFavor = this.estadoResultado.getIvaFavor();
if(saveFile == null){
return;
}
this.view.getResumenPPM().setValue(ppm);
this.view.getResumenIVAFavor().setValue(aFavor);
InformeEstadoResultado estadoResultado = new InformeEstadoResultado(this.mes, saveFile);
estadoResultado.generarInforme();
new InformeGeneratedConfirmation(saveFile).execute();
}
this.updateResumen();
}
private void updateMonth() {
this.mes = this.view.getMonth();
this.estadoResultado = DAOManager.getEstadoResultadoDAO().findByMonth(this.mes);
if (estadoResultado == null) {
this.estadoResultado = EstadoResultado.emptyEstadoResultado;
this.estadoResultado.setMes(this.mes);
DAOManager.getEstadoResultadoDAO().insertEstadoResultado(estadoResultado);
}
private void updateGastosGenerales() {
int oldCuentaCorrienteFactura = this.estadoResultado.getCuentaCorrienteFactura();
int oldCuentaCorrienteBoleta = this.estadoResultado.getCuentaCorrienteBoleta();
int oldCuentaCorrienteSinRespaldo = this.estadoResultado.getCuentaCorrienteSinRespaldo();
int oldTotal = this.view.getGastosGeneralesTotal().getValue();
this.fillVentas();
this.fillGastosGenerales();
this.fillServicios();
this.fillGastosOperacionales();
this.fillResumen();
}
int cuentaCorrienteFactura = this.view.getGastosGeneralesCuentaCorrienteFactura().getValue();
int cuentaCorrienteBoleta = this.view.getGastosGeneralesCuentaCorrienteBoleta().getValue();
int cuentaCorrienteSinRespaldo = this.view.getGastosGeneralesCuentaCorrienteSinRespaldo()
.getValue();
private void fillVentas() {
int ventaBruta = DAOManager.getIngresoDAO().getTotalIngresoMes(this.mes);
int ventaExentas = DAOManager.getIngresoDAO().getTotalExentasMes(this.mes);
int ventaNeta = (int) Math.round((double) ventaBruta / 1.19d);
int ventaIVA = ventaBruta - ventaNeta;
int ventaNetaYExentas = ventaExentas + ventaNeta;
this.estadoResultado.setCuentaCorrienteFactura(cuentaCorrienteFactura);
this.estadoResultado.setCuentaCorrienteBoleta(cuentaCorrienteBoleta);
this.estadoResultado.setCuentaCorrienteSinRespaldo(cuentaCorrienteSinRespaldo);
this.view.getVentaBrutaField().setValue(ventaBruta);
this.view.getVentaIVAField().setValue(ventaIVA);
this.view.getVentaNetaField().setValue(ventaNeta);
this.view.getVentaExentasField().setValue(ventaExentas);
this.view.getVentasNetaExentasField().setValue(ventaNetaYExentas);
}
int total = oldTotal
- (oldCuentaCorrienteFactura + oldCuentaCorrienteBoleta + oldCuentaCorrienteSinRespaldo)
+ (cuentaCorrienteFactura + cuentaCorrienteBoleta + cuentaCorrienteSinRespaldo);
private void fillGastosGenerales() {
TipoEgreso facturaGastosGenerales = DAOManager.getTipoEgresoDAO().findByNombre("Factura Gastos Generales").get(0);
TipoEgreso gastoGeneralConBoleta = DAOManager.getTipoEgresoDAO().findByNombre("Gasto General Con Boleta").get(0);
TipoEgreso gastoGeneralSinRespaldo = DAOManager.getTipoEgresoDAO().findByNombre("Gasto General Sin Respaldo").get(0);
this.view.getGastosGeneralesTotal().setValue(total);
int cuentaCorrienteFactura = this.estadoResultado.getCuentaCorrienteFactura();
int cuentaCorrienteBoleta = this.estadoResultado.getCuentaCorrienteBoleta();
int cuentaCorrienteSinRespaldo = this.estadoResultado.getCuentaCorrienteSinRespaldo();
int efectivoFacturaGastosGenerales = DAOManager.getEgresoDAO().getTotalEgresoMesPorTipo(this.mes, facturaGastosGenerales);
int efectivoGastoGeneralConBoleta = DAOManager.getEgresoDAO().getTotalEgresoMesPorTipo(this.mes, gastoGeneralConBoleta);
int efectivoGastoGeneralSinRespaldo = DAOManager.getEgresoDAO().getTotalEgresoMesPorTipo(this.mes, gastoGeneralSinRespaldo);
int gastoTotal = efectivoFacturaGastosGenerales + efectivoGastoGeneralConBoleta + efectivoGastoGeneralSinRespaldo + cuentaCorrienteBoleta + cuentaCorrienteFactura + cuentaCorrienteSinRespaldo;
this.updateResumen();
}
this.view.getGastosGeneralesEfectivoFacturaField().setValue(efectivoFacturaGastosGenerales);
this.view.getGastosGeneralesEfectivoBoletaField().setValue(efectivoGastoGeneralConBoleta);
this.view.getGastosGeneralesEfectivoSinRespaldo().setValue(efectivoGastoGeneralSinRespaldo);
this.view.getGastosGeneralesCuentaCorrienteFactura().setValue(cuentaCorrienteFactura);
this.view.getGastosGeneralesCuentaCorrienteBoleta().setValue(cuentaCorrienteBoleta);
this.view.getGastosGeneralesCuentaCorrienteSinRespaldo().setValue(cuentaCorrienteSinRespaldo);
this.view.getGastosGeneralesTotal().setValue(gastoTotal);
}
private void updateServicios() {
int oldAgua = this.estadoResultado.getAgua();
int oldLuz = this.estadoResultado.getLuz();
int oldGas = this.estadoResultado.getGas();
int oldTelefono = this.estadoResultado.getTelefono();
int oldOtro = this.estadoResultado.getOtroServicio();
int oldTotal = this.view.getServiciosTotal().getValue();
private void fillGastosOperacionales() {
TipoEgreso tipoPagoPartime = DAOManager.getTipoEgresoDAO().findByNombre("Pago Partime").get(0);
int agua = this.view.getServiciosAgua().getValue();
int luz = this.view.getServiciosLuz().getValue();
int gas = this.view.getServiciosGas().getValue();
int telefono = this.view.getServiciosTelefono().getValue();
int otro = this.view.getServiciosOtro().getValue();
int costoVenta = this.estadoResultado.getCostoVenta();
int remuneraciones = this.estadoResultado.getRemuneraciones();
int finiquitos = this.estadoResultado.getFiniquitos();
int aguinaldo = this.estadoResultado.getAguinaldo();
int bonosPersonal = this.estadoResultado.getBonosPersonal();
int honorariosContador = this.estadoResultado.getHonorariosContador();
int arriendo = this.estadoResultado.getArriendo();
int partime = DAOManager.getEgresoDAO().getTotalEgresoMesPorTipo(this.mes, tipoPagoPartime);
int ventaBruta = DAOManager.getIngresoDAO().getTotalIngresoMes(this.mes);
this.estadoResultado.setAgua(agua);
this.estadoResultado.setLuz(luz);
this.estadoResultado.setGas(gas);
this.estadoResultado.setTelefono(telefono);
this.estadoResultado.setOtroServicio(otro);
int total = costoVenta + remuneraciones + finiquitos + aguinaldo + bonosPersonal
+ honorariosContador + arriendo + partime;
double porcentajeCostoVenta = (double) costoVenta / (double) ventaBruta * 100d;
int total = oldTotal
- (oldAgua + oldLuz + oldGas + oldTelefono + oldOtro)
+ (agua + luz + gas + telefono + otro);
this.view.getGastosOperacionalesCostoVenta().setValue(costoVenta);
this.view.getGastosOperacionesPorcentajeCostoVenta().setValue(porcentajeCostoVenta);
this.view.getGastosOperacionalesRemuneraciones().setValue(remuneraciones);
this.view.getGastosOperacionalesFiniquitos().setValue(finiquitos);
this.view.getGastosOperacionalesAguinaldo().setValue(aguinaldo);
this.view.getGastosOperacionalesBonos().setValue(bonosPersonal);
this.view.getGastosOperacionalesHonorariosContador().setValue(honorariosContador);
this.view.getGastosOperacionalesArriendo().setValue(arriendo);
this.view.getGastosOperacionalesPartime().setValue(partime);
this.view.getServiciosTotal().setValue(total);
this.view.getGastosOperacionalesTotal().setValue(total);
}
this.updateResumen();
}
private void fillServicios() {
int agua = this.estadoResultado.getAgua();
int luz = this.estadoResultado.getLuz();
int gas = this.estadoResultado.getGas();
int telefono = this.estadoResultado.getTelefono();
int otro = this.estadoResultado.getOtroServicio();
private void updateGastosOperacionales() {
int oldCostoVenta = this.estadoResultado.getCostoVenta();
int oldRemuneraciones = this.estadoResultado.getRemuneraciones();
int oldFiniquitos = this.estadoResultado.getFiniquitos();
int oldAguinaldo = this.estadoResultado.getAguinaldo();
int oldBonos = this.estadoResultado.getBonosPersonal();
int oldHonorarios = this.estadoResultado.getHonorariosContador();
int oldArriendo = this.estadoResultado.getArriendo();
int oldTotal = this.view.getGastosOperacionalesTotal().getValue();
int total = agua + luz + gas + telefono + otro;
int costoVenta = this.view.getGastosOperacionalesCostoVenta().getValue();
int remuneraciones = this.view.getGastosOperacionalesRemuneraciones().getValue();
int finiquitos = this.view.getGastosOperacionalesFiniquitos().getValue();
int aguinaldo = this.view.getGastosOperacionalesAguinaldo().getValue();
int bonos = this.view.getGastosOperacionalesBonos().getValue();
int honorarios = this.view.getGastosOperacionalesHonorariosContador().getValue();
int arriendo = this.view.getGastosOperacionalesArriendo().getValue();
this.view.getServiciosAgua().setValue(agua);
this.view.getServiciosLuz().setValue(luz);
this.view.getServiciosGas().setValue(gas);
this.view.getServiciosTelefono().setValue(telefono);
this.view.getServiciosOtro().setValue(otro);
this.view.getServiciosTotal().setValue(total);
}
int ventaBruta = DAOManager.getIngresoDAO().getTotalIngresoMes(this.mes);
private void fillResumen() {
double ppm = this.estadoResultado.getPpm();
int aFavor = this.estadoResultado.getIvaFavor();
this.estadoResultado.setCostoVenta(costoVenta);
this.estadoResultado.setRemuneraciones(remuneraciones);
this.estadoResultado.setFiniquitos(finiquitos);
this.estadoResultado.setAguinaldo(aguinaldo);
this.estadoResultado.setBonosPersonal(bonos);
this.estadoResultado.setHonorariosContador(honorarios);
this.estadoResultado.setArriendo(arriendo);
this.view.getResumenPPM().setValue(ppm);
this.view.getResumenIVAFavor().setValue(aFavor);
int total = oldTotal
- (oldCostoVenta + oldRemuneraciones + oldFiniquitos + oldAguinaldo + oldBonos
+ oldHonorarios + oldArriendo)
+ (costoVenta + remuneraciones + finiquitos + aguinaldo + bonos + honorarios + arriendo);
double porcentajeCostoVenta = (double) costoVenta / (double) ventaBruta * 100d;
this.updateResumen();
}
this.view.getGastosOperacionalesTotal().setValue(total);
this.view.getGastosOperacionesPorcentajeCostoVenta().setValue(porcentajeCostoVenta);
private void updateGastosGenerales() {
int oldCuentaCorrienteFactura = this.estadoResultado.getCuentaCorrienteFactura();
int oldCuentaCorrienteBoleta = this.estadoResultado.getCuentaCorrienteBoleta();
int oldCuentaCorrienteSinRespaldo = this.estadoResultado.getCuentaCorrienteSinRespaldo();
int oldTotal = this.view.getGastosGeneralesTotal().getValue();
this.updateResumen();
}
int cuentaCorrienteFactura = this.view.getGastosGeneralesCuentaCorrienteFactura().getValue();
int cuentaCorrienteBoleta = this.view.getGastosGeneralesCuentaCorrienteBoleta().getValue();
int cuentaCorrienteSinRespaldo = this.view.getGastosGeneralesCuentaCorrienteSinRespaldo().getValue();
private void updateResumen() {
int bruto = this.view.getVentaBrutaField().getValue();
int totalGastosOperacionales = this.view.getGastosOperacionalesTotal().getValue();
int totalGastosGenerales = this.view.getGastosGeneralesTotal().getValue();
int totalServicios = this.view.getServiciosTotal().getValue();
int netoExentas = this.view.getVentasNetaExentasField().getValue();
int iva = this.view.getVentaIVAField().getValue();
double ppm = this.view.getResumenPPM().getValue();
int ivaFavor = this.view.getResumenIVAFavor().getValue();
this.estadoResultado.setCuentaCorrienteFactura(cuentaCorrienteFactura);
this.estadoResultado.setCuentaCorrienteBoleta(cuentaCorrienteBoleta);
this.estadoResultado.setCuentaCorrienteSinRespaldo(cuentaCorrienteSinRespaldo);
int utilidad = bruto - totalGastosGenerales - totalGastosOperacionales - totalServicios;
int ppmMes = (int) Math.round(ppm * (double) netoExentas / 100d);
int IVAPPM = iva + ppmMes;
int aPagar = IVAPPM - ivaFavor;
int resultado = utilidad - aPagar;
int total = oldTotal
- (oldCuentaCorrienteFactura + oldCuentaCorrienteBoleta + oldCuentaCorrienteSinRespaldo)
+ (cuentaCorrienteFactura + cuentaCorrienteBoleta + cuentaCorrienteSinRespaldo);
this.view.getResumenUtilidad().setValue(utilidad);
this.view.getResumenPPMMes().setValue(ppmMes);
this.view.getResumenIVAMes().setValue(iva);
this.view.getResumenIVAPPM().setValue(IVAPPM);
this.view.getResumenAPagar().setValue(aPagar);
this.view.getResumenResultado().setValue(resultado);
this.view.getGastosGeneralesTotal().setValue(total);
this.updateResumen();
}
private void updateServicios() {
int oldAgua = this.estadoResultado.getAgua();
int oldLuz = this.estadoResultado.getLuz();
int oldGas = this.estadoResultado.getGas();
int oldTelefono = this.estadoResultado.getTelefono();
int oldOtro = this.estadoResultado.getOtroServicio();
int oldTotal = this.view.getServiciosTotal().getValue();
int agua = this.view.getServiciosAgua().getValue();
int luz = this.view.getServiciosLuz().getValue();
int gas = this.view.getServiciosGas().getValue();
int telefono = this.view.getServiciosTelefono().getValue();
int otro = this.view.getServiciosOtro().getValue();
this.estadoResultado.setAgua(agua);
this.estadoResultado.setLuz(luz);
this.estadoResultado.setGas(gas);
this.estadoResultado.setTelefono(telefono);
this.estadoResultado.setOtroServicio(otro);
int total = oldTotal
- (oldAgua + oldLuz + oldGas + oldTelefono + oldOtro)
+ (agua + luz + gas + telefono + otro);
this.view.getServiciosTotal().setValue(total);
this.updateResumen();
}
private void updateGastosOperacionales() {
int oldCostoVenta = this.estadoResultado.getCostoVenta();
int oldRemuneraciones = this.estadoResultado.getRemuneraciones();
int oldFiniquitos = this.estadoResultado.getFiniquitos();
int oldAguinaldo = this.estadoResultado.getAguinaldo();
int oldBonos = this.estadoResultado.getBonosPersonal();
int oldHonorarios = this.estadoResultado.getHonorariosContador();
int oldArriendo = this.estadoResultado.getArriendo();
int oldTotal = this.view.getGastosOperacionalesTotal().getValue();
int costoVenta = this.view.getGastosOperacionalesCostoVenta().getValue();
int remuneraciones = this.view.getGastosOperacionalesRemuneraciones().getValue();
int finiquitos = this.view.getGastosOperacionalesFiniquitos().getValue();
int aguinaldo = this.view.getGastosOperacionalesAguinaldo().getValue();
int bonos = this.view.getGastosOperacionalesBonos().getValue();
int honorarios = this.view.getGastosOperacionalesHonorariosContador().getValue();
int arriendo = this.view.getGastosOperacionalesArriendo().getValue();
int ventaBruta = DAOManager.getIngresoDAO().getTotalIngresoMes(this.mes);
this.estadoResultado.setCostoVenta(costoVenta);
this.estadoResultado.setRemuneraciones(remuneraciones);
this.estadoResultado.setFiniquitos(finiquitos);
this.estadoResultado.setAguinaldo(aguinaldo);
this.estadoResultado.setBonosPersonal(bonos);
this.estadoResultado.setHonorariosContador(honorarios);
this.estadoResultado.setArriendo(arriendo);
int total = oldTotal
- (oldCostoVenta + oldRemuneraciones + oldFiniquitos + oldAguinaldo + oldBonos + oldHonorarios + oldArriendo)
+ (costoVenta + remuneraciones + finiquitos + aguinaldo + bonos + honorarios + arriendo);
double porcentajeCostoVenta = (double) costoVenta / (double) ventaBruta * 100d;
this.view.getGastosOperacionalesTotal().setValue(total);
this.view.getGastosOperacionesPorcentajeCostoVenta().setValue(porcentajeCostoVenta);
this.updateResumen();
}
private void updateResumen() {
int bruto = this.view.getVentaBrutaField().getValue();
int totalGastosOperacionales = this.view.getGastosOperacionalesTotal().getValue();
int totalGastosGenerales = this.view.getGastosGeneralesTotal().getValue();
int totalServicios = this.view.getServiciosTotal().getValue();
int netoExentas = this.view.getVentasNetaExentasField().getValue();
int iva = this.view.getVentaIVAField().getValue();
double ppm = this.view.getResumenPPM().getValue();
int ivaFavor = this.view.getResumenIVAFavor().getValue();
int utilidad = bruto - totalGastosGenerales - totalGastosOperacionales - totalServicios;
int ppmMes = (int) Math.round(ppm * (double) netoExentas / 100d);
int IVAPPM = iva + ppmMes;
int aPagar = IVAPPM - ivaFavor;
int resultado = utilidad - aPagar;
this.view.getResumenUtilidad().setValue(utilidad);
this.view.getResumenPPMMes().setValue(ppmMes);
this.view.getResumenIVAMes().setValue(iva);
this.view.getResumenIVAPPM().setValue(IVAPPM);
this.view.getResumenAPagar().setValue(aPagar);
this.view.getResumenResultado().setValue(resultado);
this.estadoResultado.setPpm(ppm);
this.estadoResultado.setIvaFavor(ivaFavor);
}
this.estadoResultado.setPpm(ppm);
this.estadoResultado.setIvaFavor(ivaFavor);
}
}

View File

@@ -34,72 +34,77 @@ import danielcortes.xyz.views.dialogs.InformeGeneratedConfirmation;
import danielcortes.xyz.views.dialogs.MonthSelectDialog;
import danielcortes.xyz.views.dialogs.TipoEgresoSelectDialog;
import danielcortes.xyz.views.dialogs.XLSFileChooser;
import java.nio.file.Path;
import java.time.YearMonth;
import java.time.format.DateTimeFormatter;
public class InformesSideBarController {
private InformesSideBar view;
public InformesSideBarController(InformesSideBar view) {
this.view = view;
this.setupViewEvents();
private InformesSideBar view;
public InformesSideBarController(InformesSideBar view) {
this.view = view;
this.setupViewEvents();
}
public InformesSideBar getView() {
return view;
}
private void setupViewEvents() {
this.view.getInformeLibroDeVentasButton()
.addActionListener(e -> generarInformeLibroDeVentasListener());
this.view.getGenerarEgresosFacturasMateriaPrimaButton()
.addActionListener(e -> generarInformeEgresosListener());
}
private void generarInformeLibroDeVentasListener() {
YearMonth month = new MonthSelectDialog().execute();
if (month == null) {
return;
}
public InformesSideBar getView() {
return view;
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("MMMM yyyy");
String formatedName = month.format(formatter);
String capitalized = StringUtils.capitalize(formatedName);
Path saveFile = new XLSFileChooser(
Configuration.get("base_save_directory") + "Libro " + capitalized).execute();
if (saveFile == null) {
return;
}
private void setupViewEvents() {
this.view.getInformeLibroDeVentasButton().addActionListener(e -> generarInformeLibroDeVentasListener());
this.view.getGenerarEgresosFacturasMateriaPrimaButton().addActionListener(e -> generarInformeEgresosListener());
InformeLibroDeVentas informe = new InformeLibroDeVentas(month, saveFile);
informe.generarInforme();
new InformeGeneratedConfirmation(saveFile).execute();
}
private void generarInformeEgresosListener() {
TipoEgreso tipoEgreso = new TipoEgresoSelectDialog().execute();
if (tipoEgreso == null) {
return;
}
private void generarInformeLibroDeVentasListener() {
YearMonth month = new MonthSelectDialog().execute();
if (month == null) {
return;
}
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("MMMM yyyy");
String formatedName = month.format(formatter);
String capitalized = StringUtils.capitalize(formatedName);
Path saveFile = new XLSFileChooser(Configuration.get("base_save_directory") + "Libro " + capitalized).execute();
if (saveFile == null) {
return;
}
InformeLibroDeVentas informe = new InformeLibroDeVentas(month, saveFile);
informe.generarInforme();
new InformeGeneratedConfirmation(saveFile).execute();
YearMonth month = new MonthSelectDialog().execute();
if (month == null) {
return;
}
private void generarInformeEgresosListener() {
TipoEgreso tipoEgreso = new TipoEgresoSelectDialog().execute();
if (tipoEgreso == null) {
return;
}
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("MMMM YYYY");
String formatedMonth = month.format(formatter);
YearMonth month = new MonthSelectDialog().execute();
if (month == null) {
return;
}
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("MMMM YYYY");
String formatedMonth = month.format(formatter);
Path saveFile = new XLSFileChooser("Informe Egresos - " + tipoEgreso.getNombre() + " - " + StringUtils.capitalize(formatedMonth)).execute();
if (saveFile == null) {
return;
}
InformeEgresos informe = new InformeEgresos(tipoEgreso.getId(), month, saveFile);
Path generatedFile = informe.generarInforme();
new InformeGeneratedConfirmation(saveFile).execute();
Path saveFile = new XLSFileChooser(
"Informe Egresos - " + tipoEgreso.getNombre() + " - " + StringUtils
.capitalize(formatedMonth)).execute();
if (saveFile == null) {
return;
}
InformeEgresos informe = new InformeEgresos(tipoEgreso.getId(), month, saveFile);
Path generatedFile = informe.generarInforme();
new InformeGeneratedConfirmation(saveFile).execute();
}
}

View File

@@ -31,385 +31,392 @@ import danielcortes.xyz.models.tipo_ingreso.TipoIngreso;
import danielcortes.xyz.models.tipo_ingreso.TipoIngresoToStringWrapper;
import danielcortes.xyz.views.IngresosView;
import danielcortes.xyz.views.components.table_model.IngresosTableModel;
import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.AbstractAction;
import javax.swing.JComboBox;
import javax.swing.JComponent;
import javax.swing.JTable;
import javax.swing.KeyStroke;
/**
* Controlador el cual esta orientado a manejar la vista de IngresosView
* Maneja su contenido y las acciones que esta realiza
* Controlador el cual esta orientado a manejar la vista de IngresosView Maneja su contenido y las
* acciones que esta realiza
*/
public class IngresosController extends BaseController{
private IngresosView view;
private Caja caja;
public class IngresosController extends BaseController {
private int editingId;
private Ingreso editingIngreso;
private boolean editing;
private IngresosView view;
private Caja caja;
/**
* Crea el controlado de egresos, el cual esta acoplado con la vista de ingresos, controlando el estado y contenido de esta.
* Al iniciarse ejecuta.
* - Metodo que llena el combobox de tipos de ingreso
* - Metodo que genera los eventos para la vista
* - Metodo que actualiza el estado de los botones
*/
public IngresosController(IngresosView view) {
this.view = view;
this.fillTipoIngresoCombo();
this.setupViewEvents();
this.updateButtonsEnabled();
private int editingId;
private Ingreso editingIngreso;
private boolean editing;
/**
* Crea el controlado de egresos, el cual esta acoplado con la vista de ingresos, controlando el
* estado y contenido de esta. Al iniciarse ejecuta. - Metodo que llena el combobox de tipos de
* ingreso - Metodo que genera los eventos para la vista - Metodo que actualiza el estado de los
* botones
*/
public IngresosController(IngresosView view) {
this.view = view;
this.fillTipoIngresoCombo();
this.setupViewEvents();
this.updateButtonsEnabled();
}
/**
* Guarda la caja ingresada y actualiza el contenido de la tabla de ingresos y el campo de total
* de ingresos
*/
public void updateCaja(Caja caja) {
this.caja = caja;
this.fillIngresosTable();
this.updateTotalIngresos();
}
/**
* LLena el combobox de tipos de ingresos
*/
private void fillTipoIngresoCombo() {
JComboBox<TipoIngresoToStringWrapper> tipoCombo = this.view.getTipoCombo();
for (TipoIngreso tipo : DAOManager.getTipoIngresoDAO().findAll()) {
tipoCombo.addItem(new TipoIngresoToStringWrapper(tipo));
}
}
/**
* Guarda la caja ingresada y actualiza el contenido de la tabla de ingresos y el campo de total de ingresos
*/
public void updateCaja(Caja caja) {
this.caja = caja;
this.fillIngresosTable();
this.updateTotalIngresos();
/**
* Llena la tabla de ingresos con los ingresos pertenecientes a la caja guarda
*/
private void fillIngresosTable() {
IngresosTableModel ingresosTableModel = this.view.getIngresosTableModel();
ingresosTableModel.removeRows();
for (Ingreso ingreso : DAOManager.getIngresoDAO().findByCaja(this.caja)) {
ingresosTableModel.addRow(ingreso);
}
}
/**
* LLena el combobox de tipos de ingresos
*/
private void fillTipoIngresoCombo() {
JComboBox<TipoIngresoToStringWrapper> tipoCombo = this.view.getTipoCombo();
for (TipoIngreso tipo : DAOManager.getTipoIngresoDAO().findAll()) {
tipoCombo.addItem(new TipoIngresoToStringWrapper(tipo));
/**
* Genera los eventos para los distintos componentes de la vista - Cuando se presiona el boton de
* guardar o se apreta enter en los fields de valor, nro inicial, nro final y tipo se llama a
* guardarActionListener - Cuando se presiona el boton de eliminar se llama al
* eliminarActionListener - Cuando se selecciona una fila en la tabla se llama a
* updateButtonsEnabled - Cuando se presiona el boton de editar o se hace doble click sobre una
* fila de la tabla se llama a editarActionListener
*/
private void setupViewEvents() {
moveTo(this.view.getValorField(), this.view.getNroZInicialField());
moveTo(this.view.getNroZInicialField(), this.view.getNroZFinalField());
moveTo(this.view.getNroZFinalField(), this.view.getNroInicialField());
moveTo(this.view.getNroInicialField(), this.view.getNroFinalField());
moveTo(this.view.getNroFinalField(), this.view.getTipoCombo());
doAction(this.view.getTipoCombo(), "save", KeyStroke.getKeyStroke("ENTER"),
e -> this.guardarActionListener());
this.view.getIngresosTable().getSelectionModel()
.addListSelectionListener(e -> updateButtonsEnabled());
this.view.getGuardarButton().addActionListener(e -> guardarActionListener());
this.view.getEliminarButton().addActionListener(e -> eliminarActionListener());
this.view.getEditarButton().addActionListener(e -> editarActionListener());
this.view.getIngresosTable().addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent mouseEvent) {
JTable table = (JTable) mouseEvent.getSource();
if (mouseEvent.getClickCount() == 2 && table.getSelectedRow() != -1) {
IngresosController.this.editarActionListener();
}
}
});
}
/**
* Realiza las preparaciones previas a guardar un ingreso Primero llama a normalizar los inputs y
* a esconder los mensajes de error Luego dependiendo si se tiene la flag editing en true o false
* se llama a editar ingreso o a guardarlo Tras terminar esto se llama a resetear el focus.
*/
private void guardarActionListener() {
this.normalizeInputs();
this.hideErrorMessages();
int valor = this.view.getValorField().getValue();
String nroZInicial = this.view.getNroZInicialField().getText();
String nroZFinal = this.view.getNroZFinalField().getText();
String nroInicial = this.view.getNroInicialField().getText();
String nroFinal = this.view.getNroFinalField().getText();
TipoIngreso tipoIngreso = (TipoIngreso) this.view.getTipoCombo().getSelectedItem();
if (editing) {
this.editarIngreso(valor, nroZInicial, nroZFinal, nroInicial, nroFinal, tipoIngreso,
this.caja);
} else {
this.guardarIngreso(valor, nroZInicial, nroZFinal, nroInicial, nroFinal, tipoIngreso,
this.caja);
}
this.resetFocus();
}
/**
* Realiza las acciones necesarias para eliminar un ingreso Solo lo va a realizar si es que esta
* seleccionada una fila de la tabla, se eliminara el ingreso seleccionado Una vez eliminado se
* llama a actualizar el total de ingresos y el estado de los botones
*/
private void eliminarActionListener() {
int selectedId = this.view.getIngresosTable().getSelectedRow();
if (selectedId >= 0) {
Ingreso ingreso = this.view.getIngresosTableModel().getIngreso(selectedId);
this.view.getIngresosTableModel().removeRow(selectedId);
DAOManager.getIngresoDAO().deleteIngreso(ingreso);
this.updateTotalIngresos();
this.updateButtonsEnabled();
this.resetFocus();
}
}
/**
* Realiza las preparaciones previas a editar un ingreso Primero llama a esconder los mensajes de
* error. Guarda globlarmente el ingreso a ser editar, el id de este y una flag que indica que se
* esta en modo de editar. Finalmente llena los campos de inputs con los datos del ingreso a
* editar.
*/
private void editarActionListener() {
this.hideErrorMessages();
int selectedID = this.view.getIngresosTable().getSelectedRow();
int selectedModelID = this.view.getIngresosTable().getRowSorter()
.convertRowIndexToModel(selectedID);
if (selectedModelID >= 0) {
Ingreso ingreso = this.view.getIngresosTableModel().getIngreso(selectedModelID);
this.editingId = selectedModelID;
this.editingIngreso = ingreso;
this.editing = true;
this.view.getTipoCombo().setSelectedItem(ingreso.getTipoIngreso());
this.view.getValorField().setValue(ingreso.getValor());
this.view.getNroZInicialField().setText(String.valueOf(ingreso.getNroZInicial()));
this.view.getNroZFinalField().setText(String.valueOf(ingreso.getNroZFinal()));
this.view.getNroInicialField().setText(String.valueOf(ingreso.getNroInicial()));
this.view.getNroFinalField().setText(String.valueOf(ingreso.getNroFinal()));
}
}
/**
* Obtiene el total de ingresos de la caja y lo coloca en el el field totalingresos
*/
private void updateTotalIngresos() {
int total = DAOManager.getIngresoDAO().getTotalIngreso(this.caja);
this.view.getTotalIngresoField().setValue(total);
}
/**
* Actualiza si los botones estan habilitados Esto depende de si se encuentra al menos una fila en
* la tabla seleccionada Si es asi, son habilidatos, si no, de deshabilitan
*/
private void updateButtonsEnabled() {
if (this.view.getIngresosTable().getSelectedRow() >= 0) {
this.view.getEliminarButton().setEnabled(true);
this.view.getEditarButton().setEnabled(true);
} else {
this.view.getEliminarButton().setEnabled(false);
this.view.getEditarButton().setEnabled(false);
}
}
/**
* Guarda un ingreso tras llamar a validar el input Luego de guardar agrega a la tabla el ingreso,
* llama a limpiar los campos de input y a actualizar el total de ingresos
*/
private void guardarIngreso(int valor, String nroZInicial, String nroZFinal, String nroInicial,
String nroFinal, TipoIngreso tipoIngreso, Caja caja) {
if (this.validateInput(nroZInicial, nroZFinal, nroInicial, nroFinal, tipoIngreso, caja)) {
Ingreso ingreso = new Ingreso();
ingreso.setTipoIngreso(tipoIngreso);
ingreso.setCaja(caja);
ingreso.setValor(valor);
ingreso.setNroZInicial(nroZInicial);
ingreso.setNroZFinal(nroZFinal);
ingreso.setNroInicial(nroInicial);
ingreso.setNroFinal(nroFinal);
DAOManager.getIngresoDAO().insertIngreso(ingreso);
this.view.getIngresosTableModel().addRow(ingreso);
this.clearInputs();
this.updateTotalIngresos();
}
}
/**
* Edita el ingreso tras llamar a validar el input Tras esto actualiza el ingreso en la tabla,
* llama a actualizar el total de ingresos, a limpiar los campos de input y a desactivar la flag
* de editing.
*/
private void editarIngreso(int valor, String nroZInicial, String nroZFinal, String nroInicial,
String nroFinal, TipoIngreso tipoIngreso, Caja caja) {
if (this.validateInput(nroZInicial, nroZFinal, nroInicial, nroFinal, tipoIngreso, caja)) {
this.editingIngreso.setTipoIngreso(tipoIngreso);
this.editingIngreso.setValor(valor);
this.editingIngreso.setNroZInicial(nroZInicial);
this.editingIngreso.setNroZFinal(nroZFinal);
this.editingIngreso.setNroInicial(nroInicial);
this.editingIngreso.setNroFinal(nroFinal);
DAOManager.getIngresoDAO().updateIngreso(this.editingIngreso);
this.view.getIngresosTableModel().setIngreso(this.editingId, this.editingIngreso);
this.updateTotalIngresos();
this.clearInputs();
this.editing = false;
}
}
/**
* Llama a los metodos necesarios para validar el input
*
* @return true cuando todas las validaciones retoran true, si no, false
*/
private boolean validateInput(String nroZInicial, String nroZFinal, String nroInicial,
String nroFinal, TipoIngreso tipoIngreso, Caja caja) {
this.hideErrorMessages();
boolean nroInicialValidation = this.validateNroInicial(nroInicial);
boolean nroFinalValidation = this.validateNroFinal(nroFinal);
boolean tipoIngresoValidation = this.validateTipoIngreso(tipoIngreso);
boolean cajaValidation = this.validateCaja(caja);
return nroInicialValidation && nroFinalValidation && tipoIngresoValidation && cajaValidation;
}
/**
* Valida la variable caja este caso - Es null
*
* @return Si este caso es true se retornara false, si no, se retorna true
*/
private boolean validateCaja(Caja caja) {
return caja != null;
}
/**
* Valida la variable nroInicial contra los casos - Es null - Esta vacio Cuando el primer caso sea
* true, colocara un mensaje de error correspondiente en el jlabel correspondiente
*
* @return Si cualquiera de estos casos son true se retornara false, si no, se retorna true
*/
private boolean validateNroInicial(String nroInicial) {
if (nroInicial == null) {
this.view.getErrorNroInicial().setText("Hubo un problema con los datos");
this.view.getErrorNroInicial().setVisible(true);
return false;
}
/**
* Llena la tabla de ingresos con los ingresos pertenecientes a la caja guarda
*/
private void fillIngresosTable() {
IngresosTableModel ingresosTableModel = this.view.getIngresosTableModel();
ingresosTableModel.removeRows();
for (Ingreso ingreso : DAOManager.getIngresoDAO().findByCaja(this.caja)) {
ingresosTableModel.addRow(ingreso);
}
if (nroInicial.isEmpty()) {
this.view.getErrorNroInicial().setText("El campo esta vacio");
this.view.getErrorNroInicial().setVisible(true);
return false;
}
return true;
}
/**
* Valida la variable nroFinal contra los casos - Es null - Esta vacio Cuando el primer caso sea
* true, colocara un mensaje de error correspondiente en el jlabel correspondiente
*
* @return Si cualquiera de estos casos son true se retornara false, si no, se retorna true
*/
private boolean validateNroFinal(String nroFinal) {
if (nroFinal == null) {
this.view.getErrorNroFinal().setText("Hubo un problema con los datos");
this.view.getErrorNroFinal().setVisible(true);
return false;
}
/**
* Genera los eventos para los distintos componentes de la vista
* - Cuando se presiona el boton de guardar o se apreta enter en los fields de valor, nro inicial,
* nro final y tipo se llama a guardarActionListener
* - Cuando se presiona el boton de eliminar se llama al eliminarActionListener
* - Cuando se selecciona una fila en la tabla se llama a updateButtonsEnabled
* - Cuando se presiona el boton de editar o se hace doble click sobre una fila de la tabla se llama a editarActionListener
*/
private void setupViewEvents() {
moveTo(this.view.getValorField(), this.view.getNroZInicialField());
moveTo(this.view.getNroZInicialField(), this.view.getNroZFinalField());
moveTo(this.view.getNroZFinalField(), this.view.getNroInicialField());
moveTo(this.view.getNroInicialField(), this.view.getNroFinalField());
moveTo(this.view.getNroFinalField(), this.view.getTipoCombo());
doAction(this.view.getTipoCombo(), "save", KeyStroke.getKeyStroke("ENTER"), e ->this.guardarActionListener());
if (nroFinal.isEmpty()) {
this.view.getErrorNroFinal().setText("El campo esta vacio");
this.view.getErrorNroFinal().setVisible(true);
return false;
}
return true;
}
this.view.getIngresosTable().getSelectionModel().addListSelectionListener(e -> updateButtonsEnabled());
this.view.getGuardarButton().addActionListener(e -> guardarActionListener());
this.view.getEliminarButton().addActionListener(e -> eliminarActionListener());
this.view.getEditarButton().addActionListener(e -> editarActionListener());
/**
* Valida la variable caja este caso - Es null Cuando sea true, colocara un mensaje de error en el
* jlabel correspondiente
*
* @return Si este caso es true se retornara false, si no, se retorna true
*/
private boolean validateTipoIngreso(TipoIngreso tipoIngreso) {
if (tipoIngreso == null) {
this.view.getErrorTipoIngreso().setText("Hubo un problema con los datos");
this.view.getErrorTipoIngreso().setVisible(true);
return false;
}
return true;
}
this.view.getIngresosTable().addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent mouseEvent) {
JTable table = (JTable) mouseEvent.getSource();
if (mouseEvent.getClickCount() == 2 && table.getSelectedRow() != -1) {
IngresosController.this.editarActionListener();
}
}
});
/**
* Esconde los mensajes de error en la ventana de ingresos
*/
private void hideErrorMessages() {
this.view.getErrorTipoIngreso().setVisible(false);
this.view.getErrorNroInicial().setVisible(false);
this.view.getErrorNroFinal().setVisible(false);
}
/**
* Vacia los jtextfields y selecciona la primera opcion del jcombobox
*/
private void clearInputs() {
this.view.getTipoCombo().setSelectedIndex(0);
this.view.getValorField().setValue(0);
this.view.getValorField().setText("");
this.view.getNroZInicialField().setText("");
this.view.getNroZFinalField().setText("");
this.view.getNroInicialField().setText("");
this.view.getNroFinalField().setText("");
}
/**
* Ejecuta un trim sobre todos los jtextfield
*/
private void normalizeInputs() {
this.view.getNroZInicialField().setText(this.view.getNroZInicialField().getText().trim());
this.view.getNroZFinalField().setText(this.view.getNroZFinalField().getText().trim());
this.view.getNroInicialField().setText(this.view.getNroInicialField().getText().trim());
this.view.getNroFinalField().setText(this.view.getNroFinalField().getText().trim());
}
/**
* Le pide focus al tipo combo
*/
private void resetFocus() {
this.view.getValorField().requestFocus();
}
private class NextAction extends AbstractAction {
JComponent next;
NextAction(JComponent next) {
this.next = next;
}
/**
* Realiza las preparaciones previas a guardar un ingreso
* Primero llama a normalizar los inputs y a esconder los mensajes de error
* Luego dependiendo si se tiene la flag editing en true o false se llama a editar ingreso o a guardarlo
* Tras terminar esto se llama a resetear el focus.
*/
private void guardarActionListener() {
this.normalizeInputs();
this.hideErrorMessages();
@Override
public void actionPerformed(ActionEvent e) {
this.next.requestFocus();
}
}
int valor = this.view.getValorField().getValue();
String nroZInicial = this.view.getNroZInicialField().getText();
String nroZFinal = this.view.getNroZFinalField().getText();
String nroInicial = this.view.getNroInicialField().getText();
String nroFinal = this.view.getNroFinalField().getText();
TipoIngreso tipoIngreso = (TipoIngreso) this.view.getTipoCombo().getSelectedItem();
private class GuardarAction extends AbstractAction {
if (editing) {
this.editarIngreso(valor, nroZInicial, nroZFinal, nroInicial, nroFinal, tipoIngreso, this.caja);
} else {
this.guardarIngreso(valor, nroZInicial, nroZFinal, nroInicial, nroFinal, tipoIngreso, this.caja);
}
this.resetFocus();
IngresosController controller;
GuardarAction(IngresosController controller) {
this.controller = controller;
}
/**
* Realiza las acciones necesarias para eliminar un ingreso
* Solo lo va a realizar si es que esta seleccionada una fila de la tabla, se eliminara el ingreso seleccionado
* Una vez eliminado se llama a actualizar el total de ingresos y el estado de los botones
*/
private void eliminarActionListener() {
int selectedId = this.view.getIngresosTable().getSelectedRow();
if (selectedId >= 0) {
Ingreso ingreso = this.view.getIngresosTableModel().getIngreso(selectedId);
this.view.getIngresosTableModel().removeRow(selectedId);
DAOManager.getIngresoDAO().deleteIngreso(ingreso);
this.updateTotalIngresos();
this.updateButtonsEnabled();
this.resetFocus();
}
}
/**
* Realiza las preparaciones previas a editar un ingreso
* Primero llama a esconder los mensajes de error.
* Guarda globlarmente el ingreso a ser editar, el id de este y una flag que indica que se esta en modo de editar.
* Finalmente llena los campos de inputs con los datos del ingreso a editar.
*/
private void editarActionListener() {
this.hideErrorMessages();
int selectedID = this.view.getIngresosTable().getSelectedRow();
int selectedModelID = this.view.getIngresosTable().getRowSorter().convertRowIndexToModel(selectedID);
if (selectedModelID >= 0) {
Ingreso ingreso = this.view.getIngresosTableModel().getIngreso(selectedModelID);
this.editingId = selectedModelID;
this.editingIngreso = ingreso;
this.editing = true;
this.view.getTipoCombo().setSelectedItem(ingreso.getTipoIngreso());
this.view.getValorField().setValue(ingreso.getValor());
this.view.getNroZInicialField().setText(String.valueOf(ingreso.getNroZInicial()));
this.view.getNroZFinalField().setText(String.valueOf(ingreso.getNroZFinal()));
this.view.getNroInicialField().setText(String.valueOf(ingreso.getNroInicial()));
this.view.getNroFinalField().setText(String.valueOf(ingreso.getNroFinal()));
}
}
/**
* Obtiene el total de ingresos de la caja y lo coloca en el el field totalingresos
*/
private void updateTotalIngresos() {
int total = DAOManager.getIngresoDAO().getTotalIngreso(this.caja);
this.view.getTotalIngresoField().setValue(total);
}
/**
* Actualiza si los botones estan habilitados
* Esto depende de si se encuentra al menos una fila en la tabla seleccionada
* Si es asi, son habilidatos, si no, de deshabilitan
*/
private void updateButtonsEnabled() {
if (this.view.getIngresosTable().getSelectedRow() >= 0) {
this.view.getEliminarButton().setEnabled(true);
this.view.getEditarButton().setEnabled(true);
} else {
this.view.getEliminarButton().setEnabled(false);
this.view.getEditarButton().setEnabled(false);
}
}
/**
* Guarda un ingreso tras llamar a validar el input
* Luego de guardar agrega a la tabla el ingreso, llama a limpiar los campos de input y a actualizar el total de ingresos
*/
private void guardarIngreso(int valor, String nroZInicial, String nroZFinal, String nroInicial, String nroFinal, TipoIngreso tipoIngreso, Caja caja) {
if (this.validateInput(nroZInicial, nroZFinal, nroInicial, nroFinal, tipoIngreso, caja)) {
Ingreso ingreso = new Ingreso();
ingreso.setTipoIngreso(tipoIngreso);
ingreso.setCaja(caja);
ingreso.setValor(valor);
ingreso.setNroZInicial(nroZInicial);
ingreso.setNroZFinal(nroZFinal);
ingreso.setNroInicial(nroInicial);
ingreso.setNroFinal(nroFinal);
DAOManager.getIngresoDAO().insertIngreso(ingreso);
this.view.getIngresosTableModel().addRow(ingreso);
this.clearInputs();
this.updateTotalIngresos();
}
}
/**
* Edita el ingreso tras llamar a validar el input
* Tras esto actualiza el ingreso en la tabla, llama a actualizar el total de ingresos, a limpiar los campos de input y a desactivar la flag de editing.
*/
private void editarIngreso(int valor, String nroZInicial, String nroZFinal, String nroInicial, String nroFinal, TipoIngreso tipoIngreso, Caja caja) {
if (this.validateInput(nroZInicial, nroZFinal, nroInicial, nroFinal, tipoIngreso, caja)) {
this.editingIngreso.setTipoIngreso(tipoIngreso);
this.editingIngreso.setValor(valor);
this.editingIngreso.setNroZInicial(nroZInicial);
this.editingIngreso.setNroZFinal(nroZFinal);
this.editingIngreso.setNroInicial(nroInicial);
this.editingIngreso.setNroFinal(nroFinal);
DAOManager.getIngresoDAO().updateIngreso(this.editingIngreso);
this.view.getIngresosTableModel().setIngreso(this.editingId, this.editingIngreso);
this.updateTotalIngresos();
this.clearInputs();
this.editing = false;
}
}
/**
* Llama a los metodos necesarios para validar el input
*
* @return true cuando todas las validaciones retoran true, si no, false
*/
private boolean validateInput(String nroZInicial, String nroZFinal, String nroInicial, String nroFinal, TipoIngreso tipoIngreso, Caja caja) {
this.hideErrorMessages();
boolean nroInicialValidation = this.validateNroInicial(nroInicial);
boolean nroFinalValidation = this.validateNroFinal(nroFinal);
boolean tipoIngresoValidation = this.validateTipoIngreso(tipoIngreso);
boolean cajaValidation = this.validateCaja(caja);
return nroInicialValidation && nroFinalValidation && tipoIngresoValidation && cajaValidation;
}
/**
* Valida la variable caja este caso
* - Es null
*
* @return Si este caso es true se retornara false, si no, se retorna true
*/
private boolean validateCaja(Caja caja) {
return caja != null;
}
/**
* Valida la variable nroInicial contra los casos
* - Es null
* - Esta vacio
* Cuando el primer caso sea true, colocara un mensaje de error correspondiente en el jlabel correspondiente
*
* @return Si cualquiera de estos casos son true se retornara false, si no, se retorna true
*/
private boolean validateNroInicial(String nroInicial) {
if (nroInicial == null) {
this.view.getErrorNroInicial().setText("Hubo un problema con los datos");
this.view.getErrorNroInicial().setVisible(true);
return false;
}
if (nroInicial.isEmpty()) {
this.view.getErrorNroInicial().setText("El campo esta vacio");
this.view.getErrorNroInicial().setVisible(true);
return false;
}
return true;
}
/**
* Valida la variable nroFinal contra los casos
* - Es null
* - Esta vacio
* Cuando el primer caso sea true, colocara un mensaje de error correspondiente en el jlabel correspondiente
*
* @return Si cualquiera de estos casos son true se retornara false, si no, se retorna true
*/
private boolean validateNroFinal(String nroFinal) {
if (nroFinal == null) {
this.view.getErrorNroFinal().setText("Hubo un problema con los datos");
this.view.getErrorNroFinal().setVisible(true);
return false;
}
if (nroFinal.isEmpty()) {
this.view.getErrorNroFinal().setText("El campo esta vacio");
this.view.getErrorNroFinal().setVisible(true);
return false;
}
return true;
}
/**
* Valida la variable caja este caso
* - Es null
* Cuando sea true, colocara un mensaje de error en el jlabel correspondiente
*
* @return Si este caso es true se retornara false, si no, se retorna true
*/
private boolean validateTipoIngreso(TipoIngreso tipoIngreso) {
if (tipoIngreso == null) {
this.view.getErrorTipoIngreso().setText("Hubo un problema con los datos");
this.view.getErrorTipoIngreso().setVisible(true);
return false;
}
return true;
}
/**
* Esconde los mensajes de error en la ventana de ingresos
*/
private void hideErrorMessages() {
this.view.getErrorTipoIngreso().setVisible(false);
this.view.getErrorNroInicial().setVisible(false);
this.view.getErrorNroFinal().setVisible(false);
}
/**
* Vacia los jtextfields y selecciona la primera opcion del jcombobox
*/
private void clearInputs() {
this.view.getTipoCombo().setSelectedIndex(0);
this.view.getValorField().setValue(0);
this.view.getValorField().setText("");
this.view.getNroZInicialField().setText("");
this.view.getNroZFinalField().setText("");
this.view.getNroInicialField().setText("");
this.view.getNroFinalField().setText("");
}
/**
* Ejecuta un trim sobre todos los jtextfield
*/
private void normalizeInputs() {
this.view.getNroZInicialField().setText(this.view.getNroZInicialField().getText().trim());
this.view.getNroZFinalField().setText(this.view.getNroZFinalField().getText().trim());
this.view.getNroInicialField().setText(this.view.getNroInicialField().getText().trim());
this.view.getNroFinalField().setText(this.view.getNroFinalField().getText().trim());
}
/**
* Le pide focus al tipo combo
*/
private void resetFocus() {
this.view.getValorField().requestFocus();
}
private class NextAction extends AbstractAction {
JComponent next;
NextAction(JComponent next) {
this.next = next;
}
@Override
public void actionPerformed(ActionEvent e) {
this.next.requestFocus();
}
}
private class GuardarAction extends AbstractAction {
IngresosController controller;
GuardarAction(IngresosController controller) {
this.controller = controller;
}
@Override
public void actionPerformed(ActionEvent e) {
this.controller.guardarActionListener();
}
@Override
public void actionPerformed(ActionEvent e) {
this.controller.guardarActionListener();
}
}
}

View File

@@ -2,23 +2,23 @@ package danielcortes.xyz.controllers;
import danielcortes.xyz.data.Configuration;
import danielcortes.xyz.views.MainSideBar;
import javax.swing.border.TitledBorder;
public class MainSideBarController {
private MainSideBar view;
public MainSideBarController(MainSideBar view){
this.view = view;
this.loadRestaurantName();
}
private MainSideBar view;
public MainSideBar getView() {
return view;
}
public MainSideBarController(MainSideBar view) {
this.view = view;
this.loadRestaurantName();
}
private void loadRestaurantName(){
String nombre = Configuration.get("nombre_caja");
((TitledBorder)this.view.getButtonPanel().getBorder()).setTitle("Restaurant: " + nombre);
}
public MainSideBar getView() {
return view;
}
private void loadRestaurantName() {
String nombre = Configuration.get("nombre_caja");
((TitledBorder) this.view.getButtonPanel().getBorder()).setTitle("Restaurant: " + nombre);
}
}

View File

@@ -1,35 +1,36 @@
package danielcortes.xyz.controllers.actions;
import javax.swing.*;
import java.awt.event.ActionEvent;
import java.beans.PropertyChangeListener;
import javax.swing.Action;
public interface BasicAction extends Action {
@Override
default Object getValue(String key) {
return null;
}
@Override
default void putValue(String key, Object value) {
}
@Override
default Object getValue(String key) {
return null;
}
@Override
default void setEnabled(boolean b) {
}
@Override
default void putValue(String key, Object value) {
}
@Override
default boolean isEnabled() {
return true;
}
@Override
default boolean isEnabled() {
return true;
}
@Override
default void addPropertyChangeListener(PropertyChangeListener listener) {
}
@Override
default void setEnabled(boolean b) {
}
@Override
default void removePropertyChangeListener(PropertyChangeListener listener) {
}
@Override
default void addPropertyChangeListener(PropertyChangeListener listener) {
}
void actionPerformed(ActionEvent e);
@Override
default void removePropertyChangeListener(PropertyChangeListener listener) {
}
void actionPerformed(ActionEvent e);
}

View File

@@ -24,18 +24,20 @@
package danielcortes.xyz.controllers.actions;
import javax.swing.*;
import java.awt.event.ActionEvent;
import javax.swing.AbstractAction;
import javax.swing.JComponent;
public class MoveToAction extends AbstractAction {
private JComponent next;
public MoveToAction(JComponent next) {
this.next = next;
}
private JComponent next;
@Override
public void actionPerformed(ActionEvent e) {
this.next.requestFocus();
}
public MoveToAction(JComponent next) {
this.next = next;
}
@Override
public void actionPerformed(ActionEvent e) {
this.next.requestFocus();
}
}

View File

@@ -31,29 +31,30 @@ import java.util.logging.Level;
import java.util.logging.Logger;
public class Configuration {
private static final Logger LOGGER = Logger.getLogger( Configuration.class.getName() );
private static final Properties config;
private static final Logger LOGGER = Logger.getLogger(Configuration.class.getName());
static {
config = new Properties();
private static final Properties config;
try {
LOGGER.log(Level.INFO, "Leyendo y llenando el objeto de properties");
static {
config = new Properties();
FileInputStream in = new FileInputStream("config/app.properties");
config.load(in);
in.close();
try {
LOGGER.log(Level.INFO, "Leyendo y llenando el objeto de properties");
LOGGER.log(Level.INFO, "El objeto de properties se a llenado correctamente");
FileInputStream in = new FileInputStream("config/app.properties");
config.load(in);
in.close();
} catch (IOException e) {
LOGGER.log(Level.SEVERE, e.toString(), e);
System.exit(1);
}
LOGGER.log(Level.INFO, "El objeto de properties se a llenado correctamente");
} catch (IOException e) {
LOGGER.log(Level.SEVERE, e.toString(), e);
System.exit(1);
}
}
public static String get(String key) {
return config.getProperty(key);
}
public static String get(String key) {
return config.getProperty(key);
}
}

View File

@@ -28,5 +28,6 @@ import java.sql.Connection;
import java.sql.SQLException;
public interface ConnectionHolder {
Connection getConnection() throws SQLException;
Connection getConnection() throws SQLException;
}

View File

@@ -50,79 +50,80 @@ import danielcortes.xyz.models.version.SQLiteVersionDAO;
import danielcortes.xyz.models.version.VersionDAO;
public class DAOManager {
private static final CajaDAO cajaDAO;
private static final CalculoFondoDAO calculoFondoDAO;
private static final DocumentosDAO documentosDAO;
private static final EfectivoDAO efectivoDAO;
private static final EgresoDAO egresoDAO;
private static final InformeEgresosContentDAO egresosContentDAO;
private static final InformeLibroDeVentasContentDAO libroDeVentasContentDAO;
private static final IngresoDAO ingresoDAO;
private static final TipoEgresoDAO tipoEgresoDAO;
private static final TipoIngresoDAO tipoIngresoDAO;
private static final EstadoResultadoDAO estadoResultadoDAO;
private static final VersionDAO versionDAO;
static {
cajaDAO = new SQLiteCajaDAO();
calculoFondoDAO = new SQLiteCalculoFondoDAO();
documentosDAO = new SQLiteDocumentosDAO();
efectivoDAO = new SQLiteEfectivoDAO();
egresoDAO = new SQLiteEgresoDAO();
egresosContentDAO = new SQLiteInformeEgresosContentDAO();
libroDeVentasContentDAO = new SQLiteInformeLibroDeVentasContentDAO();
ingresoDAO = new SQLiteIngresoDAO();
tipoEgresoDAO = new SQLiteTipoEgresoDAO();
tipoIngresoDAO = new SQLiteTipoIngresoDAO();
estadoResultadoDAO = new SQLiteEstadoResultadoDAO();
versionDAO = new SQLiteVersionDAO();
}
private static final CajaDAO cajaDAO;
private static final CalculoFondoDAO calculoFondoDAO;
private static final DocumentosDAO documentosDAO;
private static final EfectivoDAO efectivoDAO;
private static final EgresoDAO egresoDAO;
private static final InformeEgresosContentDAO egresosContentDAO;
private static final InformeLibroDeVentasContentDAO libroDeVentasContentDAO;
private static final IngresoDAO ingresoDAO;
private static final TipoEgresoDAO tipoEgresoDAO;
private static final TipoIngresoDAO tipoIngresoDAO;
private static final EstadoResultadoDAO estadoResultadoDAO;
private static final VersionDAO versionDAO;
public static CajaDAO getCajaDAO() {
return cajaDAO;
}
static {
cajaDAO = new SQLiteCajaDAO();
calculoFondoDAO = new SQLiteCalculoFondoDAO();
documentosDAO = new SQLiteDocumentosDAO();
efectivoDAO = new SQLiteEfectivoDAO();
egresoDAO = new SQLiteEgresoDAO();
egresosContentDAO = new SQLiteInformeEgresosContentDAO();
libroDeVentasContentDAO = new SQLiteInformeLibroDeVentasContentDAO();
ingresoDAO = new SQLiteIngresoDAO();
tipoEgresoDAO = new SQLiteTipoEgresoDAO();
tipoIngresoDAO = new SQLiteTipoIngresoDAO();
estadoResultadoDAO = new SQLiteEstadoResultadoDAO();
versionDAO = new SQLiteVersionDAO();
}
public static CalculoFondoDAO getCalculoFondoDAO() {
return calculoFondoDAO;
}
public static CajaDAO getCajaDAO() {
return cajaDAO;
}
public static DocumentosDAO getDocumentosDAO() {
return documentosDAO;
}
public static CalculoFondoDAO getCalculoFondoDAO() {
return calculoFondoDAO;
}
public static EfectivoDAO getEfectivoDAO() {
return efectivoDAO;
}
public static DocumentosDAO getDocumentosDAO() {
return documentosDAO;
}
public static EgresoDAO getEgresoDAO() {
return egresoDAO;
}
public static EfectivoDAO getEfectivoDAO() {
return efectivoDAO;
}
public static InformeEgresosContentDAO getEgresosContentDAO() {
return egresosContentDAO;
}
public static EgresoDAO getEgresoDAO() {
return egresoDAO;
}
public static InformeLibroDeVentasContentDAO getLibroDeVentasContentDAO() {
return libroDeVentasContentDAO;
}
public static InformeEgresosContentDAO getEgresosContentDAO() {
return egresosContentDAO;
}
public static IngresoDAO getIngresoDAO() {
return ingresoDAO;
}
public static InformeLibroDeVentasContentDAO getLibroDeVentasContentDAO() {
return libroDeVentasContentDAO;
}
public static TipoEgresoDAO getTipoEgresoDAO() {
return tipoEgresoDAO;
}
public static IngresoDAO getIngresoDAO() {
return ingresoDAO;
}
public static TipoIngresoDAO getTipoIngresoDAO() {
return tipoIngresoDAO;
}
public static TipoEgresoDAO getTipoEgresoDAO() {
return tipoEgresoDAO;
}
public static EstadoResultadoDAO getEstadoResultadoDAO() {
return estadoResultadoDAO;
}
public static TipoIngresoDAO getTipoIngresoDAO() {
return tipoIngresoDAO;
}
public static VersionDAO getVersionDAO() {
return versionDAO;
}
public static EstadoResultadoDAO getEstadoResultadoDAO() {
return estadoResultadoDAO;
}
public static VersionDAO getVersionDAO() {
return versionDAO;
}
}

View File

@@ -31,28 +31,29 @@ import java.util.logging.Level;
import java.util.logging.Logger;
public class SQLiteConnectionHolder implements ConnectionHolder {
private static final Logger LOGGER = Logger.getLogger( Configuration.class.getName() );
private static final Logger LOGGER = Logger.getLogger(Configuration.class.getName());
private String databaseURI;
private String databaseURI;
public SQLiteConnectionHolder() {
this.databaseURI = Configuration.get("sqlite_database_uri");
public SQLiteConnectionHolder() {
this.databaseURI = Configuration.get("sqlite_database_uri");
}
@Override
public Connection getConnection() throws SQLException {
Connection con = null;
try {
Class.forName("org.sqlite.JDBC");
con = DriverManager.getConnection(databaseURI);
LOGGER.log(Level.FINEST, "Creada conexion a base de datos SQLITE");
} catch (ClassNotFoundException e) {
LOGGER.log(Level.SEVERE, e.toString(), e);
System.exit(133);
}
@Override
public Connection getConnection() throws SQLException {
Connection con = null;
try {
Class.forName("org.sqlite.JDBC");
con = DriverManager.getConnection(databaseURI);
LOGGER.log(Level.FINEST, "Creada conexion a base de datos SQLITE");
} catch (ClassNotFoundException e) {
LOGGER.log(Level.SEVERE, e.toString(), e);
System.exit(133);
}
return con;
}
return con;
}
}

View File

@@ -28,11 +28,6 @@ import danielcortes.xyz.models.caja.SQLiteCajaDAO;
import danielcortes.xyz.models.informes.egresos.InformeEgresosContent;
import danielcortes.xyz.models.informes.egresos.SQLiteInformeEgresosContentDAO;
import danielcortes.xyz.utils.Pair;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.ss.util.CellRangeAddress;
import org.apache.poi.ss.util.PropertyTemplate;
import java.io.IOException;
import java.io.OutputStream;
import java.nio.file.Files;
@@ -43,255 +38,287 @@ import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.BorderExtent;
import org.apache.poi.ss.usermodel.BorderStyle;
import org.apache.poi.ss.usermodel.CellStyle;
import org.apache.poi.ss.usermodel.CreationHelper;
import org.apache.poi.ss.usermodel.FillPatternType;
import org.apache.poi.ss.usermodel.Font;
import org.apache.poi.ss.usermodel.HorizontalAlignment;
import org.apache.poi.ss.usermodel.IndexedColors;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.VerticalAlignment;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.ss.util.CellRangeAddress;
import org.apache.poi.ss.util.PropertyTemplate;
public class InformeEgresos {
private final String[] titles = {
"FECHA",
"",
"DESCRIPCION",
"VALOR"
};
private List<InformeEgresosContent> informe;
private Path saveFile;
private final String[] titles = {
"FECHA",
"",
"DESCRIPCION",
"VALOR"
};
//Filas donde se almacenaran los totales
private ArrayList<Row> totalRows;
//Filas donde se almacenaran los egresos.
private ArrayList<Row> dataRows;
//Fila que contiene el total final;
private Row totalFinal;
private List<InformeEgresosContent> informe;
private Path saveFile;
//Filas donde se almacenaran los totales
private ArrayList<Row> totalRows;
//Filas donde se almacenaran los egresos.
private ArrayList<Row> dataRows;
//Fila que contiene el total final;
private Row totalFinal;
//Rango que corresponde a un dia de egresos;
private ArrayList<Pair<Integer, Integer>> totalRange;
private Workbook wb;
private Sheet sheet;
private CreationHelper createHelper;
private HashMap<String, CellStyle> styles;
//Rango que corresponde a un dia de egresos;
private ArrayList<Pair<Integer, Integer>> totalRange;
private Workbook wb;
private Sheet sheet;
private CreationHelper createHelper;
private HashMap<String, CellStyle> styles;
public InformeEgresos(int tipoEgresoId, YearMonth mes, Path saveFile) {
new SQLiteCajaDAO().createCajasForMonth(mes);
this.informe = new SQLiteInformeEgresosContentDAO().getInformeEgresosFactuasMateriaPrima(mes, tipoEgresoId);
this.saveFile = saveFile;
public InformeEgresos(int tipoEgresoId, YearMonth mes, Path saveFile) {
new SQLiteCajaDAO().createCajasForMonth(mes);
this.informe = new SQLiteInformeEgresosContentDAO()
.getInformeEgresosFactuasMateriaPrima(mes, tipoEgresoId);
this.saveFile = saveFile;
this.wb = new HSSFWorkbook();
this.sheet = wb.createSheet();
this.createHelper = wb.getCreationHelper();
this.wb = new HSSFWorkbook();
this.sheet = wb.createSheet();
this.createHelper = wb.getCreationHelper();
this.totalRows = new ArrayList<>();
this.totalRange = new ArrayList<>();
this.dataRows = new ArrayList<>();
this.totalRows = new ArrayList<>();
this.totalRange = new ArrayList<>();
this.dataRows = new ArrayList<>();
this.styles = this.generateStyles();
this.styles = this.generateStyles();
}
private void fillHeaders() {
Row titles = sheet.createRow(0);
for (int x = 0; x < this.titles.length; x++) {
titles.createCell(x).setCellValue(this.titles[x]);
}
}
private void fillData() {
int rowCounter = 1;
int dayStart = rowCounter;
int dayEnd;
for (int informeID = 0; informeID < informe.size(); informeID++) {
InformeEgresosContent data = informe.get(informeID);
int cellCounter = 0;
Row dataRow = sheet.createRow(rowCounter);
dataRows.add(dataRow);
Date fecha = Date.from(data.getFecha().atStartOfDay(ZoneId.systemDefault()).toInstant());
dataRow.createCell(cellCounter++).setCellValue(fecha);
dataRow.createCell(cellCounter++).setCellValue(data.getNro());
dataRow.createCell(cellCounter++).setCellValue(data.getDescripcion());
dataRow.createCell(cellCounter).setCellValue(data.getValor());
// Comprueba si es que el siguiente elemento en la lista de informe es del siguiente dia, si es asi, agrega una linea con los totales diarios.
if (informeID + 1 >= informe.size() || !data.getFecha()
.equals(informe.get(informeID + 1).getFecha())) {
totalRows.add(sheet.createRow(rowCounter + 1));
dayEnd = rowCounter;
totalRange.add(new Pair<>(dayStart, dayEnd));
dayStart = rowCounter + 2;
rowCounter++;
}
rowCounter++;
}
}
private void fillTotales() {
StringBuilder sumTotalFinal = new StringBuilder();
//Se aprovechara la iteracion para agregar los totales individuales y para construir la suma del total final
for (int x = 0; x < totalRows.size(); x++) {
Row row = totalRows.get(x);
Pair<Integer, Integer> range = totalRange.get(x);
row.createCell(2).setCellValue("TOTAL DIARIO");
row.createCell(3)
.setCellFormula("SUM(D" + (range.getLeft() + 1) + ":D" + (range.getRight() + 1) + ")");
sumTotalFinal.append("D").append(row.getRowNum() + 1);
if (x + 1 != totalRows.size()) {
sumTotalFinal.append("+");
} else {
this.totalFinal = sheet.createRow(row.getRowNum() + 1);
this.totalFinal.createCell(2).setCellValue("TOTAL MENSUAL");
this.totalFinal.createCell(3).setCellFormula(sumTotalFinal.toString());
}
}
private void fillHeaders() {
Row titles = sheet.createRow(0);
for (int x = 0; x < this.titles.length; x++) {
titles.createCell(x).setCellValue(this.titles[x]);
}
}
private void freezeCells() {
this.sheet.createFreezePane(0, 1);
}
private void addBorders() {
int rows = this.totalRows.size() + this.dataRows.size() + 1;
PropertyTemplate pt = new PropertyTemplate();
//Bordes Internos
pt.drawBorders(new CellRangeAddress(0, rows, 0, 3), BorderStyle.THIN, BorderExtent.ALL);
//Bordes de los Headers
pt.drawBorders(new CellRangeAddress(0, 0, 0, 3), BorderStyle.MEDIUM, BorderExtent.OUTSIDE);
//Bordes de los Totales
for (Row row : this.totalRows) {
int index = row.getRowNum();
pt.drawBorders(new CellRangeAddress(index, index, 0, 3), BorderStyle.NONE, BorderExtent.ALL);
pt.drawBorders(new CellRangeAddress(index, index, 0, 3), BorderStyle.MEDIUM,
BorderExtent.OUTSIDE);
}
private void fillData() {
int rowCounter = 1;
int dayStart = rowCounter;
int dayEnd;
//Borde del Total Final
pt.drawBorders(
new CellRangeAddress(this.totalFinal.getRowNum(), this.totalFinal.getRowNum(), 0, 3),
BorderStyle.NONE, BorderExtent.ALL);
pt.drawBorders(
new CellRangeAddress(this.totalFinal.getRowNum(), this.totalFinal.getRowNum(), 0, 3),
BorderStyle.MEDIUM, BorderExtent.OUTSIDE);
for (int informeID = 0; informeID < informe.size(); informeID++) {
InformeEgresosContent data = informe.get(informeID);
int cellCounter = 0;
Row dataRow = sheet.createRow(rowCounter);
dataRows.add(dataRow);
Date fecha = Date.from(data.getFecha().atStartOfDay(ZoneId.systemDefault()).toInstant());
//Borde externo
pt.drawBorders(new CellRangeAddress(0, rows, 0, 3), BorderStyle.MEDIUM, BorderExtent.OUTSIDE);
dataRow.createCell(cellCounter++).setCellValue(fecha);
dataRow.createCell(cellCounter++).setCellValue(data.getNro());
dataRow.createCell(cellCounter++).setCellValue(data.getDescripcion());
dataRow.createCell(cellCounter).setCellValue(data.getValor());
pt.applyBorders(this.sheet);
}
// Comprueba si es que el siguiente elemento en la lista de informe es del siguiente dia, si es asi, agrega una linea con los totales diarios.
if (informeID + 1 >= informe.size() || !data.getFecha().equals(informe.get(informeID + 1).getFecha())) {
totalRows.add(sheet.createRow(rowCounter + 1));
private void setStyles() {
//Estilo para el header
this.sheet.getRow(0).getCell(0).setCellStyle(this.styles.get("header"));
this.sheet.getRow(0).getCell(1).setCellStyle(this.styles.get("header"));
this.sheet.getRow(0).getCell(2).setCellStyle(this.styles.get("header"));
this.sheet.getRow(0).getCell(3).setCellStyle(this.styles.get("header"));
dayEnd = rowCounter;
totalRange.add(new Pair<>(dayStart, dayEnd));
dayStart = rowCounter + 2;
rowCounter++;
}
//Estilo para el Total Final
this.totalFinal.getCell(0, Row.MissingCellPolicy.CREATE_NULL_AS_BLANK)
.setCellStyle(this.styles.get("gray"));
this.totalFinal.getCell(1, Row.MissingCellPolicy.CREATE_NULL_AS_BLANK)
.setCellStyle(this.styles.get("gray"));
this.totalFinal.getCell(2, Row.MissingCellPolicy.CREATE_NULL_AS_BLANK)
.setCellStyle(this.styles.get("gray"));
this.totalFinal.getCell(3).setCellStyle(this.styles.get("total_final"));
rowCounter++;
}
//Estilo para las filas de datos
for (Row row : this.dataRows) {
row.getCell(0).setCellStyle(this.styles.get("date"));
row.getCell(1).setCellStyle(this.styles.get("regular"));
row.getCell(2).setCellStyle(this.styles.get("regular"));
row.getCell(3).setCellStyle(this.styles.get("money"));
}
private void fillTotales() {
StringBuilder sumTotalFinal = new StringBuilder();
//Se aprovechara la iteracion para agregar los totales individuales y para construir la suma del total final
for (int x = 0; x < totalRows.size(); x++) {
Row row = totalRows.get(x);
Pair<Integer, Integer> range = totalRange.get(x);
row.createCell(2).setCellValue("TOTAL DIARIO");
row.createCell(3).setCellFormula("SUM(D" + (range.getLeft() + 1) + ":D" + (range.getRight() + 1) + ")");
sumTotalFinal.append("D").append(row.getRowNum() + 1);
if (x + 1 != totalRows.size()) {
sumTotalFinal.append("+");
} else {
this.totalFinal = sheet.createRow(row.getRowNum() + 1);
this.totalFinal.createCell(2).setCellValue("TOTAL MENSUAL");
this.totalFinal.createCell(3).setCellFormula(sumTotalFinal.toString());
}
}
//Estilo para las filas de totales
for (Row row : this.totalRows) {
row.getCell(0, Row.MissingCellPolicy.CREATE_NULL_AS_BLANK)
.setCellStyle(this.styles.get("not_so_gray"));
row.getCell(1, Row.MissingCellPolicy.CREATE_NULL_AS_BLANK)
.setCellStyle(this.styles.get("not_so_gray"));
row.getCell(2, Row.MissingCellPolicy.CREATE_NULL_AS_BLANK)
.setCellStyle(this.styles.get("not_so_gray"));
row.getCell(3, Row.MissingCellPolicy.CREATE_NULL_AS_BLANK)
.setCellStyle(this.styles.get("total"));
}
private void freezeCells() {
this.sheet.createFreezePane(0, 1);
//Setea el alto de las filas
this.sheet.getRow(0).setHeightInPoints(30);
this.totalFinal.setHeightInPoints(20);
for (Row row : this.dataRows) {
row.setHeightInPoints(15);
}
for (Row row : this.totalRows) {
row.setHeightInPoints(18);
}
private void addBorders() {
int rows = this.totalRows.size() + this.dataRows.size() + 1;
PropertyTemplate pt = new PropertyTemplate();
//Setea el ancho de las columnas
sheet.autoSizeColumn(0);
sheet.autoSizeColumn(1);
sheet.autoSizeColumn(2);
sheet.autoSizeColumn(3);
}
//Bordes Internos
pt.drawBorders(new CellRangeAddress(0, rows, 0, 3), BorderStyle.THIN, BorderExtent.ALL);
private HashMap<String, CellStyle> generateStyles() {
Font font = this.wb.createFont();
font.setBold(true);
font.setColor(IndexedColors.WHITE.getIndex());
//Bordes de los Headers
pt.drawBorders(new CellRangeAddress(0, 0, 0, 3), BorderStyle.MEDIUM, BorderExtent.OUTSIDE);
CellStyle regularStyle = this.wb.createCellStyle();
//Bordes de los Totales
for (Row row : this.totalRows) {
int index = row.getRowNum();
pt.drawBorders(new CellRangeAddress(index, index, 0, 3), BorderStyle.NONE, BorderExtent.ALL);
pt.drawBorders(new CellRangeAddress(index, index, 0, 3), BorderStyle.MEDIUM, BorderExtent.OUTSIDE);
}
CellStyle grayStyle = this.wb.createCellStyle();
grayStyle.setFont(font);
grayStyle.setVerticalAlignment(VerticalAlignment.CENTER);
grayStyle.setFillForegroundColor(IndexedColors.GREY_80_PERCENT.getIndex());
grayStyle.setFillPattern(FillPatternType.SOLID_FOREGROUND);
//Borde del Total Final
pt.drawBorders(new CellRangeAddress(this.totalFinal.getRowNum(), this.totalFinal.getRowNum(), 0, 3), BorderStyle.NONE, BorderExtent.ALL);
pt.drawBorders(new CellRangeAddress(this.totalFinal.getRowNum(), this.totalFinal.getRowNum(), 0, 3), BorderStyle.MEDIUM, BorderExtent.OUTSIDE);
CellStyle notSoGrayStyle = this.wb.createCellStyle();
notSoGrayStyle.setFont(font);
notSoGrayStyle.setVerticalAlignment(VerticalAlignment.CENTER);
notSoGrayStyle.setFillForegroundColor(IndexedColors.GREY_40_PERCENT.getIndex());
notSoGrayStyle.setFillPattern(FillPatternType.SOLID_FOREGROUND);
//Borde externo
pt.drawBorders(new CellRangeAddress(0, rows, 0, 3), BorderStyle.MEDIUM, BorderExtent.OUTSIDE);
CellStyle dateStyle = this.wb.createCellStyle();
dateStyle.setDataFormat(this.createHelper.createDataFormat().getFormat("dd/mm/yyyy"));
pt.applyBorders(this.sheet);
}
private void setStyles() {
//Estilo para el header
this.sheet.getRow(0).getCell(0).setCellStyle(this.styles.get("header"));
this.sheet.getRow(0).getCell(1).setCellStyle(this.styles.get("header"));
this.sheet.getRow(0).getCell(2).setCellStyle(this.styles.get("header"));
this.sheet.getRow(0).getCell(3).setCellStyle(this.styles.get("header"));
//Estilo para el Total Final
this.totalFinal.getCell(0, Row.MissingCellPolicy.CREATE_NULL_AS_BLANK).setCellStyle(this.styles.get("gray"));
this.totalFinal.getCell(1, Row.MissingCellPolicy.CREATE_NULL_AS_BLANK).setCellStyle(this.styles.get("gray"));
this.totalFinal.getCell(2, Row.MissingCellPolicy.CREATE_NULL_AS_BLANK).setCellStyle(this.styles.get("gray"));
this.totalFinal.getCell(3).setCellStyle(this.styles.get("total_final"));
//Estilo para las filas de datos
for (Row row : this.dataRows) {
row.getCell(0).setCellStyle(this.styles.get("date"));
row.getCell(1).setCellStyle(this.styles.get("regular"));
row.getCell(2).setCellStyle(this.styles.get("regular"));
row.getCell(3).setCellStyle(this.styles.get("money"));
}
//Estilo para las filas de totales
for (Row row : this.totalRows) {
row.getCell(0, Row.MissingCellPolicy.CREATE_NULL_AS_BLANK).setCellStyle(this.styles.get("not_so_gray"));
row.getCell(1, Row.MissingCellPolicy.CREATE_NULL_AS_BLANK).setCellStyle(this.styles.get("not_so_gray"));
row.getCell(2, Row.MissingCellPolicy.CREATE_NULL_AS_BLANK).setCellStyle(this.styles.get("not_so_gray"));
row.getCell(3, Row.MissingCellPolicy.CREATE_NULL_AS_BLANK).setCellStyle(this.styles.get("total"));
}
//Setea el alto de las filas
this.sheet.getRow(0).setHeightInPoints(30);
this.totalFinal.setHeightInPoints(20);
for (Row row : this.dataRows) {
row.setHeightInPoints(15);
}
for (Row row : this.totalRows) {
row.setHeightInPoints(18);
}
//Setea el ancho de las columnas
sheet.autoSizeColumn(0);
sheet.autoSizeColumn(1);
sheet.autoSizeColumn(2);
sheet.autoSizeColumn(3);
}
private HashMap<String, CellStyle> generateStyles() {
Font font = this.wb.createFont();
font.setBold(true);
font.setColor(IndexedColors.WHITE.getIndex());
CellStyle regularStyle = this.wb.createCellStyle();
CellStyle grayStyle = this.wb.createCellStyle();
grayStyle.setFont(font);
grayStyle.setVerticalAlignment(VerticalAlignment.CENTER);
grayStyle.setFillForegroundColor(IndexedColors.GREY_80_PERCENT.getIndex());
grayStyle.setFillPattern(FillPatternType.SOLID_FOREGROUND);
CellStyle notSoGrayStyle = this.wb.createCellStyle();
notSoGrayStyle.setFont(font);
notSoGrayStyle.setVerticalAlignment(VerticalAlignment.CENTER);
notSoGrayStyle.setFillForegroundColor(IndexedColors.GREY_40_PERCENT.getIndex());
notSoGrayStyle.setFillPattern(FillPatternType.SOLID_FOREGROUND);
CellStyle dateStyle = this.wb.createCellStyle();
dateStyle.setDataFormat(this.createHelper.createDataFormat().getFormat("dd/mm/yyyy"));
CellStyle moneyStyle = this.wb.createCellStyle();
moneyStyle.setDataFormat(this.createHelper.createDataFormat().getFormat("\"$\"#,##0_);(\"$\"#,##0)"));
CellStyle headerStyle = this.wb.createCellStyle();
headerStyle.cloneStyleFrom(grayStyle);
headerStyle.setAlignment(HorizontalAlignment.CENTER);
CellStyle totalStyle = this.wb.createCellStyle();
totalStyle.cloneStyleFrom(notSoGrayStyle);
totalStyle.setDataFormat(this.createHelper.createDataFormat().getFormat("\"$\"#,##0_);(\"$\"#,##0)"));
CellStyle totalFinalStyle = this.wb.createCellStyle();
totalFinalStyle.cloneStyleFrom(grayStyle);
totalFinalStyle.setDataFormat(this.createHelper.createDataFormat().getFormat("\"$\"#,##0_);(\"$\"#,##0)"));
HashMap<String, CellStyle> styles = new HashMap<>();
styles.put("regular", regularStyle);
styles.put("gray", grayStyle);
styles.put("not_so_gray", notSoGrayStyle);
styles.put("date", dateStyle);
styles.put("money", moneyStyle);
styles.put("header", headerStyle);
styles.put("total", totalStyle);
styles.put("total_final", totalFinalStyle);
return styles;
}
public Path generarInforme() {
fillHeaders();
fillData();
fillTotales();
freezeCells();
setStyles();
addBorders();
try (OutputStream fileOut = Files.newOutputStream(this.saveFile)) {
wb.write(fileOut);
return this.saveFile;
} catch (IOException e) {
e.printStackTrace();
}
return null;
CellStyle moneyStyle = this.wb.createCellStyle();
moneyStyle
.setDataFormat(this.createHelper.createDataFormat().getFormat("\"$\"#,##0_);(\"$\"#,##0)"));
CellStyle headerStyle = this.wb.createCellStyle();
headerStyle.cloneStyleFrom(grayStyle);
headerStyle.setAlignment(HorizontalAlignment.CENTER);
CellStyle totalStyle = this.wb.createCellStyle();
totalStyle.cloneStyleFrom(notSoGrayStyle);
totalStyle
.setDataFormat(this.createHelper.createDataFormat().getFormat("\"$\"#,##0_);(\"$\"#,##0)"));
CellStyle totalFinalStyle = this.wb.createCellStyle();
totalFinalStyle.cloneStyleFrom(grayStyle);
totalFinalStyle
.setDataFormat(this.createHelper.createDataFormat().getFormat("\"$\"#,##0_);(\"$\"#,##0)"));
HashMap<String, CellStyle> styles = new HashMap<>();
styles.put("regular", regularStyle);
styles.put("gray", grayStyle);
styles.put("not_so_gray", notSoGrayStyle);
styles.put("date", dateStyle);
styles.put("money", moneyStyle);
styles.put("header", headerStyle);
styles.put("total", totalStyle);
styles.put("total_final", totalFinalStyle);
return styles;
}
public Path generarInforme() {
fillHeaders();
fillData();
fillTotales();
freezeCells();
setStyles();
addBorders();
try (OutputStream fileOut = Files.newOutputStream(this.saveFile)) {
wb.write(fileOut);
return this.saveFile;
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
}

View File

@@ -5,11 +5,6 @@ import danielcortes.xyz.data.DAOManager;
import danielcortes.xyz.models.estado_resultado.EstadoResultado;
import danielcortes.xyz.models.tipo_egreso.TipoEgreso;
import danielcortes.xyz.utils.StringUtils;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.ss.util.CellRangeAddress;
import org.apache.poi.ss.util.PropertyTemplate;
import java.io.IOException;
import java.io.OutputStream;
import java.nio.file.Files;
@@ -18,448 +13,481 @@ import java.time.YearMonth;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.HashMap;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.BorderExtent;
import org.apache.poi.ss.usermodel.BorderStyle;
import org.apache.poi.ss.usermodel.CellStyle;
import org.apache.poi.ss.usermodel.CreationHelper;
import org.apache.poi.ss.usermodel.FillPatternType;
import org.apache.poi.ss.usermodel.Font;
import org.apache.poi.ss.usermodel.IndexedColors;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.VerticalAlignment;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.ss.util.CellRangeAddress;
import org.apache.poi.ss.util.PropertyTemplate;
public class InformeEstadoResultado {
private ArrayList<Row> titles;
private ArrayList<Row> headers;
private ArrayList<Row> footers;
private ArrayList<Row> ventaRows;
private ArrayList<Row> gastosOperacionalesRows;
private ArrayList<Row> serviciosRows;
private ArrayList<Row> gastosGeneralesRows;
private ArrayList<Row> resumenGeneralRows;
private YearMonth mes;
private Path saveFile;
private ArrayList<Row> titles;
private ArrayList<Row> headers;
private ArrayList<Row> footers;
private ArrayList<Row> ventaRows;
private ArrayList<Row> gastosOperacionalesRows;
private ArrayList<Row> serviciosRows;
private ArrayList<Row> gastosGeneralesRows;
private ArrayList<Row> resumenGeneralRows;
private EstadoResultado estadoResultado;
private YearMonth mes;
private Path saveFile;
private Workbook wb;
private Sheet sheet;
private CreationHelper createHelper;
private HashMap<String, CellStyle> styles;
private EstadoResultado estadoResultado;
public InformeEstadoResultado(YearMonth mes, Path saveFile) {
this.mes = mes;
this.saveFile = saveFile;
private Workbook wb;
private Sheet sheet;
private CreationHelper createHelper;
private HashMap<String, CellStyle> styles;
this.estadoResultado = DAOManager.getEstadoResultadoDAO().findByMonth(this.mes);
public InformeEstadoResultado(YearMonth mes, Path saveFile) {
this.mes = mes;
this.saveFile = saveFile;
this.wb = new HSSFWorkbook();
this.sheet = wb.createSheet();
this.createHelper = wb.getCreationHelper();
this.estadoResultado = DAOManager.getEstadoResultadoDAO().findByMonth(this.mes);
this.titles = new ArrayList<>();
this.headers = new ArrayList<>();
this.footers = new ArrayList<>();
this.ventaRows = new ArrayList<>();
this.gastosOperacionalesRows = new ArrayList<>();
this.serviciosRows = new ArrayList<>();
this.gastosGeneralesRows = new ArrayList<>();
this.resumenGeneralRows = new ArrayList<>();
this.wb = new HSSFWorkbook();
this.sheet = wb.createSheet();
this.createHelper = wb.getCreationHelper();
this.styles = this.generateStyles();
this.titles = new ArrayList<>();
this.headers = new ArrayList<>();
this.footers = new ArrayList<>();
this.ventaRows = new ArrayList<>();
this.gastosOperacionalesRows = new ArrayList<>();
this.serviciosRows = new ArrayList<>();
this.gastosGeneralesRows = new ArrayList<>();
this.resumenGeneralRows = new ArrayList<>();
this.styles = this.generateStyles();
}
private void fillTitle() {
int startRow = 0;
Row titleMes = this.sheet.createRow(startRow++);
Row titleLocal = this.sheet.createRow(startRow++);
this.titles.add(titleMes);
this.titles.add(titleLocal);
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("MMMM yyyy");
String formatedMes = this.mes.format(formatter);
titleMes.createCell(0).setCellValue("Estado Resultado");
titleMes.createCell(1).setCellValue(StringUtils.capitalize(formatedMes));
titleLocal.createCell(0).setCellValue("Local");
titleLocal.createCell(1).setCellValue(StringUtils.capitalize(Configuration.get("nombre_caja")));
}
private void fillVentaData() {
int startId = 2;
Row header = this.sheet.createRow(startId++);
Row bruto = sheet.createRow(startId++);
Row neto = sheet.createRow(startId++);
Row iva = sheet.createRow(startId++);
Row exentas = sheet.createRow(startId++);
Row footer = sheet.createRow(startId++);
this.headers.add(header);
this.ventaRows.add(bruto);
this.ventaRows.add(neto);
this.ventaRows.add(iva);
this.ventaRows.add(exentas);
this.footers.add(footer);
header.createCell(0).setCellValue("Venta");
header.createCell(1);
bruto.createCell(0).setCellValue("Bruto");
bruto.createCell(1).setCellValue(DAOManager.getIngresoDAO().getTotalIngresoMes(this.mes));
neto.createCell(0).setCellValue("Neto");
neto.createCell(1).setCellFormula("B4/1.19");
iva.createCell(0).setCellValue("IVA");
iva.createCell(1).setCellFormula("B4-B5");
exentas.createCell(0).setCellValue("Exentas");
exentas.createCell(1).setCellValue(DAOManager.getIngresoDAO().getTotalExentasMes(this.mes));
footer.createCell(0).setCellValue("Neto mas Exentas");
footer.createCell(1).setCellFormula("B7+B5");
}
private void fillGastosOperacionalesData() {
int startId = 9;
Row header = sheet.createRow(startId++);
Row costoVenta = sheet.createRow(startId++);
Row porcentajeCostoVenta = sheet.createRow(startId++);
Row remuneraciones = sheet.createRow(startId++);
Row finiquitos = sheet.createRow(startId++);
Row aguinaldo = sheet.createRow(startId++);
Row partime = sheet.createRow(startId++);
Row bonosPersonal = sheet.createRow(startId++);
Row honorariosContador = sheet.createRow(startId++);
Row arriendo = sheet.createRow(startId++);
Row footer = sheet.createRow(startId++);
this.headers.add(header);
this.gastosOperacionalesRows.add(costoVenta);
this.gastosOperacionalesRows.add(porcentajeCostoVenta);
this.gastosOperacionalesRows.add(remuneraciones);
this.gastosOperacionalesRows.add(finiquitos);
this.gastosOperacionalesRows.add(aguinaldo);
this.gastosOperacionalesRows.add(partime);
this.gastosOperacionalesRows.add(bonosPersonal);
this.gastosOperacionalesRows.add(honorariosContador);
this.gastosOperacionalesRows.add(arriendo);
this.footers.add(footer);
header.createCell(0).setCellValue("Gastos Operacionales");
header.createCell(1);
costoVenta.createCell(0).setCellValue("Costo de Venta");
costoVenta.createCell(1).setCellValue(this.estadoResultado.getCostoVenta());
porcentajeCostoVenta.createCell(0).setCellValue("Porcentaje Costo de Venta");
porcentajeCostoVenta.createCell(1).setCellFormula("B11/B4");
remuneraciones.createCell(0).setCellValue("Remuneraciones");
remuneraciones.createCell(1).setCellValue(this.estadoResultado.getRemuneraciones());
finiquitos.createCell(0).setCellValue("Finiquitos");
finiquitos.createCell(1).setCellValue(this.estadoResultado.getFiniquitos());
aguinaldo.createCell(0).setCellValue("Aguinaldo");
aguinaldo.createCell(1).setCellValue(this.estadoResultado.getAguinaldo());
partime.createCell(0).setCellValue("Partime");
partime.createCell(1).setCellValue(DAOManager.getEgresoDAO().getTotalEgresoMesPorTipo(this.mes,
DAOManager.getTipoEgresoDAO().findByNombre("Pago Partime").get(0)));
bonosPersonal.createCell(0).setCellValue("Bonos Personal");
bonosPersonal.createCell(1).setCellValue(this.estadoResultado.getBonosPersonal());
honorariosContador.createCell(0).setCellValue("Honorarios Contador");
honorariosContador.createCell(1).setCellValue(this.estadoResultado.getHonorariosContador());
arriendo.createCell(0).setCellValue("Arriendo");
arriendo.createCell(1).setCellValue(this.estadoResultado.getArriendo());
footer.createCell(0).setCellValue("Total");
footer.createCell(1).setCellFormula("Sum(B11:B19)");
}
private void fillServiciosData() {
int startId = 21;
Row header = sheet.createRow(startId++);
Row agua = sheet.createRow(startId++);
Row luz = sheet.createRow(startId++);
Row gas = sheet.createRow(startId++);
Row telefono = sheet.createRow(startId++);
Row otro = sheet.createRow(startId++);
Row footer = sheet.createRow(startId++);
this.headers.add(header);
this.serviciosRows.add(agua);
this.serviciosRows.add(luz);
this.serviciosRows.add(gas);
this.serviciosRows.add(telefono);
this.serviciosRows.add(otro);
this.footers.add(footer);
header.createCell(0).setCellValue("Servicios");
header.createCell(1);
agua.createCell(0).setCellValue("Agua");
agua.createCell(1).setCellValue(this.estadoResultado.getAgua());
luz.createCell(0).setCellValue("Luz");
luz.createCell(1).setCellValue(this.estadoResultado.getLuz());
gas.createCell(0).setCellValue("Gas");
gas.createCell(1).setCellValue(this.estadoResultado.getGas());
telefono.createCell(0).setCellValue("Telefono");
telefono.createCell(1).setCellValue(this.estadoResultado.getTelefono());
otro.createCell(0).setCellValue("Otros");
otro.createCell(1).setCellValue(this.estadoResultado.getOtroServicio());
footer.createCell(0).setCellValue("Total");
footer.createCell(1).setCellFormula("Sum(B23:B27)");
}
private void fillGastosGeneralesData() {
TipoEgreso facturaGastosGenerales = DAOManager.getTipoEgresoDAO()
.findByNombre("Factura Gastos Generales").get(0);
TipoEgreso gastoGeneralConBoleta = DAOManager.getTipoEgresoDAO()
.findByNombre("Gasto General Con Boleta").get(0);
TipoEgreso gastoGeneralSinRespaldo = DAOManager.getTipoEgresoDAO()
.findByNombre("Gasto General Sin Respaldo").get(0);
int startId = 29;
Row header = sheet.createRow(startId++);
Row cuentaCorrienteFactura = sheet.createRow(startId++);
Row cuentaCorrienteBoleta = sheet.createRow(startId++);
Row cuentaCorrienteSinRespaldo = sheet.createRow(startId++);
Row efectivoFactura = sheet.createRow(startId++);
Row efectivoBoleta = sheet.createRow(startId++);
Row efectivoSinRespaldo = sheet.createRow(startId++);
Row footer = sheet.createRow(startId++);
this.headers.add(header);
this.gastosGeneralesRows.add(cuentaCorrienteFactura);
this.gastosGeneralesRows.add(cuentaCorrienteBoleta);
this.gastosGeneralesRows.add(cuentaCorrienteSinRespaldo);
this.gastosGeneralesRows.add(efectivoFactura);
this.gastosGeneralesRows.add(efectivoBoleta);
this.gastosGeneralesRows.add(efectivoSinRespaldo);
this.footers.add(footer);
header.createCell(0).setCellValue("Gastos Generales");
header.createCell(1);
cuentaCorrienteFactura.createCell(0).setCellValue("CTA CTE con Factura");
cuentaCorrienteFactura.createCell(1)
.setCellValue(this.estadoResultado.getCuentaCorrienteFactura());
cuentaCorrienteBoleta.createCell(0).setCellValue("CTA CTE con Boleta");
cuentaCorrienteBoleta.createCell(1)
.setCellValue(this.estadoResultado.getCuentaCorrienteBoleta());
cuentaCorrienteSinRespaldo.createCell(0).setCellValue("CTA CTE sin Respaldo");
cuentaCorrienteSinRespaldo.createCell(1)
.setCellValue(this.estadoResultado.getCuentaCorrienteSinRespaldo());
efectivoFactura.createCell(0).setCellValue("Efectivo con Factura");
efectivoFactura.createCell(1).setCellValue(
DAOManager.getEgresoDAO().getTotalEgresoMesPorTipo(this.mes, facturaGastosGenerales));
efectivoBoleta.createCell(0).setCellValue("Efectivo con Boleta");
efectivoBoleta.createCell(1).setCellValue(
DAOManager.getEgresoDAO().getTotalEgresoMesPorTipo(this.mes, gastoGeneralConBoleta));
efectivoSinRespaldo.createCell(0).setCellValue("Efectivo sin Respaldo");
efectivoSinRespaldo.createCell(1).setCellValue(
DAOManager.getEgresoDAO().getTotalEgresoMesPorTipo(this.mes, gastoGeneralSinRespaldo));
footer.createCell(0).setCellValue("Total");
footer.createCell(1).setCellFormula("Sum(B31:B36)");
}
private void fillResumenGeneralData() {
int startId = 38;
Row header = sheet.createRow(startId++);
Row utilidad = sheet.createRow(startId++);
Row porcentajePPM = sheet.createRow(startId++);
Row ppmMes = sheet.createRow(startId++);
Row ivaMes = sheet.createRow(startId++);
Row ivaMesPpm = sheet.createRow(startId++);
Row ivaFavor = sheet.createRow(startId++);
Row aPagar = sheet.createRow(startId++);
Row footer = sheet.createRow(startId++);
this.headers.add(header);
this.resumenGeneralRows.add(utilidad);
this.resumenGeneralRows.add(porcentajePPM);
this.resumenGeneralRows.add(ppmMes);
this.resumenGeneralRows.add(ivaMes);
this.resumenGeneralRows.add(ivaMesPpm);
this.resumenGeneralRows.add(ivaFavor);
this.resumenGeneralRows.add(aPagar);
this.footers.add(footer);
header.createCell(0).setCellValue("Resumen General");
header.createCell(1);
utilidad.createCell(0).setCellValue("Utilidad");
utilidad.createCell(1).setCellFormula("B4 - B20 - B28 - B37");
porcentajePPM.createCell(0).setCellValue("Porcentaje PPM");
porcentajePPM.createCell(1).setCellValue(this.estadoResultado.getPpm() / 100);
ppmMes.createCell(0).setCellValue("PPM Mes");
ppmMes.createCell(1).setCellFormula("B8 * B41");
ivaMes.createCell(0).setCellValue("+ IVA Mes");
ivaMes.createCell(1).setCellFormula("B6");
ivaMesPpm.createCell(0).setCellValue("Total PPM + IVA");
ivaMesPpm.createCell(1).setCellFormula("B42 + B43");
ivaFavor.createCell(0).setCellValue("- IVA a Favor");
ivaFavor.createCell(1).setCellValue(this.estadoResultado.getIvaFavor());
aPagar.createCell(0).setCellValue("A Pagar PPM + IVA");
aPagar.createCell(1).setCellFormula("B44 - B45");
footer.createCell(0).setCellValue("Resultado");
footer.createCell(1).setCellFormula("B40 - B46");
}
private void setStyles() {
for (Row title : this.titles) {
title.getCell(0).setCellStyle(this.styles.get("title"));
title.getCell(1).setCellStyle(this.styles.get("title"));
title.setHeightInPoints(30);
}
private void fillTitle() {
int startRow = 0;
Row titleMes= this.sheet.createRow(startRow++);
Row titleLocal = this.sheet.createRow(startRow++);
this.titles.add(titleMes);
this.titles.add(titleLocal);
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("MMMM yyyy");
String formatedMes= this.mes.format(formatter);
titleMes.createCell(0).setCellValue("Estado Resultado");
titleMes.createCell(1).setCellValue(StringUtils.capitalize(formatedMes));
titleLocal.createCell(0).setCellValue("Local");
titleLocal.createCell(1).setCellValue(StringUtils.capitalize(Configuration.get("nombre_caja")));
for (Row header : this.headers) {
header.getCell(0).setCellStyle(this.styles.get("header"));
header.getCell(1).setCellStyle(this.styles.get("header"));
header.setHeightInPoints(20);
}
private void fillVentaData() {
int startId = 2;
Row header = this.sheet.createRow(startId++);
Row bruto = sheet.createRow(startId++);
Row neto = sheet.createRow(startId++);
Row iva = sheet.createRow(startId++);
Row exentas = sheet.createRow(startId++);
Row footer = sheet.createRow(startId++);
this.headers.add(header);
this.ventaRows.add(bruto);
this.ventaRows.add(neto);
this.ventaRows.add(iva);
this.ventaRows.add(exentas);
this.footers.add(footer);
header.createCell(0).setCellValue("Venta");
header.createCell(1);
bruto.createCell(0).setCellValue("Bruto");
bruto.createCell(1).setCellValue(DAOManager.getIngresoDAO().getTotalIngresoMes(this.mes));
neto.createCell(0).setCellValue("Neto");
neto.createCell(1).setCellFormula("B4/1.19");
iva.createCell(0).setCellValue("IVA");
iva.createCell(1).setCellFormula("B4-B5");
exentas.createCell(0).setCellValue("Exentas");
exentas.createCell(1).setCellValue(DAOManager.getIngresoDAO().getTotalExentasMes(this.mes));
footer.createCell(0).setCellValue("Neto mas Exentas");
footer.createCell(1).setCellFormula("B7+B5");
for (Row footer : this.footers) {
footer.getCell(0).setCellStyle(this.styles.get("footer"));
footer.getCell(1).setCellStyle(this.styles.get("footer_money"));
footer.setHeightInPoints(20);
}
private void fillGastosOperacionalesData() {
int startId = 9;
Row header = sheet.createRow(startId++);
Row costoVenta = sheet.createRow(startId++);
Row porcentajeCostoVenta = sheet.createRow(startId++);
Row remuneraciones = sheet.createRow(startId++);
Row finiquitos = sheet.createRow(startId++);
Row aguinaldo = sheet.createRow(startId++);
Row partime = sheet.createRow(startId++);
Row bonosPersonal = sheet.createRow(startId++);
Row honorariosContador = sheet.createRow(startId++);
Row arriendo = sheet.createRow(startId++);
Row footer = sheet.createRow(startId++);
this.headers.add(header);
this.gastosOperacionalesRows.add(costoVenta);
this.gastosOperacionalesRows.add(porcentajeCostoVenta);
this.gastosOperacionalesRows.add(remuneraciones);
this.gastosOperacionalesRows.add(finiquitos);
this.gastosOperacionalesRows.add(aguinaldo);
this.gastosOperacionalesRows.add(partime);
this.gastosOperacionalesRows.add(bonosPersonal);
this.gastosOperacionalesRows.add(honorariosContador);
this.gastosOperacionalesRows.add(arriendo);
this.footers.add(footer);
header.createCell(0).setCellValue("Gastos Operacionales");
header.createCell(1);
costoVenta.createCell(0).setCellValue("Costo de Venta");
costoVenta.createCell(1).setCellValue(this.estadoResultado.getCostoVenta());
porcentajeCostoVenta.createCell(0).setCellValue("Porcentaje Costo de Venta");
porcentajeCostoVenta.createCell(1).setCellFormula("B11/B4");
remuneraciones.createCell(0).setCellValue("Remuneraciones");
remuneraciones.createCell(1).setCellValue(this.estadoResultado.getRemuneraciones());
finiquitos.createCell(0).setCellValue("Finiquitos");
finiquitos.createCell(1).setCellValue(this.estadoResultado.getFiniquitos());
aguinaldo.createCell(0).setCellValue("Aguinaldo");
aguinaldo.createCell(1).setCellValue(this.estadoResultado.getAguinaldo());
partime.createCell(0).setCellValue("Partime");
partime.createCell(1).setCellValue(DAOManager.getEgresoDAO().getTotalEgresoMesPorTipo(this.mes, DAOManager.getTipoEgresoDAO().findByNombre("Pago Partime").get(0)));
bonosPersonal.createCell(0).setCellValue("Bonos Personal");
bonosPersonal.createCell(1).setCellValue(this.estadoResultado.getBonosPersonal());
honorariosContador.createCell(0).setCellValue("Honorarios Contador");
honorariosContador.createCell(1).setCellValue(this.estadoResultado.getHonorariosContador());
arriendo.createCell(0).setCellValue("Arriendo");
arriendo.createCell(1).setCellValue(this.estadoResultado.getArriendo());
footer.createCell(0).setCellValue("Total");
footer.createCell(1).setCellFormula("Sum(B11:B19)");
for (Row row : this.ventaRows) {
row.getCell(0).setCellStyle(this.styles.get("regular"));
row.getCell(1).setCellStyle(this.styles.get("money"));
row.setHeightInPoints(15);
}
for (Row row : this.gastosOperacionalesRows) {
row.getCell(0).setCellStyle(this.styles.get("regular"));
row.getCell(1).setCellStyle(this.styles.get("money"));
row.setHeightInPoints(15);
}
for (Row row : this.serviciosRows) {
row.getCell(0).setCellStyle(this.styles.get("regular"));
row.getCell(1).setCellStyle(this.styles.get("money"));
row.setHeightInPoints(15);
}
for (Row row : this.gastosGeneralesRows) {
row.getCell(0).setCellStyle(this.styles.get("regular"));
row.getCell(1).setCellStyle(this.styles.get("money"));
row.setHeightInPoints(15);
}
for (Row row : this.resumenGeneralRows) {
row.getCell(0).setCellStyle(this.styles.get("regular"));
row.getCell(1).setCellStyle(this.styles.get("money"));
row.setHeightInPoints(15);
}
private void fillServiciosData() {
int startId = 21;
Row header = sheet.createRow(startId++);
Row agua = sheet.createRow(startId++);
Row luz = sheet.createRow(startId++);
Row gas = sheet.createRow(startId++);
Row telefono = sheet.createRow(startId++);
Row otro = sheet.createRow(startId++);
Row footer = sheet.createRow(startId++);
//La fila de porcentaje costo de venta tiene que tener formato de porcentaje
this.gastosOperacionalesRows.get(1).getCell(1).setCellStyle(this.styles.get("percent"));
this.headers.add(header);
this.serviciosRows.add(agua);
this.serviciosRows.add(luz);
this.serviciosRows.add(gas);
this.serviciosRows.add(telefono);
this.serviciosRows.add(otro);
this.footers.add(footer);
//La fila de ppm mes en el resumen general tiene un campo distinto que contiene un porcentaje
resumenGeneralRows.get(1).getCell(1).setCellStyle(this.styles.get("percent"));
header.createCell(0).setCellValue("Servicios");
header.createCell(1);
agua.createCell(0).setCellValue("Agua");
agua.createCell(1).setCellValue(this.estadoResultado.getAgua());
luz.createCell(0).setCellValue("Luz");
luz.createCell(1).setCellValue(this.estadoResultado.getLuz());
gas.createCell(0).setCellValue("Gas");
gas.createCell(1).setCellValue(this.estadoResultado.getGas());
telefono.createCell(0).setCellValue("Telefono");
telefono.createCell(1).setCellValue(this.estadoResultado.getTelefono());
otro.createCell(0).setCellValue("Otros");
otro.createCell(1).setCellValue(this.estadoResultado.getOtroServicio());
footer.createCell(0).setCellValue("Total");
footer.createCell(1).setCellFormula("Sum(B23:B27)");
sheet.autoSizeColumn(0);
sheet.autoSizeColumn(1);
sheet.autoSizeColumn(2);
}
private void addBorders() {
PropertyTemplate pt = new PropertyTemplate();
for (Row header : headers) {
int rowNum = header.getRowNum();
CellRangeAddress range = new CellRangeAddress(rowNum, rowNum, 0, 1);
pt.drawBorders(range, BorderStyle.THIN, BorderExtent.OUTSIDE);
}
private void fillGastosGeneralesData() {
TipoEgreso facturaGastosGenerales = DAOManager.getTipoEgresoDAO().findByNombre("Factura Gastos Generales").get(0);
TipoEgreso gastoGeneralConBoleta = DAOManager.getTipoEgresoDAO().findByNombre("Gasto General Con Boleta").get(0);
TipoEgreso gastoGeneralSinRespaldo = DAOManager.getTipoEgresoDAO().findByNombre("Gasto General Sin Respaldo").get(0);
int startId = 29;
Row header = sheet.createRow(startId++);
Row cuentaCorrienteFactura = sheet.createRow(startId++);
Row cuentaCorrienteBoleta = sheet.createRow(startId++);
Row cuentaCorrienteSinRespaldo = sheet.createRow(startId++);
Row efectivoFactura = sheet.createRow(startId++);
Row efectivoBoleta = sheet.createRow(startId++);
Row efectivoSinRespaldo = sheet.createRow(startId++);
Row footer = sheet.createRow(startId++);
this.headers.add(header);
this.gastosGeneralesRows.add(cuentaCorrienteFactura);
this.gastosGeneralesRows.add(cuentaCorrienteBoleta);
this.gastosGeneralesRows.add(cuentaCorrienteSinRespaldo);
this.gastosGeneralesRows.add(efectivoFactura);
this.gastosGeneralesRows.add(efectivoBoleta);
this.gastosGeneralesRows.add(efectivoSinRespaldo);
this.footers.add(footer);
header.createCell(0).setCellValue("Gastos Generales");
header.createCell(1);
cuentaCorrienteFactura.createCell(0).setCellValue("CTA CTE con Factura");
cuentaCorrienteFactura.createCell(1).setCellValue(this.estadoResultado.getCuentaCorrienteFactura());
cuentaCorrienteBoleta.createCell(0).setCellValue("CTA CTE con Boleta");
cuentaCorrienteBoleta.createCell(1).setCellValue(this.estadoResultado.getCuentaCorrienteBoleta());
cuentaCorrienteSinRespaldo.createCell(0).setCellValue("CTA CTE sin Respaldo");
cuentaCorrienteSinRespaldo.createCell(1).setCellValue(this.estadoResultado.getCuentaCorrienteSinRespaldo());
efectivoFactura.createCell(0).setCellValue("Efectivo con Factura");
efectivoFactura.createCell(1).setCellValue(DAOManager.getEgresoDAO().getTotalEgresoMesPorTipo(this.mes, facturaGastosGenerales));
efectivoBoleta.createCell(0).setCellValue("Efectivo con Boleta");
efectivoBoleta.createCell(1).setCellValue(DAOManager.getEgresoDAO().getTotalEgresoMesPorTipo(this.mes, gastoGeneralConBoleta));
efectivoSinRespaldo.createCell(0).setCellValue("Efectivo sin Respaldo");
efectivoSinRespaldo.createCell(1).setCellValue(DAOManager.getEgresoDAO().getTotalEgresoMesPorTipo(this.mes, gastoGeneralSinRespaldo));
footer.createCell(0).setCellValue("Total");
footer.createCell(1).setCellFormula("Sum(B31:B36)");
for (Row footer : footers) {
int rowNum = footer.getRowNum();
CellRangeAddress range = new CellRangeAddress(rowNum, rowNum, 0, 1);
pt.drawBorders(range, BorderStyle.THIN, BorderExtent.OUTSIDE);
}
private void fillResumenGeneralData() {
int startId = 38;
int ventaStart = ventaRows.get(0).getRowNum();
int ventaEnd = ventaRows.get(ventaRows.size() - 1).getRowNum();
pt.drawBorders(new CellRangeAddress(ventaStart, ventaEnd, 0, 1), BorderStyle.THIN,
BorderExtent.VERTICAL);
Row header = sheet.createRow(startId++);
Row utilidad = sheet.createRow(startId++);
Row porcentajePPM = sheet.createRow(startId++);
Row ppmMes = sheet.createRow(startId++);
Row ivaMes = sheet.createRow(startId++);
Row ivaMesPpm = sheet.createRow(startId++);
Row ivaFavor = sheet.createRow(startId++);
Row aPagar = sheet.createRow(startId++);
Row footer = sheet.createRow(startId++);
int gastosOperacionalesStart = gastosOperacionalesRows.get(0).getRowNum();
int gastosOperacionalesEnd = gastosOperacionalesRows.get(gastosOperacionalesRows.size() - 1)
.getRowNum();
pt.drawBorders(new CellRangeAddress(gastosOperacionalesStart, gastosOperacionalesEnd, 0, 1),
BorderStyle.THIN, BorderExtent.VERTICAL);
this.headers.add(header);
this.resumenGeneralRows.add(utilidad);
this.resumenGeneralRows.add(porcentajePPM);
this.resumenGeneralRows.add(ppmMes);
this.resumenGeneralRows.add(ivaMes);
this.resumenGeneralRows.add(ivaMesPpm);
this.resumenGeneralRows.add(ivaFavor);
this.resumenGeneralRows.add(aPagar);
this.footers.add(footer);
int serviciosStart = serviciosRows.get(0).getRowNum();
int serviciosEnd = serviciosRows.get(serviciosRows.size() - 1).getRowNum();
pt.drawBorders(new CellRangeAddress(serviciosStart, serviciosEnd, 0, 1), BorderStyle.THIN,
BorderExtent.VERTICAL);
header.createCell(0).setCellValue("Resumen General");
header.createCell(1);
int gastosGeneralesStart = gastosGeneralesRows.get(0).getRowNum();
int gastosGeneralesEnd = gastosGeneralesRows.get(gastosGeneralesRows.size() - 1).getRowNum();
pt.drawBorders(new CellRangeAddress(gastosGeneralesStart, gastosGeneralesEnd, 0, 1),
BorderStyle.THIN, BorderExtent.VERTICAL);
utilidad.createCell(0).setCellValue("Utilidad");
utilidad.createCell(1).setCellFormula("B4 - B20 - B28 - B37");
int resumenStart = resumenGeneralRows.get(0).getRowNum();
int resumenEnd = resumenGeneralRows.get(resumenGeneralRows.size() - 1).getRowNum();
pt.drawBorders(new CellRangeAddress(resumenStart, resumenEnd, 0, 1), BorderStyle.THIN,
BorderExtent.VERTICAL);
porcentajePPM.createCell(0).setCellValue("Porcentaje PPM");
porcentajePPM.createCell(1).setCellValue(this.estadoResultado.getPpm() / 100);
pt.applyBorders(this.sheet);
}
ppmMes.createCell(0).setCellValue("PPM Mes");
ppmMes.createCell(1).setCellFormula("B8 * B41");
public void generarInforme() {
fillTitle();
fillVentaData();
fillGastosOperacionalesData();
fillServiciosData();
fillGastosGeneralesData();
fillResumenGeneralData();
setStyles();
addBorders();
ivaMes.createCell(0).setCellValue("+ IVA Mes");
ivaMes.createCell(1).setCellFormula("B6");
ivaMesPpm.createCell(0).setCellValue("Total PPM + IVA");
ivaMesPpm.createCell(1).setCellFormula("B42 + B43");
ivaFavor.createCell(0).setCellValue("- IVA a Favor");
ivaFavor.createCell(1).setCellValue(this.estadoResultado.getIvaFavor());
aPagar.createCell(0).setCellValue("A Pagar PPM + IVA");
aPagar.createCell(1).setCellFormula("B44 - B45");
footer.createCell(0).setCellValue("Resultado");
footer.createCell(1).setCellFormula("B40 - B46");
try (OutputStream fileOut = Files.newOutputStream(this.saveFile)) {
wb.write(fileOut);
} catch (IOException e) {
e.printStackTrace();
}
}
private void setStyles() {
for(Row title: this.titles){
title.getCell(0).setCellStyle(this.styles.get("title"));
title.getCell(1).setCellStyle(this.styles.get("title"));
title.setHeightInPoints(30);
}
private HashMap<String, CellStyle> generateStyles() {
Font font = this.wb.createFont();
font.setBold(true);
font.setColor(IndexedColors.WHITE.getIndex());
for (Row header : this.headers) {
header.getCell(0).setCellStyle(this.styles.get("header"));
header.getCell(1).setCellStyle(this.styles.get("header"));
header.setHeightInPoints(20);
}
Font titleFont = this.wb.createFont();
titleFont.setBold(true);
titleFont.setFontHeightInPoints((short) 15);
for (Row footer : this.footers) {
footer.getCell(0).setCellStyle(this.styles.get("footer"));
footer.getCell(1).setCellStyle(this.styles.get("footer_money"));
footer.setHeightInPoints(20);
}
CellStyle regularStyle = this.wb.createCellStyle();
for (Row row : this.ventaRows) {
row.getCell(0).setCellStyle(this.styles.get("regular"));
row.getCell(1).setCellStyle(this.styles.get("money"));
row.setHeightInPoints(15);
}
for (Row row : this.gastosOperacionalesRows) {
row.getCell(0).setCellStyle(this.styles.get("regular"));
row.getCell(1).setCellStyle(this.styles.get("money"));
row.setHeightInPoints(15);
}
for (Row row : this.serviciosRows) {
row.getCell(0).setCellStyle(this.styles.get("regular"));
row.getCell(1).setCellStyle(this.styles.get("money"));
row.setHeightInPoints(15);
}
for (Row row : this.gastosGeneralesRows) {
row.getCell(0).setCellStyle(this.styles.get("regular"));
row.getCell(1).setCellStyle(this.styles.get("money"));
row.setHeightInPoints(15);
}
for (Row row : this.resumenGeneralRows) {
row.getCell(0).setCellStyle(this.styles.get("regular"));
row.getCell(1).setCellStyle(this.styles.get("money"));
row.setHeightInPoints(15);
}
CellStyle grayStyle = this.wb.createCellStyle();
grayStyle.setFont(font);
grayStyle.setFillForegroundColor(IndexedColors.GREY_50_PERCENT.getIndex());
grayStyle.setFillPattern(FillPatternType.SOLID_FOREGROUND);
//La fila de porcentaje costo de venta tiene que tener formato de porcentaje
this.gastosOperacionalesRows.get(1).getCell(1).setCellStyle(this.styles.get("percent"));
CellStyle moneyStyle = this.wb.createCellStyle();
moneyStyle
.setDataFormat(this.createHelper.createDataFormat().getFormat("\"$\"#,##0_);(\"$\"#,##0)"));
//La fila de ppm mes en el resumen general tiene un campo distinto que contiene un porcentaje
resumenGeneralRows.get(1).getCell(1).setCellStyle(this.styles.get("percent"));
CellStyle percentStyle = this.wb.createCellStyle();
percentStyle.setDataFormat(this.createHelper.createDataFormat().getFormat("0.00%"));
sheet.autoSizeColumn(0);
sheet.autoSizeColumn(1);
sheet.autoSizeColumn(2);
}
CellStyle titleStyle = this.wb.createCellStyle();
titleStyle.setFont(titleFont);
private void addBorders() {
PropertyTemplate pt = new PropertyTemplate();
for (Row header : headers) {
int rowNum = header.getRowNum();
CellRangeAddress range = new CellRangeAddress(rowNum, rowNum, 0, 1);
pt.drawBorders(range, BorderStyle.THIN, BorderExtent.OUTSIDE);
}
CellStyle headerStyle = this.wb.createCellStyle();
headerStyle.cloneStyleFrom(grayStyle);
headerStyle.setVerticalAlignment(VerticalAlignment.CENTER);
for (Row footer : footers) {
int rowNum = footer.getRowNum();
CellRangeAddress range = new CellRangeAddress(rowNum, rowNum, 0, 1);
pt.drawBorders(range, BorderStyle.THIN, BorderExtent.OUTSIDE);
}
CellStyle footerStyle = this.wb.createCellStyle();
footerStyle.cloneStyleFrom(grayStyle);
footerStyle.setVerticalAlignment(VerticalAlignment.CENTER);
int ventaStart = ventaRows.get(0).getRowNum();
int ventaEnd = ventaRows.get(ventaRows.size() - 1).getRowNum();
pt.drawBorders(new CellRangeAddress(ventaStart, ventaEnd, 0, 1), BorderStyle.THIN, BorderExtent.VERTICAL);
CellStyle footerMoneyStyle = this.wb.createCellStyle();
footerMoneyStyle.cloneStyleFrom(footerStyle);
footerMoneyStyle
.setDataFormat(this.createHelper.createDataFormat().getFormat("\"$\"#,##0_);(\"$\"#,##0)"));
int gastosOperacionalesStart = gastosOperacionalesRows.get(0).getRowNum();
int gastosOperacionalesEnd = gastosOperacionalesRows.get(gastosOperacionalesRows.size() - 1).getRowNum();
pt.drawBorders(new CellRangeAddress(gastosOperacionalesStart, gastosOperacionalesEnd, 0, 1), BorderStyle.THIN, BorderExtent.VERTICAL);
HashMap<String, CellStyle> styles = new HashMap<>();
styles.put("regular", regularStyle);
styles.put("title", titleStyle);
styles.put("money", moneyStyle);
styles.put("percent", percentStyle);
styles.put("header", headerStyle);
styles.put("footer", footerStyle);
styles.put("footer_money", footerMoneyStyle);
int serviciosStart = serviciosRows.get(0).getRowNum();
int serviciosEnd = serviciosRows.get(serviciosRows.size() - 1).getRowNum();
pt.drawBorders(new CellRangeAddress(serviciosStart, serviciosEnd, 0, 1), BorderStyle.THIN, BorderExtent.VERTICAL);
int gastosGeneralesStart = gastosGeneralesRows.get(0).getRowNum();
int gastosGeneralesEnd = gastosGeneralesRows.get(gastosGeneralesRows.size() - 1).getRowNum();
pt.drawBorders(new CellRangeAddress(gastosGeneralesStart, gastosGeneralesEnd, 0, 1), BorderStyle.THIN, BorderExtent.VERTICAL);
int resumenStart = resumenGeneralRows.get(0).getRowNum();
int resumenEnd = resumenGeneralRows.get(resumenGeneralRows.size() - 1).getRowNum();
pt.drawBorders(new CellRangeAddress(resumenStart, resumenEnd, 0, 1), BorderStyle.THIN, BorderExtent.VERTICAL);
pt.applyBorders(this.sheet);
}
public void generarInforme() {
fillTitle();
fillVentaData();
fillGastosOperacionalesData();
fillServiciosData();
fillGastosGeneralesData();
fillResumenGeneralData();
setStyles();
addBorders();
try (OutputStream fileOut = Files.newOutputStream(this.saveFile)) {
wb.write(fileOut);
} catch (IOException e) {
e.printStackTrace();
}
}
private HashMap<String, CellStyle> generateStyles() {
Font font = this.wb.createFont();
font.setBold(true);
font.setColor(IndexedColors.WHITE.getIndex());
Font titleFont = this.wb.createFont();
titleFont.setBold(true);
titleFont.setFontHeightInPoints((short)15);
CellStyle regularStyle = this.wb.createCellStyle();
CellStyle grayStyle = this.wb.createCellStyle();
grayStyle.setFont(font);
grayStyle.setFillForegroundColor(IndexedColors.GREY_50_PERCENT.getIndex());
grayStyle.setFillPattern(FillPatternType.SOLID_FOREGROUND);
CellStyle moneyStyle = this.wb.createCellStyle();
moneyStyle.setDataFormat(this.createHelper.createDataFormat().getFormat("\"$\"#,##0_);(\"$\"#,##0)"));
CellStyle percentStyle = this.wb.createCellStyle();
percentStyle.setDataFormat(this.createHelper.createDataFormat().getFormat("0.00%"));
CellStyle titleStyle = this.wb.createCellStyle();
titleStyle.setFont(titleFont);
CellStyle headerStyle = this.wb.createCellStyle();
headerStyle.cloneStyleFrom(grayStyle);
headerStyle.setVerticalAlignment(VerticalAlignment.CENTER);
CellStyle footerStyle = this.wb.createCellStyle();
footerStyle.cloneStyleFrom(grayStyle);
footerStyle.setVerticalAlignment(VerticalAlignment.CENTER);
CellStyle footerMoneyStyle = this.wb.createCellStyle();
footerMoneyStyle.cloneStyleFrom(footerStyle);
footerMoneyStyle.setDataFormat(this.createHelper.createDataFormat().getFormat("\"$\"#,##0_);(\"$\"#,##0)"));
HashMap<String, CellStyle> styles = new HashMap<>();
styles.put("regular", regularStyle);
styles.put("title", titleStyle);
styles.put("money", moneyStyle);
styles.put("percent", percentStyle);
styles.put("header", headerStyle);
styles.put("footer", footerStyle);
styles.put("footer_money", footerMoneyStyle);
return styles;
}
return styles;
}
}

View File

@@ -27,339 +27,370 @@ package danielcortes.xyz.informes;
import danielcortes.xyz.data.DAOManager;
import danielcortes.xyz.models.caja.SQLiteCajaDAO;
import danielcortes.xyz.models.informes.libro_de_ventas.InformeLibroDeVentasContent;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.ss.util.CellRangeAddress;
import org.apache.poi.ss.util.PropertyTemplate;
import java.io.IOException;
import java.io.OutputStream;
import java.nio.file.Files;
import java.nio.file.Path;
import java.time.YearMonth;
import java.time.ZoneId;
import java.util.*;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.Date;
import java.util.HashMap;
import java.util.Iterator;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.BorderExtent;
import org.apache.poi.ss.usermodel.BorderStyle;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.CellStyle;
import org.apache.poi.ss.usermodel.CreationHelper;
import org.apache.poi.ss.usermodel.FillPatternType;
import org.apache.poi.ss.usermodel.Font;
import org.apache.poi.ss.usermodel.HorizontalAlignment;
import org.apache.poi.ss.usermodel.IndexedColors;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.VerticalAlignment;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.ss.util.CellRangeAddress;
import org.apache.poi.ss.util.PropertyTemplate;
public class InformeLibroDeVentas {
private final String[] titles = {
"", "",
"BOLETA MANUAL", "", "",
"BOLETA FISCAL", "", "", "", "",
"BOLETAS EXENTAS", "", "",
"SUB",
"FACTURA", "", "",
"GUIAS", "", "",
"ESTADISTICAS"
};
private final String[] subtitles = {
"DIA", "FECHA",
"INICIAL", "FINAL", "VALOR",
"Z DEL", "Z AL", "INCIAL", "FINAL", "VALOR",
"INICIAL", "FINAL", "VALOR",
"TOTAL",
"INICIAL", "FINAL", "VALOR",
"INICIAL", "FINAL", "VALOR",
"TOTAL", "ACUMULADO", ""
};
private final String[] titles = {
"", "",
"BOLETA MANUAL", "", "",
"BOLETA FISCAL", "", "", "", "",
"BOLETAS EXENTAS", "", "",
"SUB",
"FACTURA", "", "",
"GUIAS", "", "",
"ESTADISTICAS"
};
private final String[] dias = {"Domingo", "Lunes", "Martes", "Miercoles", "Jueves", "Viernes", "Sabado"};
private final String[] subtitles = {
"DIA", "FECHA",
"INICIAL", "FINAL", "VALOR",
"Z DEL", "Z AL", "INCIAL", "FINAL", "VALOR",
"INICIAL", "FINAL", "VALOR",
"TOTAL",
"INICIAL", "FINAL", "VALOR",
"INICIAL", "FINAL", "VALOR",
"TOTAL", "ACUMULADO", ""
};
private ArrayList<InformeLibroDeVentasContent> informe;
private Path saveFile;
private final String[] dias = {"Domingo", "Lunes", "Martes", "Miercoles", "Jueves", "Viernes",
"Sabado"};
private ArrayList<Row> dataRows;
private Row footerRow;
private ArrayList<Row> headerRows;
private ArrayList<InformeLibroDeVentasContent> informe;
private Path saveFile;
private Workbook wb;
private Sheet sheet;
private CreationHelper createHelper;
private HashMap<String, CellStyle> styles;
private ArrayList<Row> dataRows;
private Row footerRow;
private ArrayList<Row> headerRows;
public InformeLibroDeVentas(YearMonth mes, Path saveFile) {
new SQLiteCajaDAO().createCajasForMonth(mes);
private Workbook wb;
private Sheet sheet;
private CreationHelper createHelper;
private HashMap<String, CellStyle> styles;
this.informe = new ArrayList<>(DAOManager.getLibroDeVentasContentDAO().getInformeMensual(mes));
this.saveFile = saveFile;
public InformeLibroDeVentas(YearMonth mes, Path saveFile) {
new SQLiteCajaDAO().createCajasForMonth(mes);
this.dataRows = new ArrayList<>();
this.headerRows = new ArrayList<>();
this.informe = new ArrayList<>(DAOManager.getLibroDeVentasContentDAO().getInformeMensual(mes));
this.saveFile = saveFile;
this.wb = new HSSFWorkbook();
this.sheet = wb.createSheet();
this.createHelper = wb.getCreationHelper();
this.dataRows = new ArrayList<>();
this.headerRows = new ArrayList<>();
this.styles = this.generateStyles();
this.wb = new HSSFWorkbook();
this.sheet = wb.createSheet();
this.createHelper = wb.getCreationHelper();
this.styles = this.generateStyles();
}
private void sortInforme() {
this.informe.sort(Comparator.comparing(InformeLibroDeVentasContent::getFecha));
}
private void fillHeaders() {
Row titles = sheet.createRow(0);
Row subtitles = sheet.createRow(1);
headerRows.add(titles);
headerRows.add(subtitles);
for (int x = 0; x < this.titles.length; x++) {
titles.createCell(x).setCellValue(this.titles[x]);
}
private void sortInforme() {
this.informe.sort(Comparator.comparing(InformeLibroDeVentasContent::getFecha));
for (int x = 0; x < this.subtitles.length; x++) {
subtitles.createCell(x).setCellValue(this.subtitles[x]);
}
}
private void fillData() {
int rowCounter = 2;
for (InformeLibroDeVentasContent data : this.informe) {
int cellCounter = 0;
Row dataRow = sheet.createRow(rowCounter);
dataRows.add(dataRow);
Date fecha = Date.from(data.getFecha().atStartOfDay(ZoneId.systemDefault()).toInstant());
dataRow.createCell(cellCounter++).setCellValue(this.dias[data.getDia()]);
dataRow.createCell(cellCounter++).setCellValue(fecha);
dataRow.createCell(cellCounter++)
.setCellValue(data.getManualesInicial() == null ? "0" : data.getManualesInicial());
dataRow.createCell(cellCounter++)
.setCellValue(data.getManualesFinal() == null ? "0" : data.getManualesFinal());
dataRow.createCell(cellCounter++).setCellValue(data.getManuales());
dataRow.createCell(cellCounter++)
.setCellValue(data.getFiscalesZInicial() == null ? "0" : data.getFiscalesZInicial());
dataRow.createCell(cellCounter++)
.setCellValue(data.getFiscalesZFinal() == null ? "0" : data.getFiscalesZFinal());
dataRow.createCell(cellCounter++)
.setCellValue(data.getFiscalesInicial() == null ? "0" : data.getFiscalesInicial());
dataRow.createCell(cellCounter++)
.setCellValue(data.getFiscalesFinal() == null ? "0" : data.getFiscalesFinal());
dataRow.createCell(cellCounter++).setCellValue(data.getFiscales());
dataRow.createCell(cellCounter++)
.setCellValue(data.getExentasInicial() == null ? "0" : data.getExentasInicial());
dataRow.createCell(cellCounter++)
.setCellValue(data.getExentasFinal() == null ? "0" : data.getExentasFinal());
dataRow.createCell(cellCounter++).setCellValue(data.getExentas());
dataRow.createCell(cellCounter++).setCellValue(data.getSubTotal());
dataRow.createCell(cellCounter++)
.setCellValue(data.getFacturasInicial() == null ? "0" : data.getFacturasInicial());
dataRow.createCell(cellCounter++)
.setCellValue(data.getFacturasFinal() == null ? "0" : data.getFacturasFinal());
dataRow.createCell(cellCounter++).setCellValue(data.getFacturas());
dataRow.createCell(cellCounter++)
.setCellValue(data.getGuiasInicial() == null ? "0" : data.getGuiasInicial());
dataRow.createCell(cellCounter++)
.setCellValue(data.getGuiasFinal() == null ? "0" : data.getGuiasFinal());
dataRow.createCell(cellCounter++).setCellValue(data.getGuias());
dataRow.createCell(cellCounter++).setCellValue(data.getTotal());
if (rowCounter == 2) {
dataRow.createCell(cellCounter).setCellFormula(("U" + (rowCounter + 1)));
} else {
dataRow.createCell(cellCounter)
.setCellFormula(("U" + (rowCounter + 1)) + ("+") + ("V" + (rowCounter)));
}
rowCounter++;
}
}
private void fillTotales() {
int row = 2 + this.informe.size();
this.footerRow = sheet.createRow(row);
this.footerRow.createCell(0).setCellValue("TOTALES");
this.footerRow.createCell(4).setCellFormula("SUM(E" + 3 + ":E" + row + ")");
this.footerRow.createCell(9).setCellFormula("SUM(J" + 3 + ":J" + row + ")");
this.footerRow.createCell(12).setCellFormula("SUM(M" + 3 + ":M" + row + ")");
this.footerRow.createCell(16).setCellFormula("SUM(Q" + 3 + ":Q" + row + ")");
this.footerRow.createCell(19).setCellFormula("SUM(T" + 3 + ":T" + row + ")");
}
private void joinCells() {
this.sheet.addMergedRegion(new CellRangeAddress(0, 0, 2, 4));
this.sheet.addMergedRegion(new CellRangeAddress(0, 0, 5, 9));
this.sheet.addMergedRegion(new CellRangeAddress(0, 0, 10, 12));
this.sheet.addMergedRegion(new CellRangeAddress(0, 0, 14, 16));
this.sheet.addMergedRegion(new CellRangeAddress(0, 0, 17, 19));
this.sheet.addMergedRegion(new CellRangeAddress(0, 0, 20, 22));
}
private void freezeCells() {
this.sheet.createFreezePane(2, 2);
}
private void addBorders() {
int row = 2 + informe.size();
PropertyTemplate pt = new PropertyTemplate();
//Bordes internos
pt.drawBorders(new CellRangeAddress(2, row - 1, 0, 22), BorderStyle.THIN, BorderExtent.ALL);
//Bordes de los headers
pt.drawBorders(new CellRangeAddress(0, 1, 0, 1), BorderStyle.MEDIUM, BorderExtent.OUTSIDE);
pt.drawBorders(new CellRangeAddress(0, 1, 2, 4), BorderStyle.MEDIUM, BorderExtent.OUTSIDE);
pt.drawBorders(new CellRangeAddress(0, 1, 5, 9), BorderStyle.MEDIUM, BorderExtent.OUTSIDE);
pt.drawBorders(new CellRangeAddress(0, 1, 10, 12), BorderStyle.MEDIUM, BorderExtent.OUTSIDE);
pt.drawBorders(new CellRangeAddress(0, 1, 13, 13), BorderStyle.MEDIUM, BorderExtent.OUTSIDE);
pt.drawBorders(new CellRangeAddress(0, 1, 14, 16), BorderStyle.MEDIUM, BorderExtent.OUTSIDE);
pt.drawBorders(new CellRangeAddress(0, 1, 17, 19), BorderStyle.MEDIUM, BorderExtent.OUTSIDE);
pt.drawBorders(new CellRangeAddress(0, 1, 20, 22), BorderStyle.MEDIUM, BorderExtent.OUTSIDE);
//Bordes que agrupan
pt.drawBorders(new CellRangeAddress(2, row, 0, 1), BorderStyle.MEDIUM, BorderExtent.OUTSIDE);
pt.drawBorders(new CellRangeAddress(2, row, 2, 4), BorderStyle.MEDIUM, BorderExtent.OUTSIDE);
pt.drawBorders(new CellRangeAddress(2, row, 5, 9), BorderStyle.MEDIUM, BorderExtent.OUTSIDE);
pt.drawBorders(new CellRangeAddress(2, row, 10, 12), BorderStyle.MEDIUM, BorderExtent.OUTSIDE);
pt.drawBorders(new CellRangeAddress(2, row, 13, 13), BorderStyle.MEDIUM, BorderExtent.OUTSIDE);
pt.drawBorders(new CellRangeAddress(2, row, 14, 16), BorderStyle.MEDIUM, BorderExtent.OUTSIDE);
pt.drawBorders(new CellRangeAddress(2, row, 17, 19), BorderStyle.MEDIUM, BorderExtent.OUTSIDE);
pt.drawBorders(new CellRangeAddress(2, row, 20, 22), BorderStyle.MEDIUM, BorderExtent.OUTSIDE);
//Bordes del total
pt.drawBorders(new CellRangeAddress(row, row, 0, 22), BorderStyle.MEDIUM, BorderExtent.OUTSIDE);
pt.applyBorders(this.sheet);
}
private void setStyles() {
//Estilos para los 2 filas de titulos
for (Row header : headerRows) {
Iterator<Cell> cellIterator = header.cellIterator();
while (cellIterator.hasNext()) {
Cell cell = cellIterator.next();
cell.setCellStyle(this.styles.get("header"));
}
}
private void fillHeaders() {
Row titles = sheet.createRow(0);
Row subtitles = sheet.createRow(1);
//Estilos para las celdas de los datos
for (Row row : dataRows) {
int y = 0;
headerRows.add(titles);
headerRows.add(subtitles);
//Primeras Celdas
row.getCell(y++).setCellStyle(this.styles.get("dia"));
row.getCell(y++).setCellStyle(this.styles.get("date"));
for (int x = 0; x < this.titles.length; x++) {
titles.createCell(x).setCellValue(this.titles[x]);
}
//Boletas Manuales
row.getCell(y++).setCellStyle(this.styles.get("regular"));
row.getCell(y++).setCellStyle(this.styles.get("regular"));
row.getCell(y++).setCellStyle(this.styles.get("money"));
for (int x = 0; x < this.subtitles.length; x++) {
subtitles.createCell(x).setCellValue(this.subtitles[x]);
}
//Boletas Fiscales
row.getCell(y++).setCellStyle(this.styles.get("regular"));
row.getCell(y++).setCellStyle(this.styles.get("regular"));
row.getCell(y++).setCellStyle(this.styles.get("regular"));
row.getCell(y++).setCellStyle(this.styles.get("regular"));
row.getCell(y++).setCellStyle(this.styles.get("money"));
//Boletas Exentas
row.getCell(y++).setCellStyle(this.styles.get("regular"));
row.getCell(y++).setCellStyle(this.styles.get("regular"));
row.getCell(y++).setCellStyle(this.styles.get("money"));
//Sub Total
row.getCell(y++).setCellStyle(this.styles.get("money"));
//Facturas
row.getCell(y++).setCellStyle(this.styles.get("regular"));
row.getCell(y++).setCellStyle(this.styles.get("regular"));
row.getCell(y++).setCellStyle(this.styles.get("money"));
//Guias
row.getCell(y++).setCellStyle(this.styles.get("regular"));
row.getCell(y++).setCellStyle(this.styles.get("regular"));
row.getCell(y++).setCellStyle(this.styles.get("money"));
//Estadisticas
row.getCell(y++).setCellStyle(this.styles.get("money"));
row.getCell(y).setCellStyle(this.styles.get("money"));
}
private void fillData() {
int rowCounter = 2;
//Estilos para los totales del footer
for (int x = 0; x < 23; x++) {
this.footerRow.getCell(x, Row.MissingCellPolicy.CREATE_NULL_AS_BLANK)
.setCellStyle(this.styles.get("footer"));
}
this.footerRow.getCell(4).setCellStyle(this.styles.get("footer_money"));
this.footerRow.getCell(9).setCellStyle(this.styles.get("footer_money"));
this.footerRow.getCell(12).setCellStyle(this.styles.get("footer_money"));
this.footerRow.getCell(16).setCellStyle(this.styles.get("footer_money"));
this.footerRow.getCell(19).setCellStyle(this.styles.get("footer_money"));
for (InformeLibroDeVentasContent data : this.informe) {
int cellCounter = 0;
Row dataRow = sheet.createRow(rowCounter);
dataRows.add(dataRow);
Date fecha = Date.from(data.getFecha().atStartOfDay(ZoneId.systemDefault()).toInstant());
//Setea la altura para todas las filas
this.headerRows.get(0).setHeightInPoints(20);
this.headerRows.get(1).setHeightInPoints(30);
this.footerRow.setHeightInPoints(20);
dataRow.createCell(cellCounter++).setCellValue(this.dias[data.getDia()]);
dataRow.createCell(cellCounter++).setCellValue(fecha);
dataRow.createCell(cellCounter++).setCellValue(data.getManualesInicial() == null ? "0" : data.getManualesInicial());
dataRow.createCell(cellCounter++).setCellValue(data.getManualesFinal() == null ? "0" : data.getManualesFinal());
dataRow.createCell(cellCounter++).setCellValue(data.getManuales());
dataRow.createCell(cellCounter++).setCellValue(data.getFiscalesZInicial() == null ? "0" : data.getFiscalesZInicial());
dataRow.createCell(cellCounter++).setCellValue(data.getFiscalesZFinal() == null ? "0" : data.getFiscalesZFinal());
dataRow.createCell(cellCounter++).setCellValue(data.getFiscalesInicial() == null ? "0" : data.getFiscalesInicial());
dataRow.createCell(cellCounter++).setCellValue(data.getFiscalesFinal() == null ? "0" : data.getFiscalesFinal());
dataRow.createCell(cellCounter++).setCellValue(data.getFiscales());
dataRow.createCell(cellCounter++).setCellValue(data.getExentasInicial() == null ? "0" : data.getExentasInicial());
dataRow.createCell(cellCounter++).setCellValue(data.getExentasFinal() == null ? "0" : data.getExentasFinal());
dataRow.createCell(cellCounter++).setCellValue(data.getExentas());
dataRow.createCell(cellCounter++).setCellValue(data.getSubTotal());
dataRow.createCell(cellCounter++).setCellValue(data.getFacturasInicial() == null ? "0" : data.getFacturasInicial());
dataRow.createCell(cellCounter++).setCellValue(data.getFacturasFinal() == null ? "0" : data.getFacturasFinal());
dataRow.createCell(cellCounter++).setCellValue(data.getFacturas());
dataRow.createCell(cellCounter++).setCellValue(data.getGuiasInicial() == null ? "0" : data.getGuiasInicial());
dataRow.createCell(cellCounter++).setCellValue(data.getGuiasFinal() == null ? "0" : data.getGuiasFinal());
dataRow.createCell(cellCounter++).setCellValue(data.getGuias());
dataRow.createCell(cellCounter++).setCellValue(data.getTotal());
if (rowCounter == 2) {
dataRow.createCell(cellCounter).setCellFormula(("U" + (rowCounter + 1)));
} else {
dataRow.createCell(cellCounter).setCellFormula(("U" + (rowCounter + 1)) + ("+") + ("V" + (rowCounter)));
}
rowCounter++;
}
for (Row row : dataRows) {
row.setHeightInPoints(15);
}
private void fillTotales() {
int row = 2 + this.informe.size();
this.footerRow = sheet.createRow(row);
this.footerRow.createCell(0).setCellValue("TOTALES");
this.footerRow.createCell(4).setCellFormula("SUM(E" + 3 + ":E" + row + ")");
this.footerRow.createCell(9).setCellFormula("SUM(J" + 3 + ":J" + row + ")");
this.footerRow.createCell(12).setCellFormula("SUM(M" + 3 + ":M" + row + ")");
this.footerRow.createCell(16).setCellFormula("SUM(Q" + 3 + ":Q" + row + ")");
this.footerRow.createCell(19).setCellFormula("SUM(T" + 3 + ":T" + row + ")");
//Coloca el ancho como automatico en todas las columnas
for (int x = 0; x <= 23; x++) {
sheet.autoSizeColumn(x);
}
}
private void joinCells() {
this.sheet.addMergedRegion(new CellRangeAddress(0, 0, 2, 4));
this.sheet.addMergedRegion(new CellRangeAddress(0, 0, 5, 9));
this.sheet.addMergedRegion(new CellRangeAddress(0, 0, 10, 12));
this.sheet.addMergedRegion(new CellRangeAddress(0, 0, 14, 16));
this.sheet.addMergedRegion(new CellRangeAddress(0, 0, 17, 19));
this.sheet.addMergedRegion(new CellRangeAddress(0, 0, 20, 22));
public void generarInforme() {
sortInforme();
fillData();
fillHeaders();
fillTotales();
joinCells();
freezeCells();
setStyles();
addBorders();
try (OutputStream fileOut = Files.newOutputStream(this.saveFile)) {
wb.write(fileOut);
} catch (IOException e) {
e.printStackTrace();
}
}
private void freezeCells() {
this.sheet.createFreezePane(2, 2);
}
private HashMap<String, CellStyle> generateStyles() {
Font font = this.wb.createFont();
font.setBold(true);
font.setColor(IndexedColors.WHITE.getIndex());
private void addBorders() {
int row = 2 + informe.size();
PropertyTemplate pt = new PropertyTemplate();
CellStyle regularStyle = this.wb.createCellStyle();
//Bordes internos
pt.drawBorders(new CellRangeAddress(2, row - 1, 0, 22), BorderStyle.THIN, BorderExtent.ALL);
CellStyle grayStyle = this.wb.createCellStyle();
grayStyle.setFont(font);
grayStyle.setFillForegroundColor(IndexedColors.GREY_50_PERCENT.getIndex());
grayStyle.setFillPattern(FillPatternType.SOLID_FOREGROUND);
//Bordes de los headers
pt.drawBorders(new CellRangeAddress(0, 1, 0, 1), BorderStyle.MEDIUM, BorderExtent.OUTSIDE);
pt.drawBorders(new CellRangeAddress(0, 1, 2, 4), BorderStyle.MEDIUM, BorderExtent.OUTSIDE);
pt.drawBorders(new CellRangeAddress(0, 1, 5, 9), BorderStyle.MEDIUM, BorderExtent.OUTSIDE);
pt.drawBorders(new CellRangeAddress(0, 1, 10, 12), BorderStyle.MEDIUM, BorderExtent.OUTSIDE);
pt.drawBorders(new CellRangeAddress(0, 1, 13, 13), BorderStyle.MEDIUM, BorderExtent.OUTSIDE);
pt.drawBorders(new CellRangeAddress(0, 1, 14, 16), BorderStyle.MEDIUM, BorderExtent.OUTSIDE);
pt.drawBorders(new CellRangeAddress(0, 1, 17, 19), BorderStyle.MEDIUM, BorderExtent.OUTSIDE);
pt.drawBorders(new CellRangeAddress(0, 1, 20, 22), BorderStyle.MEDIUM, BorderExtent.OUTSIDE);
CellStyle diaStyle = this.wb.createCellStyle();
diaStyle.cloneStyleFrom(grayStyle);
//Bordes que agrupan
pt.drawBorders(new CellRangeAddress(2, row, 0, 1), BorderStyle.MEDIUM, BorderExtent.OUTSIDE);
pt.drawBorders(new CellRangeAddress(2, row, 2, 4), BorderStyle.MEDIUM, BorderExtent.OUTSIDE);
pt.drawBorders(new CellRangeAddress(2, row, 5, 9), BorderStyle.MEDIUM, BorderExtent.OUTSIDE);
pt.drawBorders(new CellRangeAddress(2, row, 10, 12), BorderStyle.MEDIUM, BorderExtent.OUTSIDE);
pt.drawBorders(new CellRangeAddress(2, row, 13, 13), BorderStyle.MEDIUM, BorderExtent.OUTSIDE);
pt.drawBorders(new CellRangeAddress(2, row, 14, 16), BorderStyle.MEDIUM, BorderExtent.OUTSIDE);
pt.drawBorders(new CellRangeAddress(2, row, 17, 19), BorderStyle.MEDIUM, BorderExtent.OUTSIDE);
pt.drawBorders(new CellRangeAddress(2, row, 20, 22), BorderStyle.MEDIUM, BorderExtent.OUTSIDE);
CellStyle dateStyle = this.wb.createCellStyle();
dateStyle.cloneStyleFrom(grayStyle);
dateStyle.setDataFormat(this.createHelper.createDataFormat().getFormat("dd/mm/yyyy"));
CellStyle moneyStyle = this.wb.createCellStyle();
moneyStyle
.setDataFormat(this.createHelper.createDataFormat().getFormat("\"$\"#,##0_);(\"$\"#,##0)"));
//Bordes del total
pt.drawBorders(new CellRangeAddress(row, row, 0, 22), BorderStyle.MEDIUM, BorderExtent.OUTSIDE);
CellStyle headerStyle = this.wb.createCellStyle();
headerStyle.cloneStyleFrom(grayStyle);
headerStyle.setVerticalAlignment(VerticalAlignment.CENTER);
headerStyle.setAlignment(HorizontalAlignment.CENTER);
pt.applyBorders(this.sheet);
}
CellStyle footerStyle = this.wb.createCellStyle();
footerStyle.cloneStyleFrom(grayStyle);
footerStyle.setVerticalAlignment(VerticalAlignment.CENTER);
private void setStyles() {
//Estilos para los 2 filas de titulos
for(Row header: headerRows){
Iterator<Cell> cellIterator = header.cellIterator();
while (cellIterator.hasNext()) {
Cell cell = cellIterator.next();
cell.setCellStyle(this.styles.get("header"));
}
}
CellStyle footerMoneyStyle = this.wb.createCellStyle();
footerMoneyStyle.cloneStyleFrom(footerStyle);
footerMoneyStyle
.setDataFormat(this.createHelper.createDataFormat().getFormat("\"$\"#,##0_);(\"$\"#,##0)"));
//Estilos para las celdas de los datos
for (Row row: dataRows) {
int y = 0;
HashMap<String, CellStyle> styles = new HashMap<>();
styles.put("regular", regularStyle);
styles.put("date", dateStyle);
styles.put("dia", diaStyle);
styles.put("money", moneyStyle);
styles.put("header", headerStyle);
styles.put("footer", footerStyle);
styles.put("footer_money", footerMoneyStyle);
//Primeras Celdas
row.getCell(y++).setCellStyle(this.styles.get("dia"));
row.getCell(y++).setCellStyle(this.styles.get("date"));
//Boletas Manuales
row.getCell(y++).setCellStyle(this.styles.get("regular"));
row.getCell(y++).setCellStyle(this.styles.get("regular"));
row.getCell(y++).setCellStyle(this.styles.get("money"));
//Boletas Fiscales
row.getCell(y++).setCellStyle(this.styles.get("regular"));
row.getCell(y++).setCellStyle(this.styles.get("regular"));
row.getCell(y++).setCellStyle(this.styles.get("regular"));
row.getCell(y++).setCellStyle(this.styles.get("regular"));
row.getCell(y++).setCellStyle(this.styles.get("money"));
//Boletas Exentas
row.getCell(y++).setCellStyle(this.styles.get("regular"));
row.getCell(y++).setCellStyle(this.styles.get("regular"));
row.getCell(y++).setCellStyle(this.styles.get("money"));
//Sub Total
row.getCell(y++).setCellStyle(this.styles.get("money"));
//Facturas
row.getCell(y++).setCellStyle(this.styles.get("regular"));
row.getCell(y++).setCellStyle(this.styles.get("regular"));
row.getCell(y++).setCellStyle(this.styles.get("money"));
//Guias
row.getCell(y++).setCellStyle(this.styles.get("regular"));
row.getCell(y++).setCellStyle(this.styles.get("regular"));
row.getCell(y++).setCellStyle(this.styles.get("money"));
//Estadisticas
row.getCell(y++).setCellStyle(this.styles.get("money"));
row.getCell(y).setCellStyle(this.styles.get("money"));
}
//Estilos para los totales del footer
for (int x = 0; x < 23; x++) {
this.footerRow.getCell(x, Row.MissingCellPolicy.CREATE_NULL_AS_BLANK).setCellStyle(this.styles.get("footer"));
}
this.footerRow.getCell(4).setCellStyle(this.styles.get("footer_money"));
this.footerRow.getCell(9).setCellStyle(this.styles.get("footer_money"));
this.footerRow.getCell(12).setCellStyle(this.styles.get("footer_money"));
this.footerRow.getCell(16).setCellStyle(this.styles.get("footer_money"));
this.footerRow.getCell(19).setCellStyle(this.styles.get("footer_money"));
//Setea la altura para todas las filas
this.headerRows.get(0).setHeightInPoints(20);
this.headerRows.get(1).setHeightInPoints(30);
this.footerRow.setHeightInPoints(20);
for (Row row: dataRows) {
row.setHeightInPoints(15);
}
//Coloca el ancho como automatico en todas las columnas
for (int x = 0; x <= 23; x++) {
sheet.autoSizeColumn(x);
}
}
public void generarInforme() {
sortInforme();
fillData();
fillHeaders();
fillTotales();
joinCells();
freezeCells();
setStyles();
addBorders();
try (OutputStream fileOut = Files.newOutputStream(this.saveFile)) {
wb.write(fileOut);
} catch (IOException e) {
e.printStackTrace();
}
}
private HashMap<String, CellStyle> generateStyles() {
Font font = this.wb.createFont();
font.setBold(true);
font.setColor(IndexedColors.WHITE.getIndex());
CellStyle regularStyle = this.wb.createCellStyle();
CellStyle grayStyle = this.wb.createCellStyle();
grayStyle.setFont(font);
grayStyle.setFillForegroundColor(IndexedColors.GREY_50_PERCENT.getIndex());
grayStyle.setFillPattern(FillPatternType.SOLID_FOREGROUND);
CellStyle diaStyle = this.wb.createCellStyle();
diaStyle.cloneStyleFrom(grayStyle);
CellStyle dateStyle = this.wb.createCellStyle();
dateStyle.cloneStyleFrom(grayStyle);
dateStyle.setDataFormat(this.createHelper.createDataFormat().getFormat("dd/mm/yyyy"));
CellStyle moneyStyle = this.wb.createCellStyle();
moneyStyle.setDataFormat(this.createHelper.createDataFormat().getFormat("\"$\"#,##0_);(\"$\"#,##0)"));
CellStyle headerStyle = this.wb.createCellStyle();
headerStyle.cloneStyleFrom(grayStyle);
headerStyle.setVerticalAlignment(VerticalAlignment.CENTER);
headerStyle.setAlignment(HorizontalAlignment.CENTER);
CellStyle footerStyle = this.wb.createCellStyle();
footerStyle.cloneStyleFrom(grayStyle);
footerStyle.setVerticalAlignment(VerticalAlignment.CENTER);
CellStyle footerMoneyStyle = this.wb.createCellStyle();
footerMoneyStyle.cloneStyleFrom(footerStyle);
footerMoneyStyle.setDataFormat(this.createHelper.createDataFormat().getFormat("\"$\"#,##0_);(\"$\"#,##0)"));
HashMap<String, CellStyle> styles = new HashMap<>();
styles.put("regular", regularStyle);
styles.put("date", dateStyle);
styles.put("dia", diaStyle);
styles.put("money", moneyStyle);
styles.put("header", headerStyle);
styles.put("footer", footerStyle);
styles.put("footer_money", footerMoneyStyle);
return styles;
}
return styles;
}
}

View File

@@ -27,39 +27,40 @@ package danielcortes.xyz.models.caja;
import java.time.LocalDate;
public class Caja {
private int id;
private LocalDate fecha;
private int fondo;
public int getId() {
return id;
}
private int id;
private LocalDate fecha;
private int fondo;
public void setId(int id) {
this.id = id;
}
public int getId() {
return id;
}
public LocalDate getFecha() {
return fecha;
}
public void setId(int id) {
this.id = id;
}
public void setFecha(LocalDate fecha) {
this.fecha = fecha;
}
public LocalDate getFecha() {
return fecha;
}
public int getFondo() {
return fondo;
}
public void setFecha(LocalDate fecha) {
this.fecha = fecha;
}
public void setFondo(int fondo) {
this.fondo = fondo;
}
public int getFondo() {
return fondo;
}
@Override
public String toString() {
return "Caja{" +
"id=" + id +
", fecha=" + fecha +
'}';
}
public void setFondo(int fondo) {
this.fondo = fondo;
}
@Override
public String toString() {
return "Caja{" +
"id=" + id +
", fecha=" + fecha +
'}';
}
}

View File

@@ -30,18 +30,19 @@ import java.util.List;
import java.util.Optional;
public interface CajaDAO {
List<Caja> getAll();
Optional<Caja> getById(int id);
List<Caja> getAll();
Optional<Caja> getByFecha(LocalDate fecha);
Optional<Caja> getById(int id);
void insert(Caja caja);
Optional<Caja> getByFecha(LocalDate fecha);
void insert(List<Caja> cajas);
void insert(Caja caja);
void update(Caja caja);
void insert(List<Caja> cajas);
void createCajasForMonth(YearMonth month);
void update(Caja caja);
void createCajasForMonth(YearMonth month);
}

View File

@@ -28,7 +28,6 @@ import danielcortes.xyz.data.DAOManager;
import danielcortes.xyz.data.SQLiteConnectionHolder;
import danielcortes.xyz.models.documentos.Documentos;
import danielcortes.xyz.models.efectivo.Efectivo;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
@@ -42,186 +41,189 @@ import java.util.logging.Level;
import java.util.logging.Logger;
public class SQLiteCajaDAO implements CajaDAO {
private static final Logger LOGGER = Logger.getLogger(SQLiteCajaDAO.class.getName());
private SQLiteConnectionHolder connectionHolder;
private static final Logger LOGGER = Logger.getLogger(SQLiteCajaDAO.class.getName());
public SQLiteCajaDAO() {
this.connectionHolder = new SQLiteConnectionHolder();
private SQLiteConnectionHolder connectionHolder;
public SQLiteCajaDAO() {
this.connectionHolder = new SQLiteConnectionHolder();
}
@Override
public List<Caja> getAll() {
List<Caja> cajaList = new ArrayList<>();
try (Connection conn = connectionHolder.getConnection()) {
String query = "select * from caja";
PreparedStatement ps = conn.prepareStatement(query);
ResultSet rs = ps.executeQuery();
LOGGER.log(Level.FINE, "QUERY: {0}", new Object[]{query});
while (rs.next()) {
Caja caja = new Caja();
caja.setId(rs.getInt("id"));
caja.setFecha(LocalDate.parse(rs.getString("fecha")));
caja.setFondo(rs.getInt("fondo"));
cajaList.add(caja);
}
rs.close();
ps.close();
} catch (SQLException e) {
LOGGER.log(Level.SEVERE, e.toString(), e);
}
@Override
public List<Caja> getAll() {
List<Caja> cajaList = new ArrayList<>();
try (Connection conn = connectionHolder.getConnection()) {
String query = "select * from caja";
PreparedStatement ps = conn.prepareStatement(query);
ResultSet rs = ps.executeQuery();
return cajaList;
}
LOGGER.log(Level.FINE, "QUERY: {0}", new Object[]{query});
@Override
public Optional<Caja> getById(int id) {
Caja caja = null;
try (Connection conn = connectionHolder.getConnection()) {
String query = "select * from caja where id = ?";
PreparedStatement ps = conn.prepareStatement(query);
ps.setInt(1, id);
ResultSet rs = ps.executeQuery();
while (rs.next()) {
Caja caja = new Caja();
caja.setId(rs.getInt("id"));
caja.setFecha(LocalDate.parse(rs.getString("fecha")));
caja.setFondo(rs.getInt("fondo"));
cajaList.add(caja);
}
LOGGER.log(Level.FINE, "QUERY: {0} | values: {1}", new Object[]{query, id});
rs.close();
ps.close();
} catch (SQLException e) {
LOGGER.log(Level.SEVERE, e.toString(), e);
}
while (rs.next()) {
caja = new Caja();
caja.setId(rs.getInt("id"));
caja.setFecha(LocalDate.parse(rs.getString("fecha")));
caja.setFondo(rs.getInt("fondo"));
}
return cajaList;
rs.close();
ps.close();
} catch (SQLException e) {
LOGGER.log(Level.SEVERE, e.toString(), e);
}
return Optional.ofNullable(caja);
}
@Override
public Optional<Caja> getByFecha(LocalDate fecha) {
Caja caja = null;
try (Connection conn = connectionHolder.getConnection()) {
String query = "select * from caja where fecha = ?";
PreparedStatement ps = conn.prepareStatement(query);
ps.setString(1, fecha.toString());
ResultSet rs = ps.executeQuery();
LOGGER.log(Level.FINE, "QUERY: {0} | values: {1}", new Object[]{query, fecha});
while (rs.next()) {
caja = new Caja();
caja.setId(rs.getInt("id"));
caja.setFecha(LocalDate.parse(rs.getString("fecha")));
caja.setFondo(rs.getInt("fondo"));
}
rs.close();
ps.close();
} catch (SQLException e) {
LOGGER.log(Level.SEVERE, e.toString(), e);
}
return Optional.ofNullable(caja);
}
@Override
public void insert(Caja caja) {
try (Connection conn = connectionHolder.getConnection()) {
String query = "insert into caja (fecha, fondo) values (?, ?)";
PreparedStatement ps = conn.prepareStatement(query);
ps.setString(1, caja.getFecha().toString());
ps.setInt(2, caja.getFondo());
ps.executeUpdate();
LOGGER.log(Level.FINE, "QUERY: {0} | values: {1}, {2}",
new Object[]{query, caja.getFecha(), caja.getFondo()});
ps.close();
query = "select last_insert_rowid()";
ps = conn.prepareStatement("select last_insert_rowid()");
ResultSet rs = ps.executeQuery();
LOGGER.log(Level.FINE, "QUERY: {0}", new Object[]{query});
rs.next();
caja.setId(rs.getInt(1));
rs.close();
ps.close();
} catch (SQLException e) {
LOGGER.log(Level.SEVERE, e.toString(), e);
}
}
@Override
public void insert(List<Caja> cajas) {
String query = "insert into caja (fecha, fondo) values (?, ?)";
try (Connection conn = connectionHolder.getConnection(); PreparedStatement ps = conn
.prepareStatement(query)) {
for (Caja caja : cajas) {
ps.setString(1, caja.getFecha().toString());
ps.setInt(2, caja.getFondo());
ps.addBatch();
}
ps.executeBatch();
} catch (SQLException e) {
LOGGER.log(Level.SEVERE, e.toString(), e);
}
}
@Override
public void update(Caja caja) {
try (Connection conn = connectionHolder.getConnection()) {
String query = "update caja set fecha = ?, fondo = ? where id = ?";
PreparedStatement ps = conn.prepareStatement(query);
ps.setString(1, caja.getFecha().toString());
ps.setInt(2, caja.getFondo());
ps.setInt(3, caja.getId());
ps.executeUpdate();
LOGGER.log(Level.FINE, "QUERY: {0} | values: {1}, {2}, {3}",
new Object[]{query, caja.getFecha(), caja.getFondo(), caja.getId()});
ps.close();
} catch (SQLException e) {
LOGGER.log(Level.SEVERE, e.toString(), e);
}
}
@Override
public void createCajasForMonth(YearMonth mes) {
LocalDate startDate = mes.atDay(1);
LocalDate endDatePlusOne = mes.atEndOfMonth().plusDays(1);
List<Caja> cajas = new ArrayList<>();
while (startDate.isBefore(endDatePlusOne)) {
if (this.getByFecha(startDate).isPresent()) {
startDate = startDate.plusDays(1);
} else {
Caja caja = new Caja();
caja.setFecha(startDate);
cajas.add(caja);
startDate = startDate.plusDays(1);
}
}
@Override
public Optional<Caja> getById(int id) {
Caja caja = null;
try (Connection conn = connectionHolder.getConnection()) {
String query = "select * from caja where id = ?";
PreparedStatement ps = conn.prepareStatement(query);
ps.setInt(1, id);
ResultSet rs = ps.executeQuery();
this.insert(cajas);
LOGGER.log(Level.FINE, "QUERY: {0} | values: {1}", new Object[]{query, id});
for (Caja caja : cajas) {
Efectivo efectivo = new Efectivo();
efectivo.setCaja(caja);
DAOManager.getEfectivoDAO().insertDefaultEfectivo(efectivo);
while (rs.next()) {
caja = new Caja();
caja.setId(rs.getInt("id"));
caja.setFecha(LocalDate.parse(rs.getString("fecha")));
caja.setFondo(rs.getInt("fondo"));
}
Documentos documentos = new Documentos();
documentos.setCaja(caja);
DAOManager.getDocumentosDAO().insertDefaultDocumentos(documentos);
rs.close();
ps.close();
} catch (SQLException e) {
LOGGER.log(Level.SEVERE, e.toString(), e);
}
return Optional.ofNullable(caja);
}
@Override
public Optional<Caja> getByFecha(LocalDate fecha) {
Caja caja = null;
try (Connection conn = connectionHolder.getConnection()) {
String query = "select * from caja where fecha = ?";
PreparedStatement ps = conn.prepareStatement(query);
ps.setString(1, fecha.toString());
ResultSet rs = ps.executeQuery();
LOGGER.log(Level.FINE, "QUERY: {0} | values: {1}", new Object[]{query, fecha});
while (rs.next()) {
caja = new Caja();
caja.setId(rs.getInt("id"));
caja.setFecha(LocalDate.parse(rs.getString("fecha")));
caja.setFondo(rs.getInt("fondo"));
}
rs.close();
ps.close();
} catch (SQLException e) {
LOGGER.log(Level.SEVERE, e.toString(), e);
}
return Optional.ofNullable(caja);
}
@Override
public void insert(Caja caja) {
try (Connection conn = connectionHolder.getConnection()) {
String query = "insert into caja (fecha, fondo) values (?, ?)";
PreparedStatement ps = conn.prepareStatement(query);
ps.setString(1, caja.getFecha().toString());
ps.setInt(2, caja.getFondo());
ps.executeUpdate();
LOGGER.log(Level.FINE, "QUERY: {0} | values: {1}, {2}", new Object[]{query, caja.getFecha(), caja.getFondo()});
ps.close();
query = "select last_insert_rowid()";
ps = conn.prepareStatement("select last_insert_rowid()");
ResultSet rs = ps.executeQuery();
LOGGER.log(Level.FINE, "QUERY: {0}", new Object[]{query});
rs.next();
caja.setId(rs.getInt(1));
rs.close();
ps.close();
} catch (SQLException e) {
LOGGER.log(Level.SEVERE, e.toString(), e);
}
}
@Override
public void insert(List<Caja> cajas){
String query = "insert into caja (fecha, fondo) values (?, ?)";
try (Connection conn = connectionHolder.getConnection();PreparedStatement ps = conn.prepareStatement(query)) {
for(Caja caja: cajas){
ps.setString(1, caja.getFecha().toString());
ps.setInt(2, caja.getFondo());
ps.addBatch();
}
ps.executeBatch();
} catch (SQLException e) {
LOGGER.log(Level.SEVERE, e.toString(), e);
}
}
@Override
public void update(Caja caja) {
try (Connection conn = connectionHolder.getConnection()) {
String query = "update caja set fecha = ?, fondo = ? where id = ?";
PreparedStatement ps = conn.prepareStatement(query);
ps.setString(1, caja.getFecha().toString());
ps.setInt(2, caja.getFondo());
ps.setInt(3, caja.getId());
ps.executeUpdate();
LOGGER.log(Level.FINE, "QUERY: {0} | values: {1}, {2}, {3}", new Object[]{query, caja.getFecha(), caja.getFondo(), caja.getId()});
ps.close();
} catch (SQLException e) {
LOGGER.log(Level.SEVERE, e.toString(), e);
}
}
@Override
public void createCajasForMonth(YearMonth mes) {
LocalDate startDate = mes.atDay(1);
LocalDate endDatePlusOne = mes.atEndOfMonth().plusDays(1);
List<Caja> cajas = new ArrayList<>();
while (startDate.isBefore(endDatePlusOne)) {
if (this.getByFecha(startDate).isPresent()){
startDate = startDate.plusDays(1);
}else{
Caja caja = new Caja();
caja.setFecha(startDate);
cajas.add(caja);
startDate = startDate.plusDays(1);
}
}
this.insert(cajas);
for(Caja caja: cajas){
Efectivo efectivo = new Efectivo();
efectivo.setCaja(caja);
DAOManager.getEfectivoDAO().insertDefaultEfectivo(efectivo);
Documentos documentos = new Documentos();
documentos.setCaja(caja);
DAOManager.getDocumentosDAO().insertDefaultDocumentos(documentos);
}
}
}
}

View File

@@ -27,50 +27,51 @@ package danielcortes.xyz.models.calculo_fondo;
import danielcortes.xyz.models.caja.Caja;
public class CalculoFondo {
private int id;
private int valor;
private String descripcion;
private Caja caja;
public int getId() {
return id;
}
private int id;
private int valor;
private String descripcion;
private Caja caja;
public void setId(int id) {
this.id = id;
}
public int getId() {
return id;
}
public int getValor() {
return valor;
}
public void setId(int id) {
this.id = id;
}
public void setValor(int valor) {
this.valor = valor;
}
public int getValor() {
return valor;
}
public String getDescripcion() {
return descripcion;
}
public void setValor(int valor) {
this.valor = valor;
}
public void setDescripcion(String descripcion) {
this.descripcion = descripcion;
}
public String getDescripcion() {
return descripcion;
}
public Caja getCaja() {
return caja;
}
public void setDescripcion(String descripcion) {
this.descripcion = descripcion;
}
public void setCaja(Caja caja) {
this.caja = caja;
}
public Caja getCaja() {
return caja;
}
@Override
public String toString() {
return "CalculoFondo{" +
"id=" + id +
", valor=" + valor +
", descripcion='" + descripcion + '\'' +
", caja=" + caja +
'}';
}
public void setCaja(Caja caja) {
this.caja = caja;
}
@Override
public String toString() {
return "CalculoFondo{" +
"id=" + id +
", valor=" + valor +
", descripcion='" + descripcion + '\'' +
", caja=" + caja +
'}';
}
}

View File

@@ -27,7 +27,6 @@ package danielcortes.xyz.models.calculo_fondo;
import danielcortes.xyz.data.ConnectionHolder;
import danielcortes.xyz.models.caja.Caja;
import danielcortes.xyz.models.caja.SQLiteCajaDAO;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
@@ -36,39 +35,40 @@ import java.util.logging.Level;
import java.util.logging.Logger;
public abstract class CalculoFondoDAO {
private static final Logger LOGGER = Logger.getLogger(CalculoFondoDAO.class.getName());
protected ConnectionHolder connectionHolder;
private static final Logger LOGGER = Logger.getLogger(CalculoFondoDAO.class.getName());
public abstract List<CalculoFondo> findAll();
protected ConnectionHolder connectionHolder;
public abstract List<CalculoFondo> findByCaja(Caja caja);
public abstract List<CalculoFondo> findAll();
public abstract CalculoFondo findById(int id);
public abstract List<CalculoFondo> findByCaja(Caja caja);
public abstract boolean insertCalculoFondo(CalculoFondo calculoFondo);
public abstract CalculoFondo findById(int id);
public abstract boolean updateCalculoFondo(CalculoFondo calculoFondo);
public abstract boolean insertCalculoFondo(CalculoFondo calculoFondo);
public abstract boolean deleteCalculoFondo(CalculoFondo calculoFondo);
public abstract boolean updateCalculoFondo(CalculoFondo calculoFondo);
public abstract int getTotalCalculoFondo(Caja caja);
public abstract boolean deleteCalculoFondo(CalculoFondo calculoFondo);
protected List<CalculoFondo> calculoFondoFromResultSet(ResultSet rs) throws SQLException {
List<CalculoFondo> calculoFondoList = new ArrayList<>();
while (rs.next()) {
int caja_id = rs.getInt("caja_id");
Caja caja = new SQLiteCajaDAO().getById(caja_id).get();
CalculoFondo calculoFondo = new CalculoFondo();
calculoFondo.setId(rs.getInt("id"));
calculoFondo.setValor(rs.getInt("valor"));
calculoFondo.setDescripcion(rs.getString("descripcion"));
calculoFondo.setCaja(caja);
calculoFondoList.add(calculoFondo);
public abstract int getTotalCalculoFondo(Caja caja);
LOGGER.log(Level.FINER, "Se a creo: {0}", calculoFondo);
protected List<CalculoFondo> calculoFondoFromResultSet(ResultSet rs) throws SQLException {
List<CalculoFondo> calculoFondoList = new ArrayList<>();
while (rs.next()) {
int caja_id = rs.getInt("caja_id");
Caja caja = new SQLiteCajaDAO().getById(caja_id).get();
CalculoFondo calculoFondo = new CalculoFondo();
calculoFondo.setId(rs.getInt("id"));
calculoFondo.setValor(rs.getInt("valor"));
calculoFondo.setDescripcion(rs.getString("descripcion"));
calculoFondo.setCaja(caja);
calculoFondoList.add(calculoFondo);
LOGGER.log(Level.FINER, "Se a creo: {0}", calculoFondo);
}
return calculoFondoList;
}
return calculoFondoList;
}
}

View File

@@ -26,7 +26,6 @@ package danielcortes.xyz.models.calculo_fondo;
import danielcortes.xyz.data.SQLiteConnectionHolder;
import danielcortes.xyz.models.caja.Caja;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
@@ -37,165 +36,170 @@ import java.util.logging.Level;
import java.util.logging.Logger;
public class SQLiteCalculoFondoDAO extends CalculoFondoDAO {
private static final Logger LOGGER = Logger.getLogger(SQLiteCalculoFondoDAO.class.getName());
public SQLiteCalculoFondoDAO() {
this.connectionHolder = new SQLiteConnectionHolder();
private static final Logger LOGGER = Logger.getLogger(SQLiteCalculoFondoDAO.class.getName());
public SQLiteCalculoFondoDAO() {
this.connectionHolder = new SQLiteConnectionHolder();
}
@Override
public List<CalculoFondo> findAll() {
List<CalculoFondo> calculoFondoList = new ArrayList<>();
try (Connection conn = connectionHolder.getConnection()) {
String query = "select * from calculo_fondo";
PreparedStatement ps = conn.prepareStatement(query);
ResultSet rs = ps.executeQuery();
LOGGER.log(Level.FINE, "QUERY: {0}", query);
calculoFondoList = this.calculoFondoFromResultSet(rs);
rs.close();
ps.close();
} catch (SQLException e) {
LOGGER.log(Level.SEVERE, e.toString(), e);
}
return calculoFondoList;
}
@Override
public List<CalculoFondo> findAll() {
List<CalculoFondo> calculoFondoList = new ArrayList<>();
try (Connection conn = connectionHolder.getConnection()) {
String query = "select * from calculo_fondo";
PreparedStatement ps = conn.prepareStatement(query);
ResultSet rs = ps.executeQuery();
@Override
public List<CalculoFondo> findByCaja(Caja caja) {
List<CalculoFondo> calculoFondoList = new ArrayList<>();
try (Connection conn = connectionHolder.getConnection()) {
String query = "select * from calculo_fondo where caja_id = ?";
PreparedStatement ps = conn.prepareStatement(query);
ps.setInt(1, caja.getId());
ResultSet rs = ps.executeQuery();
LOGGER.log(Level.FINE, "QUERY: {0}", query);
LOGGER.log(Level.FINE, "QUERY: {0} | values: {1}", new Object[]{query, caja.getId()});
calculoFondoList = this.calculoFondoFromResultSet(rs);
calculoFondoList = this.calculoFondoFromResultSet(rs);
rs.close();
ps.close();
} catch (SQLException e) {
LOGGER.log(Level.SEVERE, e.toString(), e);
}
return calculoFondoList;
rs.close();
ps.close();
} catch (SQLException e) {
LOGGER.log(Level.SEVERE, e.toString(), e);
}
return calculoFondoList;
}
@Override
public List<CalculoFondo> findByCaja(Caja caja) {
List<CalculoFondo> calculoFondoList = new ArrayList<>();
try (Connection conn = connectionHolder.getConnection()) {
String query = "select * from calculo_fondo where caja_id = ?";
PreparedStatement ps = conn.prepareStatement(query);
ps.setInt(1, caja.getId());
ResultSet rs = ps.executeQuery();
@Override
public CalculoFondo findById(int id) {
CalculoFondo calculoFondo = null;
try (Connection conn = connectionHolder.getConnection()) {
String query = "select * from calculo_fondo where id = ?";
PreparedStatement ps = conn.prepareStatement(query);
ps.setInt(1, id);
ResultSet rs = ps.executeQuery();
LOGGER.log(Level.FINE, "QUERY: {0} | values: {1}", new Object[]{query, caja.getId()});
LOGGER.log(Level.FINE, "QUERY: {0} | values: {1}", new Object[]{query, id});
calculoFondoList = this.calculoFondoFromResultSet(rs);
calculoFondo = this.calculoFondoFromResultSet(rs).get(0);
rs.close();
ps.close();
} catch (SQLException e) {
LOGGER.log(Level.SEVERE, e.toString(), e);
}
return calculoFondoList;
rs.close();
ps.close();
} catch (SQLException e) {
LOGGER.log(Level.SEVERE, e.toString(), e);
}
return calculoFondo;
}
@Override
public CalculoFondo findById(int id) {
CalculoFondo calculoFondo = null;
try (Connection conn = connectionHolder.getConnection()) {
String query = "select * from calculo_fondo where id = ?";
PreparedStatement ps = conn.prepareStatement(query);
ps.setInt(1, id);
ResultSet rs = ps.executeQuery();
@Override
public boolean insertCalculoFondo(CalculoFondo calculoFondo) {
int updates;
try (Connection conn = connectionHolder.getConnection()) {
String query = "insert into calculo_fondo (valor, descripcion, caja_id) values (?, ?, ?)";
PreparedStatement ps = conn.prepareStatement(query);
ps.setInt(1, calculoFondo.getValor());
ps.setString(2, calculoFondo.getDescripcion());
ps.setInt(3, calculoFondo.getCaja().getId());
LOGGER.log(Level.FINE, "QUERY: {0} | values: {1}", new Object[]{query, id});
updates = ps.executeUpdate();
LOGGER.log(Level.FINE, "QUERY {0} | values: [{1}, {2}, {3}] | updates: {4}",
new Object[]{query, calculoFondo.getValor(), calculoFondo.getDescripcion(),
calculoFondo.getCaja().getId(), updates});
calculoFondo = this.calculoFondoFromResultSet(rs).get(0);
ps.close();
rs.close();
ps.close();
} catch (SQLException e) {
LOGGER.log(Level.SEVERE, e.toString(), e);
}
return calculoFondo;
ps = conn.prepareStatement("select last_insert_rowid()");
ResultSet rs = ps.executeQuery();
LOGGER.log(Level.FINE, "Se ejecuta query: {0}", query);
rs.next();
calculoFondo.setId(rs.getInt(1));
rs.close();
ps.close();
} catch (SQLException e) {
LOGGER.log(Level.SEVERE, e.toString(), e);
return false;
}
return updates > 0;
}
@Override
public boolean insertCalculoFondo(CalculoFondo calculoFondo) {
int updates;
try (Connection conn = connectionHolder.getConnection()) {
String query = "insert into calculo_fondo (valor, descripcion, caja_id) values (?, ?, ?)";
PreparedStatement ps = conn.prepareStatement(query);
ps.setInt(1, calculoFondo.getValor());
ps.setString(2, calculoFondo.getDescripcion());
ps.setInt(3, calculoFondo.getCaja().getId());
@Override
public boolean updateCalculoFondo(CalculoFondo calculoFondo) {
int updates;
try (Connection conn = connectionHolder.getConnection()) {
String query = "update calculo_fondo set valor = ?, descripcion = ?, caja_id = ? where id = ?";
PreparedStatement ps = conn.prepareStatement(query);
ps.setInt(1, calculoFondo.getValor());
ps.setString(2, calculoFondo.getDescripcion());
ps.setInt(3, calculoFondo.getCaja().getId());
ps.setInt(4, calculoFondo.getId());
updates = ps.executeUpdate();
LOGGER.log(Level.FINE, "QUERY {0} | values: [{1}, {2}, {3}] | updates: {4}", new Object[]{query, calculoFondo.getValor(), calculoFondo.getDescripcion(), calculoFondo.getCaja().getId(), updates});
updates = ps.executeUpdate();
LOGGER.log(Level.FINE, "QUERY {0} | values: [{1}, {2}, {3}, {4}] | updates: {5}",
new Object[]{query, calculoFondo.getValor(), calculoFondo.getDescripcion(),
calculoFondo.getCaja().getId(), updates});
ps.close();
ps = conn.prepareStatement("select last_insert_rowid()");
ResultSet rs = ps.executeQuery();
LOGGER.log(Level.FINE, "Se ejecuta query: {0}", query);
rs.next();
calculoFondo.setId(rs.getInt(1));
rs.close();
ps.close();
} catch (SQLException e) {
LOGGER.log(Level.SEVERE, e.toString(), e);
return false;
}
return updates > 0;
ps.close();
} catch (SQLException e) {
LOGGER.log(Level.SEVERE, e.toString(), e);
return false;
}
return updates > 0;
}
@Override
public boolean updateCalculoFondo(CalculoFondo calculoFondo) {
int updates;
try (Connection conn = connectionHolder.getConnection()) {
String query = "update calculo_fondo set valor = ?, descripcion = ?, caja_id = ? where id = ?";
PreparedStatement ps = conn.prepareStatement(query);
ps.setInt(1, calculoFondo.getValor());
ps.setString(2, calculoFondo.getDescripcion());
ps.setInt(3, calculoFondo.getCaja().getId());
ps.setInt(4, calculoFondo.getId());
@Override
public boolean deleteCalculoFondo(CalculoFondo calculoFondo) {
int updates;
try (Connection conn = connectionHolder.getConnection()) {
String query = "delete from calculo_fondo where id = ?";
PreparedStatement ps = conn.prepareStatement(query);
ps.setInt(1, calculoFondo.getId());
updates = ps.executeUpdate();
updates = ps.executeUpdate();
LOGGER.log(Level.FINE, "QUERY {0} | values: [{1}, {2}, {3}, {4}] | updates: {5}", new Object[]{query, calculoFondo.getValor(), calculoFondo.getDescripcion(), calculoFondo.getCaja().getId(), updates});
LOGGER.log(Level.FINE, "QUERY: {0} | values: {1} | updates: {2}",
new Object[]{query, calculoFondo.getId(), updates});
ps.close();
} catch (SQLException e) {
LOGGER.log(Level.SEVERE, e.toString(), e);
return false;
}
return updates > 0;
ps.close();
} catch (SQLException e) {
LOGGER.log(Level.SEVERE, e.toString(), e);
return false;
}
return updates > 0;
}
@Override
public boolean deleteCalculoFondo(CalculoFondo calculoFondo) {
int updates;
try (Connection conn = connectionHolder.getConnection()) {
String query = "delete from calculo_fondo where id = ?";
PreparedStatement ps = conn.prepareStatement(query);
ps.setInt(1, calculoFondo.getId());
updates = ps.executeUpdate();
@Override
public int getTotalCalculoFondo(Caja caja) {
int sum = 0;
try (Connection conn = connectionHolder.getConnection()) {
String query = "select sum(valor) from calculo_fondo where caja_id = ?";
PreparedStatement ps = conn.prepareStatement(query);
ps.setInt(1, caja.getId());
ResultSet rs = ps.executeQuery();
LOGGER.log(Level.FINE, "QUERY: {0} | values: {1} | updates: {2}", new Object[]{query, calculoFondo.getId(), updates});
LOGGER.log(Level.FINE, "QUERY: {0} | values: {1}", new Object[]{query, caja.getId()});
ps.close();
} catch (SQLException e) {
LOGGER.log(Level.SEVERE, e.toString(), e);
return false;
}
return updates > 0;
}
@Override
public int getTotalCalculoFondo(Caja caja) {
int sum = 0;
try (Connection conn = connectionHolder.getConnection()) {
String query = "select sum(valor) from calculo_fondo where caja_id = ?";
PreparedStatement ps = conn.prepareStatement(query);
ps.setInt(1, caja.getId());
ResultSet rs = ps.executeQuery();
LOGGER.log(Level.FINE, "QUERY: {0} | values: {1}", new Object[]{query, caja.getId()});
rs.next();
sum = rs.getInt(1);
ps.close();
} catch (SQLException e) {
LOGGER.log(Level.SEVERE, e.toString(), e);
}
return sum;
rs.next();
sum = rs.getInt(1);
ps.close();
} catch (SQLException e) {
LOGGER.log(Level.SEVERE, e.toString(), e);
}
return sum;
}
}

View File

@@ -27,60 +27,61 @@ package danielcortes.xyz.models.documentos;
import danielcortes.xyz.models.caja.Caja;
public class Documentos {
private int id;
private int cheques;
private int tarjetas;
private int retiros;
private Caja caja;
public int getId() {
return id;
}
private int id;
private int cheques;
private int tarjetas;
private int retiros;
private Caja caja;
public void setId(int id) {
this.id = id;
}
public int getId() {
return id;
}
public int getCheques() {
return cheques;
}
public void setId(int id) {
this.id = id;
}
public void setCheques(int cheques) {
this.cheques = cheques;
}
public int getCheques() {
return cheques;
}
public int getTarjetas() {
return tarjetas;
}
public void setCheques(int cheques) {
this.cheques = cheques;
}
public void setTarjetas(int tarjetas) {
this.tarjetas = tarjetas;
}
public int getTarjetas() {
return tarjetas;
}
public int getRetiros() {
return retiros;
}
public void setTarjetas(int tarjetas) {
this.tarjetas = tarjetas;
}
public void setRetiros(int retiros) {
this.retiros = retiros;
}
public int getRetiros() {
return retiros;
}
public Caja getCaja() {
return caja;
}
public void setRetiros(int retiros) {
this.retiros = retiros;
}
public void setCaja(Caja caja) {
this.caja = caja;
}
public Caja getCaja() {
return caja;
}
@Override
public String toString() {
return "Documentos{" +
"id=" + id +
", cheques=" + cheques +
", tarjetas=" + tarjetas +
", retiros=" + retiros +
", caja=" + caja +
'}';
}
public void setCaja(Caja caja) {
this.caja = caja;
}
@Override
public String toString() {
return "Documentos{" +
"id=" + id +
", cheques=" + cheques +
", tarjetas=" + tarjetas +
", retiros=" + retiros +
", caja=" + caja +
'}';
}
}

View File

@@ -28,7 +28,6 @@ import danielcortes.xyz.data.ConnectionHolder;
import danielcortes.xyz.models.caja.Caja;
import danielcortes.xyz.models.caja.CajaDAO;
import danielcortes.xyz.models.caja.SQLiteCajaDAO;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
@@ -37,44 +36,45 @@ import java.util.logging.Level;
import java.util.logging.Logger;
public abstract class DocumentosDAO {
private static final Logger LOGGER = Logger.getLogger(DocumentosDAO.class.getName());
protected ConnectionHolder connectionHolder;
private static final Logger LOGGER = Logger.getLogger(DocumentosDAO.class.getName());
public abstract List<Documentos> findAll();
protected ConnectionHolder connectionHolder;
public abstract Documentos findById(int id);
public abstract List<Documentos> findAll();
public abstract Documentos findByCaja(Caja caja);
public abstract Documentos findById(int id);
public abstract boolean insertDocumentos(Documentos documentos);
public abstract Documentos findByCaja(Caja caja);
public abstract boolean insertDefaultDocumentos(Documentos documentos);
public abstract boolean insertDocumentos(Documentos documentos);
public abstract boolean updateDocumentos(Documentos documentos);
public abstract boolean insertDefaultDocumentos(Documentos documentos);
public abstract boolean deleteDocumentos(Documentos documentos);
public abstract boolean updateDocumentos(Documentos documentos);
public abstract int getTotalDocumentos(Caja caja);
public abstract boolean deleteDocumentos(Documentos documentos);
protected List<Documentos> documentosFromResultSet(ResultSet rs) throws SQLException {
List<Documentos> documentosList = new ArrayList<>();
while (rs.next()) {
CajaDAO cajaDAO = new SQLiteCajaDAO();
Caja caja = cajaDAO.getById(rs.getInt("caja_id")).get();
public abstract int getTotalDocumentos(Caja caja);
Documentos documentos = new Documentos();
documentos.setCaja(caja);
documentos.setId(rs.getInt("id"));
documentos.setCheques(rs.getInt("cheques"));
documentos.setTarjetas(rs.getInt("tarjetas"));
documentos.setRetiros(rs.getInt("retiros"));
protected List<Documentos> documentosFromResultSet(ResultSet rs) throws SQLException {
List<Documentos> documentosList = new ArrayList<>();
while (rs.next()) {
CajaDAO cajaDAO = new SQLiteCajaDAO();
Caja caja = cajaDAO.getById(rs.getInt("caja_id")).get();
LOGGER.log(Level.FINER, "Se a creo: {0}", documentos);
Documentos documentos = new Documentos();
documentos.setCaja(caja);
documentos.setId(rs.getInt("id"));
documentos.setCheques(rs.getInt("cheques"));
documentos.setTarjetas(rs.getInt("tarjetas"));
documentos.setRetiros(rs.getInt("retiros"));
documentosList.add(documentos);
LOGGER.log(Level.FINER, "Se a creo: {0}", documentos);
documentosList.add(documentos);
}
return documentosList;
}
return documentosList;
}
}

View File

@@ -26,7 +26,6 @@ package danielcortes.xyz.models.documentos;
import danielcortes.xyz.data.SQLiteConnectionHolder;
import danielcortes.xyz.models.caja.Caja;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
@@ -37,205 +36,212 @@ import java.util.logging.Level;
import java.util.logging.Logger;
public class SQLiteDocumentosDAO extends DocumentosDAO {
private static final Logger LOGGER = Logger.getLogger(SQLiteDocumentosDAO.class.getName());
public SQLiteDocumentosDAO() {
this.connectionHolder = new SQLiteConnectionHolder();
private static final Logger LOGGER = Logger.getLogger(SQLiteDocumentosDAO.class.getName());
public SQLiteDocumentosDAO() {
this.connectionHolder = new SQLiteConnectionHolder();
}
@Override
public List<Documentos> findAll() {
List<Documentos> documentosList = new ArrayList<>();
try (Connection conn = connectionHolder.getConnection()) {
String query = "select * from documentos";
PreparedStatement ps = conn.prepareStatement(query);
ResultSet rs = ps.executeQuery();
LOGGER.log(Level.FINE, "QUERY: {0}", query);
documentosList = this.documentosFromResultSet(rs);
rs.close();
ps.close();
} catch (SQLException e) {
LOGGER.log(Level.SEVERE, e.toString(), e);
}
return documentosList;
}
@Override
public List<Documentos> findAll() {
List<Documentos> documentosList = new ArrayList<>();
try (Connection conn = connectionHolder.getConnection()) {
String query = "select * from documentos";
PreparedStatement ps = conn.prepareStatement(query);
ResultSet rs = ps.executeQuery();
@Override
public Documentos findById(int id) {
Documentos documentos = null;
try (Connection conn = connectionHolder.getConnection()) {
String query = "select * from documentos where id = ?";
PreparedStatement ps = conn.prepareStatement(query);
ps.setInt(1, id);
ResultSet rs = ps.executeQuery();
LOGGER.log(Level.FINE, "QUERY: {0}", query);
LOGGER.log(Level.FINE, "QUERY: {0} | values: {1}", new Object[]{query, id});
documentosList = this.documentosFromResultSet(rs);
List<Documentos> documentosList = this.documentosFromResultSet(rs);
if (documentosList.size() > 0) {
documentos = documentosList.get(0);
}
rs.close();
ps.close();
} catch (SQLException e) {
LOGGER.log(Level.SEVERE, e.toString(), e);
}
return documentosList;
rs.close();
ps.close();
} catch (SQLException e) {
LOGGER.log(Level.SEVERE, e.toString(), e);
}
return documentos;
}
@Override
public Documentos findById(int id) {
Documentos documentos = null;
try (Connection conn = connectionHolder.getConnection()) {
String query = "select * from documentos where id = ?";
PreparedStatement ps = conn.prepareStatement(query);
ps.setInt(1, id);
ResultSet rs = ps.executeQuery();
@Override
public Documentos findByCaja(Caja caja) {
Documentos documentos = null;
try (Connection conn = connectionHolder.getConnection()) {
String query = "select * from documentos where caja_id = ?";
PreparedStatement ps = conn.prepareStatement(query);
ps.setInt(1, caja.getId());
ResultSet rs = ps.executeQuery();
LOGGER.log(Level.FINE, "QUERY: {0} | values: {1}", new Object[]{query, id});
LOGGER.log(Level.FINE, "QUERY: {0} | values: {1}", new Object[]{query, caja.getId()});
List<Documentos> documentosList = this.documentosFromResultSet(rs);
if (documentosList.size() > 0) {
documentos = documentosList.get(0);
}
List<Documentos> documentosList = this.documentosFromResultSet(rs);
if (documentosList.size() > 0) {
documentos = documentosList.get(0);
}
rs.close();
ps.close();
} catch (SQLException e) {
LOGGER.log(Level.SEVERE, e.toString(), e);
}
return documentos;
rs.close();
ps.close();
} catch (SQLException e) {
LOGGER.log(Level.SEVERE, e.toString(), e);
}
return documentos;
}
@Override
public Documentos findByCaja(Caja caja) {
Documentos documentos = null;
try (Connection conn = connectionHolder.getConnection()) {
String query = "select * from documentos where caja_id = ?";
PreparedStatement ps = conn.prepareStatement(query);
ps.setInt(1, caja.getId());
ResultSet rs = ps.executeQuery();
@Override
public boolean insertDocumentos(Documentos documentos) {
int updates;
try (Connection conn = connectionHolder.getConnection()) {
String query = "insert into documentos (cheques, tarjetas, retiros, caja_id) values (?,?,?,?)";
PreparedStatement ps = conn.prepareStatement(query);
ps.setInt(1, documentos.getCheques());
ps.setInt(2, documentos.getTarjetas());
ps.setInt(3, documentos.getRetiros());
ps.setInt(4, documentos.getCaja().getId());
updates = ps.executeUpdate();
LOGGER.log(Level.FINE, "QUERY: {0} | values: {1}", new Object[]{query, caja.getId()});
LOGGER.log(Level.FINE, "QUERY: {0} | values: [{1}, {2}, {3}, {4}] | updates: {5}",
new Object[]{query, documentos.getCheques(), documentos.getTarjetas(),
documentos.getRetiros(), documentos.getCaja().getId(), updates});
List<Documentos> documentosList = this.documentosFromResultSet(rs);
if (documentosList.size() > 0) {
documentos = documentosList.get(0);
}
ps.close();
rs.close();
ps.close();
} catch (SQLException e) {
LOGGER.log(Level.SEVERE, e.toString(), e);
}
return documentos;
query = "select last_insert_rowid()";
ps = conn.prepareStatement(query);
ResultSet rs = ps.executeQuery();
LOGGER.log(Level.FINE, "QUERY: {0}", query);
rs.next();
documentos.setId(rs.getInt(1));
rs.close();
ps.close();
} catch (SQLException e) {
LOGGER.log(Level.SEVERE, e.toString(), e);
return false;
}
return updates > 0;
}
@Override
public boolean insertDocumentos(Documentos documentos) {
int updates;
try (Connection conn = connectionHolder.getConnection()) {
String query = "insert into documentos (cheques, tarjetas, retiros, caja_id) values (?,?,?,?)";
PreparedStatement ps = conn.prepareStatement(query);
ps.setInt(1, documentos.getCheques());
ps.setInt(2, documentos.getTarjetas());
ps.setInt(3, documentos.getRetiros());
ps.setInt(4, documentos.getCaja().getId());
updates = ps.executeUpdate();
@Override
public boolean insertDefaultDocumentos(Documentos documentos) {
int updates;
try (Connection conn = connectionHolder.getConnection()) {
String query = "insert into documentos (cheques, tarjetas, retiros, caja_id) values (0,0,0,?)";
PreparedStatement ps = conn.prepareStatement(query);
ps.setInt(1, documentos.getCaja().getId());
updates = ps.executeUpdate();
LOGGER.log(Level.FINE, "QUERY: {0} | values: [{1}, {2}, {3}, {4}] | updates: {5}", new Object[]{query, documentos.getCheques(), documentos.getTarjetas(), documentos.getRetiros(), documentos.getCaja().getId(), updates});
LOGGER.log(Level.FINE, "QUERY: {0} | values: {1} | updates: {2}",
new Object[]{query, documentos.getCaja().getId(), updates});
ps.close();
ps.close();
query = "select last_insert_rowid()";
ps = conn.prepareStatement(query);
ResultSet rs = ps.executeQuery();
ps = conn.prepareStatement("select last_insert_rowid()");
ResultSet rs = ps.executeQuery();
LOGGER.log(Level.FINE, "QUERY: {0}", query);
LOGGER.log(Level.FINE, "QUERY: {0}", query);
rs.next();
documentos.setId(rs.getInt(1));
rs.next();
documentos.setId(rs.getInt(1));
rs.close();
ps.close();
} catch (SQLException e) {
LOGGER.log(Level.SEVERE, e.toString(), e);
return false;
}
return updates > 0;
rs.close();
ps.close();
} catch (SQLException e) {
LOGGER.log(Level.SEVERE, e.toString(), e);
return false;
}
return updates > 0;
}
@Override
public boolean insertDefaultDocumentos(Documentos documentos) {
int updates;
try (Connection conn = connectionHolder.getConnection()) {
String query = "insert into documentos (cheques, tarjetas, retiros, caja_id) values (0,0,0,?)";
PreparedStatement ps = conn.prepareStatement(query);
ps.setInt(1, documentos.getCaja().getId());
updates = ps.executeUpdate();
@Override
public boolean updateDocumentos(Documentos documentos) {
int updates;
try (Connection conn = connectionHolder.getConnection()) {
String query = "update documentos set tarjetas = ?, cheques = ?, retiros = ?, caja_id = ? where id = ?";
PreparedStatement ps = conn.prepareStatement(query);
ps.setInt(1, documentos.getTarjetas());
ps.setInt(2, documentos.getCheques());
ps.setInt(3, documentos.getRetiros());
ps.setInt(4, documentos.getCaja().getId());
ps.setInt(5, documentos.getId());
updates = ps.executeUpdate();
LOGGER.log(Level.FINE, "QUERY: {0} | values: {1} | updates: {2}", new Object[]{query, documentos.getCaja().getId(), updates});
LOGGER.log(Level.FINE, "QUERY: {0} | values: [{1}, {2}, {3}, {4}] | updates: {5}",
new Object[]{query, documentos.getCheques(), documentos.getTarjetas(),
documentos.getRetiros(), documentos.getCaja().getId(), documentos.getId(), updates});
ps.close();
ps = conn.prepareStatement("select last_insert_rowid()");
ResultSet rs = ps.executeQuery();
LOGGER.log(Level.FINE, "QUERY: {0}", query);
rs.next();
documentos.setId(rs.getInt(1));
rs.close();
ps.close();
} catch (SQLException e) {
LOGGER.log(Level.SEVERE, e.toString(), e);
return false;
}
return updates > 0;
ps.close();
} catch (SQLException e) {
LOGGER.log(Level.SEVERE, e.toString(), e);
return false;
}
return updates > 0;
}
@Override
public boolean updateDocumentos(Documentos documentos) {
int updates;
try (Connection conn = connectionHolder.getConnection()) {
String query = "update documentos set tarjetas = ?, cheques = ?, retiros = ?, caja_id = ? where id = ?";
PreparedStatement ps = conn.prepareStatement(query);
ps.setInt(1, documentos.getTarjetas());
ps.setInt(2, documentos.getCheques());
ps.setInt(3, documentos.getRetiros());
ps.setInt(4, documentos.getCaja().getId());
ps.setInt(5, documentos.getId());
updates = ps.executeUpdate();
@Override
public boolean deleteDocumentos(Documentos documentos) {
int updates;
try (Connection conn = connectionHolder.getConnection()) {
String query = "delete from documentos where id = ?";
PreparedStatement ps = conn.prepareStatement(query);
ps.setInt(1, documentos.getId());
updates = ps.executeUpdate();
LOGGER.log(Level.FINE, "QUERY: {0} | values: [{1}, {2}, {3}, {4}] | updates: {5}", new Object[]{query, documentos.getCheques(), documentos.getTarjetas(), documentos.getRetiros(), documentos.getCaja().getId(), documentos.getId(), updates});
LOGGER.log(Level.FINE, "QUERY: {0} | values: {1} | updates: {2}",
new Object[]{query, documentos.getCaja().getId(), updates});
ps.close();
} catch (SQLException e) {
LOGGER.log(Level.SEVERE, e.toString(), e);
return false;
}
return updates > 0;
ps.close();
} catch (SQLException e) {
LOGGER.log(Level.SEVERE, e.toString(), e);
return false;
}
return updates > 0;
}
@Override
public boolean deleteDocumentos(Documentos documentos) {
int updates;
try (Connection conn = connectionHolder.getConnection()) {
String query = "delete from documentos where id = ?";
PreparedStatement ps = conn.prepareStatement(query);
ps.setInt(1, documentos.getId());
updates = ps.executeUpdate();
@Override
public int getTotalDocumentos(Caja caja) {
int total = 0;
try (Connection conn = connectionHolder.getConnection()) {
String query = "select cheques + tarjetas + retiros from documentos where caja_id = ?";
PreparedStatement ps = conn.prepareStatement(query);
ps.setInt(1, caja.getId());
ResultSet rs = ps.executeQuery();
LOGGER.log(Level.FINE, "QUERY: {0} | values: {1} | updates: {2}", new Object[]{query, documentos.getCaja().getId(), updates});
LOGGER.log(Level.FINE, "QUERY: {0} | values: {1}", new Object[]{query, caja.getId()});
ps.close();
} catch (SQLException e) {
LOGGER.log(Level.SEVERE, e.toString(), e);
return false;
}
return updates > 0;
}
@Override
public int getTotalDocumentos(Caja caja) {
int total = 0;
try (Connection conn = connectionHolder.getConnection()) {
String query = "select cheques + tarjetas + retiros from documentos where caja_id = ?";
PreparedStatement ps = conn.prepareStatement(query);
ps.setInt(1, caja.getId());
ResultSet rs = ps.executeQuery();
LOGGER.log(Level.FINE, "QUERY: {0} | values: {1}", new Object[]{query, caja.getId()});
rs.next();
total = rs.getInt(1);
rs.close();
ps.close();
} catch (SQLException e) {
LOGGER.log(Level.SEVERE, e.toString(), e);
}
return total;
rs.next();
total = rs.getInt(1);
rs.close();
ps.close();
} catch (SQLException e) {
LOGGER.log(Level.SEVERE, e.toString(), e);
}
return total;
}
}

View File

@@ -27,120 +27,121 @@ package danielcortes.xyz.models.efectivo;
import danielcortes.xyz.models.caja.Caja;
public class Efectivo {
private int id;
private int veinteMil;
private int diezMil;
private int cincoMil;
private int dosMil;
private int mil;
private int quinientos;
private int cien;
private int cincuenta;
private int diez;
private Caja caja;
public int getId() {
return id;
}
private int id;
private int veinteMil;
private int diezMil;
private int cincoMil;
private int dosMil;
private int mil;
private int quinientos;
private int cien;
private int cincuenta;
private int diez;
private Caja caja;
public void setId(int id) {
this.id = id;
}
public int getId() {
return id;
}
public int getVeinteMil() {
return veinteMil;
}
public void setId(int id) {
this.id = id;
}
public void setVeinteMil(int veinteMil) {
this.veinteMil = veinteMil;
}
public int getVeinteMil() {
return veinteMil;
}
public int getDiezMil() {
return diezMil;
}
public void setVeinteMil(int veinteMil) {
this.veinteMil = veinteMil;
}
public void setDiezMil(int diezMil) {
this.diezMil = diezMil;
}
public int getDiezMil() {
return diezMil;
}
public int getCincoMil() {
return cincoMil;
}
public void setDiezMil(int diezMil) {
this.diezMil = diezMil;
}
public void setCincoMil(int cincoMil) {
this.cincoMil = cincoMil;
}
public int getCincoMil() {
return cincoMil;
}
public int getDosMil() {
return dosMil;
}
public void setCincoMil(int cincoMil) {
this.cincoMil = cincoMil;
}
public void setDosMil(int dosMil) {
this.dosMil = dosMil;
}
public int getDosMil() {
return dosMil;
}
public int getMil() {
return mil;
}
public void setDosMil(int dosMil) {
this.dosMil = dosMil;
}
public void setMil(int mil) {
this.mil = mil;
}
public int getMil() {
return mil;
}
public int getQuinientos() {
return quinientos;
}
public void setMil(int mil) {
this.mil = mil;
}
public void setQuinientos(int quinientos) {
this.quinientos = quinientos;
}
public int getQuinientos() {
return quinientos;
}
public int getCien() {
return cien;
}
public void setQuinientos(int quinientos) {
this.quinientos = quinientos;
}
public void setCien(int cien) {
this.cien = cien;
}
public int getCien() {
return cien;
}
public int getCincuenta() {
return cincuenta;
}
public void setCien(int cien) {
this.cien = cien;
}
public void setCincuenta(int cincuenta) {
this.cincuenta = cincuenta;
}
public int getCincuenta() {
return cincuenta;
}
public int getDiez() {
return diez;
}
public void setCincuenta(int cincuenta) {
this.cincuenta = cincuenta;
}
public void setDiez(int diez) {
this.diez = diez;
}
public int getDiez() {
return diez;
}
public Caja getCaja() {
return caja;
}
public void setDiez(int diez) {
this.diez = diez;
}
public void setCaja(Caja caja) {
this.caja = caja;
}
public Caja getCaja() {
return caja;
}
@Override
public String toString() {
return "Efectivo{" +
"id=" + id +
", veinteMil=" + veinteMil +
", diezMil=" + diezMil +
", cincoMil=" + cincoMil +
", dosMil=" + dosMil +
", mil=" + mil +
", quinientos=" + quinientos +
", cien=" + cien +
", cincuenta=" + cincuenta +
", diez=" + diez +
", caja=" + caja +
'}';
}
public void setCaja(Caja caja) {
this.caja = caja;
}
@Override
public String toString() {
return "Efectivo{" +
"id=" + id +
", veinteMil=" + veinteMil +
", diezMil=" + diezMil +
", cincoMil=" + cincoMil +
", dosMil=" + dosMil +
", mil=" + mil +
", quinientos=" + quinientos +
", cien=" + cien +
", cincuenta=" + cincuenta +
", diez=" + diez +
", caja=" + caja +
'}';
}
}

View File

@@ -28,7 +28,6 @@ import danielcortes.xyz.data.ConnectionHolder;
import danielcortes.xyz.models.caja.Caja;
import danielcortes.xyz.models.caja.CajaDAO;
import danielcortes.xyz.models.caja.SQLiteCajaDAO;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
@@ -37,49 +36,50 @@ import java.util.logging.Level;
import java.util.logging.Logger;
public abstract class EfectivoDAO {
private static final Logger LOGGER = Logger.getLogger(EfectivoDAO.class.getName());
protected ConnectionHolder connectionHolder;
private static final Logger LOGGER = Logger.getLogger(EfectivoDAO.class.getName());
public abstract List<Efectivo> findAll();
protected ConnectionHolder connectionHolder;
public abstract Efectivo findById(int id);
public abstract List<Efectivo> findAll();
public abstract Efectivo findByCaja(Caja caja);
public abstract Efectivo findById(int id);
public abstract boolean insertEfectivo(Efectivo efectivo);
public abstract Efectivo findByCaja(Caja caja);
public abstract boolean insertDefaultEfectivo(Efectivo efectivo);
public abstract boolean insertEfectivo(Efectivo efectivo);
public abstract boolean updateEfectivo(Efectivo efectivo);
public abstract boolean insertDefaultEfectivo(Efectivo efectivo);
public abstract boolean deleteEfectivo(Efectivo efectivo);
public abstract boolean updateEfectivo(Efectivo efectivo);
public abstract int getTotalEfectivo(Caja caja);
public abstract boolean deleteEfectivo(Efectivo efectivo);
protected List<Efectivo> efectivosFromResultSet(ResultSet rs) throws SQLException {
List<Efectivo> efectivoList = new ArrayList<>();
while (rs.next()) {
CajaDAO cajaDAO = new SQLiteCajaDAO();
Caja caja = cajaDAO.getById(rs.getInt("caja_id")).get();
public abstract int getTotalEfectivo(Caja caja);
Efectivo efectivo = new Efectivo();
efectivo.setCaja(caja);
efectivo.setId(rs.getInt("id"));
efectivo.setVeinteMil(rs.getInt("veinte_mil"));
efectivo.setDiezMil(rs.getInt("diez_mil"));
efectivo.setCincoMil(rs.getInt("cinco_mil"));
efectivo.setDosMil(rs.getInt("dos_mil"));
efectivo.setMil(rs.getInt("mil"));
efectivo.setQuinientos(rs.getInt("quinientos"));
efectivo.setCien(rs.getInt("cien"));
efectivo.setCincuenta(rs.getInt("cincuenta"));
efectivo.setDiez(rs.getInt("diez"));
protected List<Efectivo> efectivosFromResultSet(ResultSet rs) throws SQLException {
List<Efectivo> efectivoList = new ArrayList<>();
while (rs.next()) {
CajaDAO cajaDAO = new SQLiteCajaDAO();
Caja caja = cajaDAO.getById(rs.getInt("caja_id")).get();
LOGGER.log(Level.FINER, "Se a creo: {0}", efectivo);
Efectivo efectivo = new Efectivo();
efectivo.setCaja(caja);
efectivo.setId(rs.getInt("id"));
efectivo.setVeinteMil(rs.getInt("veinte_mil"));
efectivo.setDiezMil(rs.getInt("diez_mil"));
efectivo.setCincoMil(rs.getInt("cinco_mil"));
efectivo.setDosMil(rs.getInt("dos_mil"));
efectivo.setMil(rs.getInt("mil"));
efectivo.setQuinientos(rs.getInt("quinientos"));
efectivo.setCien(rs.getInt("cien"));
efectivo.setCincuenta(rs.getInt("cincuenta"));
efectivo.setDiez(rs.getInt("diez"));
efectivoList.add(efectivo);
}
return efectivoList;
LOGGER.log(Level.FINER, "Se a creo: {0}", efectivo);
efectivoList.add(efectivo);
}
return efectivoList;
}
}

View File

@@ -26,7 +26,6 @@ package danielcortes.xyz.models.efectivo;
import danielcortes.xyz.data.SQLiteConnectionHolder;
import danielcortes.xyz.models.caja.Caja;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
@@ -37,216 +36,227 @@ import java.util.logging.Level;
import java.util.logging.Logger;
public class SQLiteEfectivoDAO extends EfectivoDAO {
private static final Logger LOGGER = Logger.getLogger(SQLiteEfectivoDAO.class.getName());
public SQLiteEfectivoDAO() {
this.connectionHolder = new SQLiteConnectionHolder();
private static final Logger LOGGER = Logger.getLogger(SQLiteEfectivoDAO.class.getName());
public SQLiteEfectivoDAO() {
this.connectionHolder = new SQLiteConnectionHolder();
}
@Override
public List<Efectivo> findAll() {
List<Efectivo> efectivoList = new ArrayList<>();
try (Connection conn = connectionHolder.getConnection()) {
String query = "select * from efectivos";
PreparedStatement ps = conn.prepareStatement(query);
ResultSet rs = ps.executeQuery();
LOGGER.log(Level.FINE, "QUERY: {0}", query);
efectivoList = this.efectivosFromResultSet(rs);
rs.close();
ps.close();
} catch (SQLException e) {
LOGGER.log(Level.SEVERE, e.toString(), e);
}
@Override
public List<Efectivo> findAll() {
List<Efectivo> efectivoList = new ArrayList<>();
try (Connection conn = connectionHolder.getConnection()) {
String query = "select * from efectivos";
PreparedStatement ps = conn.prepareStatement(query);
ResultSet rs = ps.executeQuery();
return efectivoList;
}
LOGGER.log(Level.FINE, "QUERY: {0}", query);
@Override
public Efectivo findById(int id) {
Efectivo efectivo = null;
try (Connection conn = connectionHolder.getConnection()) {
String query = "select * from efectivos where id = ?";
PreparedStatement ps = conn.prepareStatement(query);
ps.setInt(1, id);
ResultSet rs = ps.executeQuery();
efectivoList = this.efectivosFromResultSet(rs);
LOGGER.log(Level.FINE, "QUERY: {0} | values: {1}", new Object[]{query, id});
rs.close();
ps.close();
} catch (SQLException e) {
LOGGER.log(Level.SEVERE, e.toString(), e);
}
efectivo = this.efectivosFromResultSet(rs).get(0);
return efectivoList;
rs.close();
ps.close();
} catch (SQLException e) {
LOGGER.log(Level.SEVERE, e.toString(), e);
}
@Override
public Efectivo findById(int id) {
Efectivo efectivo = null;
try (Connection conn = connectionHolder.getConnection()) {
String query = "select * from efectivos where id = ?";
PreparedStatement ps = conn.prepareStatement(query);
ps.setInt(1, id);
ResultSet rs = ps.executeQuery();
return efectivo;
}
LOGGER.log(Level.FINE, "QUERY: {0} | values: {1}", new Object[]{query, id});
@Override
public Efectivo findByCaja(Caja caja) {
Efectivo efectivo = null;
try (Connection conn = connectionHolder.getConnection()) {
String query = "select * from efectivos where caja_id = ?";
PreparedStatement ps = conn.prepareStatement(query);
ps.setInt(1, caja.getId());
ResultSet rs = ps.executeQuery();
efectivo = this.efectivosFromResultSet(rs).get(0);
LOGGER.log(Level.FINE, "QUERY: {0} | values: {1}", new Object[]{query, caja.getId()});
rs.close();
ps.close();
} catch (SQLException e) {
LOGGER.log(Level.SEVERE, e.toString(), e);
}
List<Efectivo> efectivoList = this.efectivosFromResultSet(rs);
if (efectivoList.size() > 0) {
efectivo = efectivoList.get(0);
}
return efectivo;
rs.close();
ps.close();
} catch (SQLException e) {
LOGGER.log(Level.SEVERE, e.toString(), e);
}
@Override
public Efectivo findByCaja(Caja caja) {
Efectivo efectivo = null;
try (Connection conn = connectionHolder.getConnection()) {
String query = "select * from efectivos where caja_id = ?";
PreparedStatement ps = conn.prepareStatement(query);
ps.setInt(1, caja.getId());
ResultSet rs = ps.executeQuery();
return efectivo;
}
LOGGER.log(Level.FINE, "QUERY: {0} | values: {1}", new Object[]{query, caja.getId()});
@Override
public boolean insertEfectivo(Efectivo efectivo) {
int updates;
try (Connection conn = connectionHolder.getConnection()) {
String query = "insert into efectivos (veinte_mil, diez_mil, cinco_mil, dos_mil, mil, quinientos, cien, cincuenta, diez, caja_id) values (?,?,?,?,?,?,?,?,?,?)";
PreparedStatement ps = conn.prepareStatement(query);
ps.setInt(1, efectivo.getVeinteMil());
ps.setInt(2, efectivo.getDiezMil());
ps.setInt(3, efectivo.getCincoMil());
ps.setInt(4, efectivo.getDosMil());
ps.setInt(5, efectivo.getMil());
ps.setInt(6, efectivo.getQuinientos());
ps.setInt(7, efectivo.getCien());
ps.setInt(8, efectivo.getCincuenta());
ps.setInt(9, efectivo.getDiez());
ps.setInt(10, efectivo.getCaja().getId());
updates = ps.executeUpdate();
List<Efectivo> efectivoList = this.efectivosFromResultSet(rs);
if (efectivoList.size() > 0) {
efectivo = efectivoList.get(0);
}
LOGGER.log(Level.FINE,
"QUERY: {0} | values: [{1},{2},{3},{4},{5},{6},{7},{8},{9},{10}] | updates: {11}",
new Object[]{query, efectivo.getVeinteMil(), efectivo.getDiezMil(),
efectivo.getCincoMil(), efectivo.getDosMil(), efectivo.getMil(),
efectivo.getQuinientos(), efectivo.getCien(), efectivo.getCincuenta(),
efectivo.getDiez(), efectivo.getCaja().getId(), updates});
rs.close();
ps.close();
} catch (SQLException e) {
LOGGER.log(Level.SEVERE, e.toString(), e);
}
ps.close();
return efectivo;
query = "select last_insert_rowid()";
ps = conn.prepareStatement(query);
ResultSet rs = ps.executeQuery();
LOGGER.log(Level.FINE, "QUERY: {0}", query);
rs.next();
efectivo.setId(rs.getInt(1));
rs.close();
ps.close();
} catch (SQLException e) {
LOGGER.log(Level.SEVERE, e.toString(), e);
return false;
}
return updates > 0;
}
@Override
public boolean insertEfectivo(Efectivo efectivo) {
int updates;
try (Connection conn = connectionHolder.getConnection()) {
String query = "insert into efectivos (veinte_mil, diez_mil, cinco_mil, dos_mil, mil, quinientos, cien, cincuenta, diez, caja_id) values (?,?,?,?,?,?,?,?,?,?)";
PreparedStatement ps = conn.prepareStatement(query);
ps.setInt(1, efectivo.getVeinteMil());
ps.setInt(2, efectivo.getDiezMil());
ps.setInt(3, efectivo.getCincoMil());
ps.setInt(4, efectivo.getDosMil());
ps.setInt(5, efectivo.getMil());
ps.setInt(6, efectivo.getQuinientos());
ps.setInt(7, efectivo.getCien());
ps.setInt(8, efectivo.getCincuenta());
ps.setInt(9, efectivo.getDiez());
ps.setInt(10, efectivo.getCaja().getId());
updates = ps.executeUpdate();
@Override
public boolean insertDefaultEfectivo(Efectivo efectivo) {
int updates;
try (Connection conn = connectionHolder.getConnection()) {
String query = "insert into efectivos (veinte_mil, diez_mil, cinco_mil, dos_mil, mil, quinientos, cien, cincuenta, diez, caja_id) values (0,0,0,0,0,0,0,0,0,?)";
PreparedStatement ps = conn.prepareStatement(query);
ps.setInt(1, efectivo.getCaja().getId());
updates = ps.executeUpdate();
LOGGER.log(Level.FINE, "QUERY: {0} | values: [{1},{2},{3},{4},{5},{6},{7},{8},{9},{10}] | updates: {11}", new Object[]{query, efectivo.getVeinteMil(), efectivo.getDiezMil(), efectivo.getCincoMil(), efectivo.getDosMil(), efectivo.getMil(), efectivo.getQuinientos(), efectivo.getCien(), efectivo.getCincuenta(), efectivo.getDiez(), efectivo.getCaja().getId(), updates});
LOGGER.log(Level.FINE, "QUERY: {0} | values: {1} | updates: {2}",
new Object[]{query, efectivo.getCaja().getId(), updates});
ps.close();
ps.close();
ps = conn.prepareStatement("select last_insert_rowid()");
ResultSet rs = ps.executeQuery();
rs.next();
efectivo.setId(rs.getInt(1));
query = "select last_insert_rowid()";
ps = conn.prepareStatement(query);
ResultSet rs = ps.executeQuery();
LOGGER.log(Level.FINE, "QUERY: {0}", query);
rs.next();
efectivo.setId(rs.getInt(1));
rs.close();
ps.close();
} catch (SQLException e) {
LOGGER.log(Level.SEVERE, e.toString(), e);
return false;
}
return updates > 0;
rs.close();
ps.close();
} catch (SQLException e) {
LOGGER.log(Level.SEVERE, e.toString(), e);
return false;
}
return updates > 0;
}
@Override
public boolean insertDefaultEfectivo(Efectivo efectivo) {
int updates;
try (Connection conn = connectionHolder.getConnection()) {
String query = "insert into efectivos (veinte_mil, diez_mil, cinco_mil, dos_mil, mil, quinientos, cien, cincuenta, diez, caja_id) values (0,0,0,0,0,0,0,0,0,?)";
PreparedStatement ps = conn.prepareStatement(query);
ps.setInt(1, efectivo.getCaja().getId());
updates = ps.executeUpdate();
@Override
public boolean updateEfectivo(Efectivo efectivo) {
int updates;
try (Connection conn = connectionHolder.getConnection()) {
String query = "update efectivos set veinte_mil = ?, diez_mil = ?, cinco_mil = ?, dos_mil = ?, mil = ?, quinientos = ?, cien = ?, cincuenta = ?, diez = ?, caja_id = ? where id = ?";
PreparedStatement ps = conn.prepareStatement(query);
ps.setInt(1, efectivo.getVeinteMil());
ps.setInt(2, efectivo.getDiezMil());
ps.setInt(3, efectivo.getCincoMil());
ps.setInt(4, efectivo.getDosMil());
ps.setInt(5, efectivo.getMil());
ps.setInt(6, efectivo.getQuinientos());
ps.setInt(7, efectivo.getCien());
ps.setInt(8, efectivo.getCincuenta());
ps.setInt(9, efectivo.getDiez());
ps.setInt(10, efectivo.getCaja().getId());
ps.setInt(11, efectivo.getId());
updates = ps.executeUpdate();
LOGGER.log(Level.FINE, "QUERY: {0} | values: {1} | updates: {2}", new Object[]{query, efectivo.getCaja().getId(), updates});
LOGGER.log(Level.FINE,
"QUERY: {0} | values: [{1},{2},{3},{4},{5},{6},{7},{8},{9},{10},{11}] | updates: {12}",
new Object[]{query, efectivo.getVeinteMil(), efectivo.getDiezMil(),
efectivo.getCincoMil(), efectivo.getDosMil(), efectivo.getMil(),
efectivo.getQuinientos(), efectivo.getCien(), efectivo.getCincuenta(),
efectivo.getDiez(), efectivo.getCaja().getId(), efectivo.getId(), updates});
ps.close();
ps = conn.prepareStatement("select last_insert_rowid()");
ResultSet rs = ps.executeQuery();
rs.next();
efectivo.setId(rs.getInt(1));
rs.close();
ps.close();
} catch (SQLException e) {
LOGGER.log(Level.SEVERE, e.toString(), e);
return false;
}
return updates > 0;
ps.close();
} catch (SQLException e) {
LOGGER.log(Level.SEVERE, e.toString(), e);
return false;
}
return updates > 0;
}
@Override
public boolean updateEfectivo(Efectivo efectivo) {
int updates;
try (Connection conn = connectionHolder.getConnection()) {
String query = "update efectivos set veinte_mil = ?, diez_mil = ?, cinco_mil = ?, dos_mil = ?, mil = ?, quinientos = ?, cien = ?, cincuenta = ?, diez = ?, caja_id = ? where id = ?";
PreparedStatement ps = conn.prepareStatement(query);
ps.setInt(1, efectivo.getVeinteMil());
ps.setInt(2, efectivo.getDiezMil());
ps.setInt(3, efectivo.getCincoMil());
ps.setInt(4, efectivo.getDosMil());
ps.setInt(5, efectivo.getMil());
ps.setInt(6, efectivo.getQuinientos());
ps.setInt(7, efectivo.getCien());
ps.setInt(8, efectivo.getCincuenta());
ps.setInt(9, efectivo.getDiez());
ps.setInt(10, efectivo.getCaja().getId());
ps.setInt(11, efectivo.getId());
updates = ps.executeUpdate();
@Override
public boolean deleteEfectivo(Efectivo efectivo) {
int updates;
try (Connection conn = connectionHolder.getConnection()) {
String query = "delete from efectivos where id = ?";
PreparedStatement ps = conn.prepareStatement(query);
ps.setInt(1, efectivo.getId());
updates = ps.executeUpdate();
LOGGER.log(Level.FINE, "QUERY: {0} | values: {1} | updates: {2}",
new Object[]{query, efectivo.getId(), updates});
LOGGER.log(Level.FINE, "QUERY: {0} | values: [{1},{2},{3},{4},{5},{6},{7},{8},{9},{10},{11}] | updates: {12}", new Object[]{query, efectivo.getVeinteMil(), efectivo.getDiezMil(), efectivo.getCincoMil(), efectivo.getDosMil(), efectivo.getMil(), efectivo.getQuinientos(), efectivo.getCien(), efectivo.getCincuenta(), efectivo.getDiez(), efectivo.getCaja().getId(), efectivo.getId(), updates});
ps.close();
} catch (SQLException e) {
LOGGER.log(Level.SEVERE, e.toString(), e);
return false;
}
return updates > 0;
ps.close();
} catch (SQLException e) {
LOGGER.log(Level.SEVERE, e.toString(), e);
return false;
}
return updates > 0;
}
@Override
public boolean deleteEfectivo(Efectivo efectivo) {
int updates;
try (Connection conn = connectionHolder.getConnection()) {
String query = "delete from efectivos where id = ?";
PreparedStatement ps = conn.prepareStatement(query);
ps.setInt(1, efectivo.getId());
updates = ps.executeUpdate();
@Override
public int getTotalEfectivo(Caja caja) {
int total = 0;
try (Connection conn = connectionHolder.getConnection()) {
String query = "select veinte_mil + diez_mil + cinco_mil + dos_mil + mil + quinientos + cien + cincuenta + diez from efectivos where caja_id = ?";
PreparedStatement ps = conn.prepareStatement(query);
ps.setInt(1, caja.getId());
LOGGER.log(Level.FINE, "QUERY: {0} | values: {1} | updates: {2}", new Object[]{query, efectivo.getId(), updates});
LOGGER.log(Level.FINE, "QUERY: {0} | values: {1}", new Object[]{query, caja.getId()});
ps.close();
} catch (SQLException e) {
LOGGER.log(Level.SEVERE, e.toString(), e);
return false;
}
return updates > 0;
}
@Override
public int getTotalEfectivo(Caja caja) {
int total = 0;
try (Connection conn = connectionHolder.getConnection()) {
String query = "select veinte_mil + diez_mil + cinco_mil + dos_mil + mil + quinientos + cien + cincuenta + diez from efectivos where caja_id = ?";
PreparedStatement ps = conn.prepareStatement(query);
ps.setInt(1, caja.getId());
LOGGER.log(Level.FINE, "QUERY: {0} | values: {1}", new Object[]{query, caja.getId()});
ResultSet rs = ps.executeQuery();
rs.next();
total = rs.getInt(1);
rs.close();
ps.close();
} catch (SQLException e) {
LOGGER.log(Level.SEVERE, e.toString(), e);
}
return total;
ResultSet rs = ps.executeQuery();
rs.next();
total = rs.getInt(1);
rs.close();
ps.close();
} catch (SQLException e) {
LOGGER.log(Level.SEVERE, e.toString(), e);
}
return total;
}
}

View File

@@ -29,70 +29,70 @@ import danielcortes.xyz.models.tipo_egreso.TipoEgreso;
public class Egreso {
private int id;
private String nro;
private String descripcion;
private int valor;
private TipoEgreso tipoEgreso;
private Caja caja;
private int id;
private String nro;
private String descripcion;
private int valor;
private TipoEgreso tipoEgreso;
private Caja caja;
public int getId() {
return id;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public void setId(int id) {
this.id = id;
}
public String getNro() {
return nro;
}
public String getNro() {
return nro;
}
public void setNro(String nro) {
this.nro = nro;
}
public void setNro(String nro) {
this.nro = nro;
}
public String getDescripcion() {
return descripcion;
}
public String getDescripcion() {
return descripcion;
}
public void setDescripcion(String descripcion) {
this.descripcion = descripcion;
}
public void setDescripcion(String descripcion) {
this.descripcion = descripcion;
}
public int getValor() {
return valor;
}
public int getValor() {
return valor;
}
public void setValor(int valor) {
this.valor = valor;
}
public void setValor(int valor) {
this.valor = valor;
}
public TipoEgreso getTipoEgreso() {
return tipoEgreso;
}
public TipoEgreso getTipoEgreso() {
return tipoEgreso;
}
public void setTipoEgreso(TipoEgreso tipoEgreso) {
this.tipoEgreso = tipoEgreso;
}
public void setTipoEgreso(TipoEgreso tipoEgreso) {
this.tipoEgreso = tipoEgreso;
}
public Caja getCaja() {
return caja;
}
public Caja getCaja() {
return caja;
}
public void setCaja(Caja caja) {
this.caja = caja;
}
public void setCaja(Caja caja) {
this.caja = caja;
}
@Override
public String toString() {
return "Egreso{" +
"id=" + id +
", nro='" + nro + '\'' +
", descripcion='" + descripcion + '\'' +
", valor=" + valor +
", tipoEgreso=" + tipoEgreso +
", caja=" + caja +
'}';
}
@Override
public String toString() {
return "Egreso{" +
"id=" + id +
", nro='" + nro + '\'' +
", descripcion='" + descripcion + '\'' +
", valor=" + valor +
", tipoEgreso=" + tipoEgreso +
", caja=" + caja +
'}';
}
}

View File

@@ -31,7 +31,6 @@ import danielcortes.xyz.models.caja.SQLiteCajaDAO;
import danielcortes.xyz.models.tipo_egreso.SQLiteTipoEgresoDAO;
import danielcortes.xyz.models.tipo_egreso.TipoEgreso;
import danielcortes.xyz.models.tipo_egreso.TipoEgresoDAO;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.time.YearMonth;
@@ -41,54 +40,55 @@ import java.util.logging.Level;
import java.util.logging.Logger;
public abstract class EgresoDAO {
private static final Logger LOGGER = Logger.getLogger(EgresoDAO.class.getName());
protected ConnectionHolder connectionHolder;
private static final Logger LOGGER = Logger.getLogger(EgresoDAO.class.getName());
public abstract List<Egreso> findAll();
protected ConnectionHolder connectionHolder;
public abstract List<Egreso> findById(int id);
public abstract List<Egreso> findAll();
public abstract List<Egreso> findByCaja(Caja caja);
public abstract List<Egreso> findById(int id);
public abstract List<Egreso> findByNro(String nro);
public abstract List<Egreso> findByCaja(Caja caja);
public abstract List<Egreso> findByTipoEgreso(TipoEgreso tipoEgreso);
public abstract List<Egreso> findByNro(String nro);
public abstract boolean insertEgreso(Egreso egreso);
public abstract List<Egreso> findByTipoEgreso(TipoEgreso tipoEgreso);
public abstract boolean updateEgreso(Egreso egreso);
public abstract boolean insertEgreso(Egreso egreso);
public abstract boolean deleteEgreso(Egreso egreso);
public abstract boolean updateEgreso(Egreso egreso);
public abstract int getTotalEgreso(Caja caja);
public abstract boolean deleteEgreso(Egreso egreso);
public abstract int getTotalEgresoMesPorTipo(YearMonth mes, TipoEgreso tipo);
public abstract int getTotalEgreso(Caja caja);
List<Egreso> egresosFromResultSet(ResultSet rs) throws SQLException {
ArrayList<Egreso> egresoList = new ArrayList<>();
while (rs.next()) {
int tipoEgresoId = rs.getInt("tipo_egreso_id");
TipoEgresoDAO tipoEgresoDAO = new SQLiteTipoEgresoDAO();
TipoEgreso tipoEgreso = tipoEgresoDAO.findById(tipoEgresoId).get(0);
public abstract int getTotalEgresoMesPorTipo(YearMonth mes, TipoEgreso tipo);
int cajaId = rs.getInt("caja_id");
CajaDAO cajaDAO = new SQLiteCajaDAO();
Caja caja = cajaDAO.getById(cajaId).get();
List<Egreso> egresosFromResultSet(ResultSet rs) throws SQLException {
ArrayList<Egreso> egresoList = new ArrayList<>();
while (rs.next()) {
int tipoEgresoId = rs.getInt("tipo_egreso_id");
TipoEgresoDAO tipoEgresoDAO = new SQLiteTipoEgresoDAO();
TipoEgreso tipoEgreso = tipoEgresoDAO.findById(tipoEgresoId).get(0);
Egreso egreso = new Egreso();
int cajaId = rs.getInt("caja_id");
CajaDAO cajaDAO = new SQLiteCajaDAO();
Caja caja = cajaDAO.getById(cajaId).get();
egreso.setId(rs.getInt("id"));
egreso.setNro(rs.getString("nro"));
egreso.setDescripcion(rs.getString("descripcion"));
egreso.setValor(rs.getInt("valor"));
egreso.setTipoEgreso(tipoEgreso);
egreso.setCaja(caja);
Egreso egreso = new Egreso();
LOGGER.log(Level.FINER, "Se a creado: {0}", egreso);
egreso.setId(rs.getInt("id"));
egreso.setNro(rs.getString("nro"));
egreso.setDescripcion(rs.getString("descripcion"));
egreso.setValor(rs.getInt("valor"));
egreso.setTipoEgreso(tipoEgreso);
egreso.setCaja(caja);
egresoList.add(egreso);
}
return egresoList;
LOGGER.log(Level.FINER, "Se a creado: {0}", egreso);
egresoList.add(egreso);
}
return egresoList;
}
}

View File

@@ -27,7 +27,6 @@ package danielcortes.xyz.models.egreso;
import danielcortes.xyz.data.SQLiteConnectionHolder;
import danielcortes.xyz.models.caja.Caja;
import danielcortes.xyz.models.tipo_egreso.TipoEgreso;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
@@ -40,237 +39,243 @@ import java.util.logging.Level;
import java.util.logging.Logger;
public class SQLiteEgresoDAO extends EgresoDAO {
private static final Logger LOGGER = Logger.getLogger(SQLiteEgresoDAO.class.getName());
public SQLiteEgresoDAO() {
this.connectionHolder = new SQLiteConnectionHolder();
private static final Logger LOGGER = Logger.getLogger(SQLiteEgresoDAO.class.getName());
public SQLiteEgresoDAO() {
this.connectionHolder = new SQLiteConnectionHolder();
}
@Override
public List<Egreso> findAll() {
List<Egreso> egresoList = new ArrayList<>();
try (Connection conn = connectionHolder.getConnection()) {
String query = "select * from egresos";
PreparedStatement ps = conn.prepareStatement(query);
ResultSet rs = ps.executeQuery();
LOGGER.log(Level.FINE, "QUERY: {0}", query);
egresoList = this.egresosFromResultSet(rs);
rs.close();
ps.close();
} catch (SQLException e) {
LOGGER.log(Level.SEVERE, e.toString(), e);
}
return egresoList;
}
@Override
public List<Egreso> findAll() {
List<Egreso> egresoList = new ArrayList<>();
try (Connection conn = connectionHolder.getConnection()) {
String query = "select * from egresos";
PreparedStatement ps = conn.prepareStatement(query);
ResultSet rs = ps.executeQuery();
@Override
public List<Egreso> findById(int id) {
List<Egreso> egresoList = new ArrayList<>();
try (Connection conn = connectionHolder.getConnection()) {
String query = "select * from egresos where id = ?";
PreparedStatement ps = conn.prepareStatement(query);
ps.setInt(1, id);
ResultSet rs = ps.executeQuery();
LOGGER.log(Level.FINE, "QUERY: {0}", query);
LOGGER.log(Level.FINE, "QUERY: {0} | values: {1}", new Object[]{query, id});
egresoList = this.egresosFromResultSet(rs);
egresoList = this.egresosFromResultSet(rs);
rs.close();
ps.close();
} catch (SQLException e) {
LOGGER.log(Level.SEVERE, e.toString(), e);
}
return egresoList;
rs.close();
ps.close();
} catch (SQLException e) {
LOGGER.log(Level.SEVERE, e.toString(), e);
}
return egresoList;
}
@Override
public List<Egreso> findById(int id) {
List<Egreso> egresoList = new ArrayList<>();
try (Connection conn = connectionHolder.getConnection()) {
String query = "select * from egresos where id = ?";
PreparedStatement ps = conn.prepareStatement(query);
ps.setInt(1, id);
ResultSet rs = ps.executeQuery();
@Override
public List<Egreso> findByCaja(Caja caja) {
List<Egreso> egresoList = new ArrayList<>();
try (Connection conn = connectionHolder.getConnection()) {
String query = "select * from egresos where caja_id = ?";
PreparedStatement ps = conn.prepareStatement(query);
ps.setInt(1, caja.getId());
ResultSet rs = ps.executeQuery();
LOGGER.log(Level.FINE, "QUERY: {0} | values: {1}", new Object[]{query, id});
LOGGER.log(Level.FINE, "QUERY: {0} | values: {1}", new Object[]{query, caja.getId()});
egresoList = this.egresosFromResultSet(rs);
egresoList = this.egresosFromResultSet(rs);
rs.close();
ps.close();
} catch (SQLException e) {
LOGGER.log(Level.SEVERE, e.toString(), e);
}
return egresoList;
rs.close();
ps.close();
} catch (SQLException e) {
LOGGER.log(Level.SEVERE, e.toString(), e);
}
return egresoList;
}
@Override
public List<Egreso> findByCaja(Caja caja) {
List<Egreso> egresoList = new ArrayList<>();
try (Connection conn = connectionHolder.getConnection()) {
String query = "select * from egresos where caja_id = ?";
PreparedStatement ps = conn.prepareStatement(query);
ps.setInt(1, caja.getId());
ResultSet rs = ps.executeQuery();
@Override
public List<Egreso> findByNro(String nro) {
List<Egreso> egresoList = new ArrayList<>();
try (Connection conn = connectionHolder.getConnection()) {
String query = "select * from egresos where nro = ?";
PreparedStatement ps = conn.prepareStatement(query);
ps.setString(1, nro);
ResultSet rs = ps.executeQuery();
LOGGER.log(Level.FINE, "QUERY: {0} | values: {1}", new Object[]{query, caja.getId()});
LOGGER.log(Level.FINE, "QUERY: {0} | values {1}", new Object[]{query, nro});
egresoList = this.egresosFromResultSet(rs);
egresoList = this.egresosFromResultSet(rs);
rs.close();
ps.close();
} catch (SQLException e) {
LOGGER.log(Level.SEVERE, e.toString(), e);
}
return egresoList;
rs.close();
ps.close();
} catch (SQLException e) {
LOGGER.log(Level.SEVERE, e.toString(), e);
}
return egresoList;
}
@Override
public List<Egreso> findByNro(String nro) {
List<Egreso> egresoList = new ArrayList<>();
try (Connection conn = connectionHolder.getConnection()) {
String query = "select * from egresos where nro = ?";
PreparedStatement ps = conn.prepareStatement(query);
ps.setString(1, nro);
ResultSet rs = ps.executeQuery();
@Override
public List<Egreso> findByTipoEgreso(TipoEgreso tipoEgreso) {
List<Egreso> egresoList = new ArrayList<>();
try (Connection conn = connectionHolder.getConnection()) {
String query = "select * from egresos where tipo_egreso_id = ?";
PreparedStatement ps = conn.prepareStatement(query);
ps.setInt(1, tipoEgreso.getId());
ResultSet rs = ps.executeQuery();
LOGGER.log(Level.FINE, "QUERY: {0} | values {1}", new Object[]{query, nro});
LOGGER.log(Level.FINE, "QUERY: {0} | values: {1}", new Object[]{query, tipoEgreso.getId()});
egresoList = this.egresosFromResultSet(rs);
egresoList = this.egresosFromResultSet(rs);
rs.close();
ps.close();
} catch (SQLException e) {
LOGGER.log(Level.SEVERE, e.toString(), e);
}
return egresoList;
rs.close();
ps.close();
} catch (SQLException e) {
LOGGER.log(Level.SEVERE, e.toString(), e);
}
return egresoList;
}
@Override
public List<Egreso> findByTipoEgreso(TipoEgreso tipoEgreso) {
List<Egreso> egresoList = new ArrayList<>();
try (Connection conn = connectionHolder.getConnection()) {
String query = "select * from egresos where tipo_egreso_id = ?";
PreparedStatement ps = conn.prepareStatement(query);
ps.setInt(1, tipoEgreso.getId());
ResultSet rs = ps.executeQuery();
@Override
public boolean insertEgreso(Egreso egreso) {
int updates;
try (Connection conn = connectionHolder.getConnection()) {
String query = "insert into egresos (nro, descripcion, valor, tipo_egreso_id, caja_id) values (?,?,?,?,?)";
PreparedStatement ps = conn.prepareStatement(query);
ps.setString(1, egreso.getNro());
ps.setString(2, egreso.getDescripcion());
ps.setInt(3, egreso.getValor());
ps.setInt(4, egreso.getTipoEgreso().getId());
ps.setInt(5, egreso.getCaja().getId());
updates = ps.executeUpdate();
LOGGER.log(Level.FINE, "QUERY: {0} | values: {1}", new Object[]{query, tipoEgreso.getId()});
LOGGER.log(Level.FINE, "QUERY: {0} | values: [{1}, {2}, {3}, {4}, {5}] | updates: {6}",
new Object[]{query, egreso.getNro(), egreso.getDescripcion(), egreso.getValor(),
egreso.getTipoEgreso().getId(), egreso.getCaja().getId(), updates});
egresoList = this.egresosFromResultSet(rs);
ps.close();
rs.close();
ps.close();
} catch (SQLException e) {
LOGGER.log(Level.SEVERE, e.toString(), e);
}
return egresoList;
ps = conn.prepareStatement("select last_insert_rowid()");
ResultSet rs = ps.executeQuery();
rs.next();
egreso.setId(rs.getInt(1));
rs.close();
} catch (SQLException e) {
LOGGER.log(Level.SEVERE, e.toString(), e);
return false;
}
return updates > 0;
}
@Override
public boolean insertEgreso(Egreso egreso) {
int updates;
try (Connection conn = connectionHolder.getConnection()) {
String query = "insert into egresos (nro, descripcion, valor, tipo_egreso_id, caja_id) values (?,?,?,?,?)";
PreparedStatement ps = conn.prepareStatement(query);
ps.setString(1, egreso.getNro());
ps.setString(2, egreso.getDescripcion());
ps.setInt(3, egreso.getValor());
ps.setInt(4, egreso.getTipoEgreso().getId());
ps.setInt(5, egreso.getCaja().getId());
updates = ps.executeUpdate();
@Override
public boolean updateEgreso(Egreso egreso) {
int updates;
try (Connection conn = connectionHolder.getConnection()) {
String query = "update egresos set nro = ?, descripcion = ?, valor = ?, tipo_egreso_id = ?, caja_id = ? where id = ? ";
PreparedStatement ps = conn.prepareStatement(query);
ps.setString(1, egreso.getNro());
ps.setString(2, egreso.getDescripcion());
ps.setInt(3, egreso.getValor());
ps.setInt(4, egreso.getTipoEgreso().getId());
ps.setInt(5, egreso.getCaja().getId());
ps.setInt(6, egreso.getId());
updates = ps.executeUpdate();
LOGGER.log(Level.FINE, "QUERY: {0} | values: [{1}, {2}, {3}, {4}, {5}] | updates: {6}", new Object[]{query, egreso.getNro(), egreso.getDescripcion(), egreso.getValor(), egreso.getTipoEgreso().getId(), egreso.getCaja().getId(), updates});
LOGGER.log(Level.FINE, "QUERY: {0} | values: [{1}, {2}, {3}, {4}, {5}, {6}] | updates: {7}",
new Object[]{query, egreso.getNro(), egreso.getDescripcion(), egreso.getValor(),
egreso.getTipoEgreso().getId(), egreso.getCaja().getId(), egreso.getId(), updates});
ps.close();
ps = conn.prepareStatement("select last_insert_rowid()");
ResultSet rs = ps.executeQuery();
rs.next();
egreso.setId(rs.getInt(1));
rs.close();
} catch (SQLException e) {
LOGGER.log(Level.SEVERE, e.toString(), e);
return false;
}
return updates > 0;
ps.close();
} catch (SQLException e) {
LOGGER.log(Level.SEVERE, e.toString(), e);
return false;
}
return updates > 0;
}
@Override
public boolean updateEgreso(Egreso egreso) {
int updates;
try (Connection conn = connectionHolder.getConnection()) {
String query = "update egresos set nro = ?, descripcion = ?, valor = ?, tipo_egreso_id = ?, caja_id = ? where id = ? ";
PreparedStatement ps = conn.prepareStatement(query);
ps.setString(1, egreso.getNro());
ps.setString(2, egreso.getDescripcion());
ps.setInt(3, egreso.getValor());
ps.setInt(4, egreso.getTipoEgreso().getId());
ps.setInt(5, egreso.getCaja().getId());
ps.setInt(6, egreso.getId());
updates = ps.executeUpdate();
@Override
public boolean deleteEgreso(Egreso egreso) {
int updates;
try (Connection conn = connectionHolder.getConnection()) {
String query = "delete from egresos where id = ? ";
PreparedStatement ps = conn.prepareStatement(query);
ps.setInt(1, egreso.getId());
updates = ps.executeUpdate();
LOGGER.log(Level.FINE, "QUERY: {0} | values: [{1}, {2}, {3}, {4}, {5}, {6}] | updates: {7}", new Object[]{query, egreso.getNro(), egreso.getDescripcion(), egreso.getValor(), egreso.getTipoEgreso().getId(), egreso.getCaja().getId(), egreso.getId(), updates});
LOGGER.log(Level.FINE, "QUERY: {0} | values: {1} | updates: {2}",
new Object[]{query, egreso.getId(), updates});
ps.close();
} catch (SQLException e) {
LOGGER.log(Level.SEVERE, e.toString(), e);
return false;
}
return updates > 0;
ps.close();
} catch (SQLException e) {
LOGGER.log(Level.SEVERE, e.toString(), e);
return false;
}
return updates > 0;
}
@Override
public boolean deleteEgreso(Egreso egreso) {
int updates;
try (Connection conn = connectionHolder.getConnection()) {
String query = "delete from egresos where id = ? ";
PreparedStatement ps = conn.prepareStatement(query);
ps.setInt(1, egreso.getId());
updates = ps.executeUpdate();
@Override
public int getTotalEgreso(Caja caja) {
int total = 0;
try (Connection conn = connectionHolder.getConnection()) {
String query = "select sum(valor) from egresos where caja_id = ?";
PreparedStatement ps = conn.prepareStatement(query);
ps.setInt(1, caja.getId());
ResultSet rs = ps.executeQuery();
LOGGER.log(Level.FINE, "QUERY: {0} | values: {1} | updates: {2}", new Object[]{query, egreso.getId(), updates});
LOGGER.log(Level.FINE, "QUERY: {0} | values: {1}", new Object[]{query, caja.getId()});
ps.close();
} catch (SQLException e) {
LOGGER.log(Level.SEVERE, e.toString(), e);
return false;
}
return updates > 0;
rs.next();
total = rs.getInt(1);
rs.close();
ps.close();
} catch (SQLException e) {
LOGGER.log(Level.SEVERE, e.toString(), e);
}
return total;
}
@Override
public int getTotalEgreso(Caja caja) {
int total = 0;
try (Connection conn = connectionHolder.getConnection()) {
String query = "select sum(valor) from egresos where caja_id = ?";
PreparedStatement ps = conn.prepareStatement(query);
ps.setInt(1, caja.getId());
ResultSet rs = ps.executeQuery();
@Override
public int getTotalEgresoMesPorTipo(YearMonth mes, TipoEgreso tipo) {
int total = 0;
try (Connection conn = connectionHolder.getConnection()) {
LocalDate start = mes.atDay(1);
LocalDate end = mes.atEndOfMonth();
String query = "select sum(valor) from egresos inner join caja on (egresos.caja_id = caja.id) where fecha between ? and ? and tipo_egreso_id = ?";
PreparedStatement ps = conn.prepareStatement(query);
ps.setString(1, start.toString());
ps.setString(2, end.toString());
ps.setInt(3, tipo.getId());
ResultSet rs = ps.executeQuery();
LOGGER.log(Level.FINE, "QUERY: {0} | values: {1}", new Object[]{query, caja.getId()});
LOGGER.log(Level.FINE, "QUERY: {0} | values: {1}, {2}, {3}",
new Object[]{query, start, end, tipo});
rs.next();
total = rs.getInt(1);
rs.next();
total = rs.getInt(1);
rs.close();
ps.close();
} catch (SQLException e) {
LOGGER.log(Level.SEVERE, e.toString(), e);
}
return total;
}
@Override
public int getTotalEgresoMesPorTipo(YearMonth mes, TipoEgreso tipo) {
int total = 0;
try (Connection conn = connectionHolder.getConnection()) {
LocalDate start = mes.atDay(1);
LocalDate end = mes.atEndOfMonth();
String query = "select sum(valor) from egresos inner join caja on (egresos.caja_id = caja.id) where fecha between ? and ? and tipo_egreso_id = ?";
PreparedStatement ps = conn.prepareStatement(query);
ps.setString(1, start.toString());
ps.setString(2, end.toString());
ps.setInt(3, tipo.getId());
ResultSet rs = ps.executeQuery();
LOGGER.log(Level.FINE, "QUERY: {0} | values: {1}, {2}, {3}", new Object[]{query, start, end, tipo});
rs.next();
total = rs.getInt(1);
rs.close();
ps.close();
} catch (SQLException e) {
LOGGER.log(Level.SEVERE, e.toString(), e);
}
return total;
rs.close();
ps.close();
} catch (SQLException e) {
LOGGER.log(Level.SEVERE, e.toString(), e);
}
return total;
}
}

View File

@@ -3,199 +3,200 @@ package danielcortes.xyz.models.estado_resultado;
import java.time.YearMonth;
public class EstadoResultado {
public static final EstadoResultado emptyEstadoResultado;
static {
emptyEstadoResultado = new EstadoResultado();
emptyEstadoResultado.costoVenta = 0;
emptyEstadoResultado.cuentaCorrienteBoleta = 0;
emptyEstadoResultado.cuentaCorrienteFactura = 0;
emptyEstadoResultado.cuentaCorrienteSinRespaldo = 0;
emptyEstadoResultado.remuneraciones = 0;
emptyEstadoResultado.finiquitos = 0;
emptyEstadoResultado.aguinaldo = 0;
emptyEstadoResultado.bonosPersonal = 0;
emptyEstadoResultado.honorariosContador = 0;
emptyEstadoResultado.arriendo = 0;
emptyEstadoResultado.agua = 0;
emptyEstadoResultado.luz = 0;
emptyEstadoResultado.gas = 0;
emptyEstadoResultado.telefono = 0;
emptyEstadoResultado.otroServicio = 0;
emptyEstadoResultado.ppm = 0d;
emptyEstadoResultado.ivaFavor = 0;
}
public static final EstadoResultado emptyEstadoResultado;
private int id;
private YearMonth mes;
private int costoVenta;
private int cuentaCorrienteFactura;
private int cuentaCorrienteBoleta;
private int cuentaCorrienteSinRespaldo;
private int remuneraciones;
private int finiquitos;
private int aguinaldo;
private int bonosPersonal;
private int honorariosContador;
private int arriendo;
private int agua;
private int luz;
private int gas;
private int telefono;
private int otroServicio;
private double ppm;
private int ivaFavor;
static {
emptyEstadoResultado = new EstadoResultado();
emptyEstadoResultado.costoVenta = 0;
emptyEstadoResultado.cuentaCorrienteBoleta = 0;
emptyEstadoResultado.cuentaCorrienteFactura = 0;
emptyEstadoResultado.cuentaCorrienteSinRespaldo = 0;
emptyEstadoResultado.remuneraciones = 0;
emptyEstadoResultado.finiquitos = 0;
emptyEstadoResultado.aguinaldo = 0;
emptyEstadoResultado.bonosPersonal = 0;
emptyEstadoResultado.honorariosContador = 0;
emptyEstadoResultado.arriendo = 0;
emptyEstadoResultado.agua = 0;
emptyEstadoResultado.luz = 0;
emptyEstadoResultado.gas = 0;
emptyEstadoResultado.telefono = 0;
emptyEstadoResultado.otroServicio = 0;
emptyEstadoResultado.ppm = 0d;
emptyEstadoResultado.ivaFavor = 0;
}
public int getId() {
return id;
}
private int id;
private YearMonth mes;
private int costoVenta;
private int cuentaCorrienteFactura;
private int cuentaCorrienteBoleta;
private int cuentaCorrienteSinRespaldo;
private int remuneraciones;
private int finiquitos;
private int aguinaldo;
private int bonosPersonal;
private int honorariosContador;
private int arriendo;
private int agua;
private int luz;
private int gas;
private int telefono;
private int otroServicio;
private double ppm;
private int ivaFavor;
public void setId(int id) {
this.id = id;
}
public int getId() {
return id;
}
public YearMonth getMes() {
return mes;
}
public void setId(int id) {
this.id = id;
}
public void setMes(YearMonth mes) {
this.mes = mes;
}
public YearMonth getMes() {
return mes;
}
public int getCostoVenta() {
return costoVenta;
}
public void setMes(YearMonth mes) {
this.mes = mes;
}
public void setCostoVenta(int costoVenta) {
this.costoVenta = costoVenta;
}
public int getCostoVenta() {
return costoVenta;
}
public int getCuentaCorrienteFactura() {
return cuentaCorrienteFactura;
}
public void setCostoVenta(int costoVenta) {
this.costoVenta = costoVenta;
}
public void setCuentaCorrienteFactura(int cuentaCorrienteFactura) {
this.cuentaCorrienteFactura = cuentaCorrienteFactura;
}
public int getCuentaCorrienteFactura() {
return cuentaCorrienteFactura;
}
public int getCuentaCorrienteBoleta() {
return cuentaCorrienteBoleta;
}
public void setCuentaCorrienteFactura(int cuentaCorrienteFactura) {
this.cuentaCorrienteFactura = cuentaCorrienteFactura;
}
public void setCuentaCorrienteBoleta(int cuentaCorrienteBoleta) {
this.cuentaCorrienteBoleta = cuentaCorrienteBoleta;
}
public int getCuentaCorrienteBoleta() {
return cuentaCorrienteBoleta;
}
public int getCuentaCorrienteSinRespaldo() {
return cuentaCorrienteSinRespaldo;
}
public void setCuentaCorrienteBoleta(int cuentaCorrienteBoleta) {
this.cuentaCorrienteBoleta = cuentaCorrienteBoleta;
}
public void setCuentaCorrienteSinRespaldo(int cuentaCorrienteSinRespaldo) {
this.cuentaCorrienteSinRespaldo = cuentaCorrienteSinRespaldo;
}
public int getCuentaCorrienteSinRespaldo() {
return cuentaCorrienteSinRespaldo;
}
public int getRemuneraciones() {
return remuneraciones;
}
public void setCuentaCorrienteSinRespaldo(int cuentaCorrienteSinRespaldo) {
this.cuentaCorrienteSinRespaldo = cuentaCorrienteSinRespaldo;
}
public void setRemuneraciones(int remuneraciones) {
this.remuneraciones = remuneraciones;
}
public int getRemuneraciones() {
return remuneraciones;
}
public int getFiniquitos() {
return finiquitos;
}
public void setRemuneraciones(int remuneraciones) {
this.remuneraciones = remuneraciones;
}
public void setFiniquitos(int finiquitos) {
this.finiquitos = finiquitos;
}
public int getFiniquitos() {
return finiquitos;
}
public int getAguinaldo() {
return aguinaldo;
}
public void setFiniquitos(int finiquitos) {
this.finiquitos = finiquitos;
}
public void setAguinaldo(int aguinaldo) {
this.aguinaldo = aguinaldo;
}
public int getAguinaldo() {
return aguinaldo;
}
public int getBonosPersonal() {
return bonosPersonal;
}
public void setAguinaldo(int aguinaldo) {
this.aguinaldo = aguinaldo;
}
public void setBonosPersonal(int bonosPersonal) {
this.bonosPersonal = bonosPersonal;
}
public int getBonosPersonal() {
return bonosPersonal;
}
public int getHonorariosContador() {
return honorariosContador;
}
public void setBonosPersonal(int bonosPersonal) {
this.bonosPersonal = bonosPersonal;
}
public void setHonorariosContador(int honorariosContador) {
this.honorariosContador = honorariosContador;
}
public int getHonorariosContador() {
return honorariosContador;
}
public int getArriendo() {
return arriendo;
}
public void setHonorariosContador(int honorariosContador) {
this.honorariosContador = honorariosContador;
}
public void setArriendo(int arriendo) {
this.arriendo = arriendo;
}
public int getArriendo() {
return arriendo;
}
public int getAgua() {
return agua;
}
public void setArriendo(int arriendo) {
this.arriendo = arriendo;
}
public void setAgua(int agua) {
this.agua = agua;
}
public int getAgua() {
return agua;
}
public int getLuz() {
return luz;
}
public void setAgua(int agua) {
this.agua = agua;
}
public void setLuz(int luz) {
this.luz = luz;
}
public int getLuz() {
return luz;
}
public int getGas() {
return gas;
}
public void setLuz(int luz) {
this.luz = luz;
}
public void setGas(int gas) {
this.gas = gas;
}
public int getGas() {
return gas;
}
public int getTelefono() {
return telefono;
}
public void setGas(int gas) {
this.gas = gas;
}
public void setTelefono(int telefono) {
this.telefono = telefono;
}
public int getTelefono() {
return telefono;
}
public int getOtroServicio() {
return otroServicio;
}
public void setTelefono(int telefono) {
this.telefono = telefono;
}
public void setOtroServicio(int otroServicio) {
this.otroServicio = otroServicio;
}
public int getOtroServicio() {
return otroServicio;
}
public double getPpm() {
return ppm;
}
public void setOtroServicio(int otroServicio) {
this.otroServicio = otroServicio;
}
public void setPpm(double ppm) {
this.ppm = ppm;
}
public double getPpm() {
return ppm;
}
public void setIvaFavor(int ivaFavor) {
this.ivaFavor = ivaFavor;
}
public void setPpm(double ppm) {
this.ppm = ppm;
}
public int getIvaFavor() {
return ivaFavor;
}
public int getIvaFavor() {
return ivaFavor;
}
public void setIvaFavor(int ivaFavor) {
this.ivaFavor = ivaFavor;
}
}

View File

@@ -1,7 +1,6 @@
package danielcortes.xyz.models.estado_resultado;
import danielcortes.xyz.models.egreso.EgresoDAO;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.time.LocalDate;
@@ -11,45 +10,49 @@ import java.util.List;
import java.util.logging.Logger;
public abstract class EstadoResultadoDAO {
protected static final Logger LOGGER = Logger.getLogger(EgresoDAO.class.getName());
protected static final Logger LOGGER = Logger.getLogger(EgresoDAO.class.getName());
public abstract List<EstadoResultado> findAll();
public abstract List<EstadoResultado> findAll();
public abstract EstadoResultado findById(int id);
public abstract EstadoResultado findByMonth(YearMonth month);
public abstract EstadoResultado findById(int id);
public abstract boolean insertEstadoResultado(EstadoResultado estadoResultado);
public abstract boolean updateEstadoResultado(EstadoResultado estadoResultado);
public abstract boolean deleteEstadoResultado(EstadoResultado estadoResultado);
public abstract EstadoResultado findByMonth(YearMonth month);
List<EstadoResultado> estadoResultadosFromResultSet(ResultSet rs) throws SQLException {
List<EstadoResultado> estadoResultadoList = new ArrayList<>();
public abstract boolean insertEstadoResultado(EstadoResultado estadoResultado);
while(rs.next()) {
EstadoResultado estadoResultado = new EstadoResultado();
estadoResultado.setId(rs.getInt("id"));
estadoResultado.setMes(YearMonth.from(LocalDate.parse(rs.getString("mes"))));
estadoResultado.setCostoVenta(rs.getInt("costo_venta"));
estadoResultado.setCuentaCorrienteFactura(rs.getInt("cuenta_corriente_factura"));
estadoResultado.setCuentaCorrienteBoleta(rs.getInt("cuenta_corriente_boleta"));
estadoResultado.setCuentaCorrienteSinRespaldo(rs.getInt("cuenta_corriente_sin_respaldo"));
estadoResultado.setRemuneraciones(rs.getInt("remuneraciones"));
estadoResultado.setFiniquitos(rs.getInt("finiquitos"));
estadoResultado.setAguinaldo(rs.getInt("aguinaldo"));
estadoResultado.setBonosPersonal(rs.getInt("bonos_personal"));
estadoResultado.setHonorariosContador(rs.getInt("honorarios_contador"));
estadoResultado.setArriendo(rs.getInt("arriendo"));
estadoResultado.setAgua(rs.getInt("agua"));
estadoResultado.setLuz(rs.getInt("luz"));
estadoResultado.setGas(rs.getInt("gas"));
estadoResultado.setTelefono(rs.getInt("telefono"));
estadoResultado.setOtroServicio(rs.getInt("otro_servicio"));
estadoResultado.setPpm(rs.getDouble("ppm"));
estadoResultado.setIvaFavor(rs.getInt("ivaFavor"));
public abstract boolean updateEstadoResultado(EstadoResultado estadoResultado);
estadoResultadoList.add(estadoResultado);
}
return estadoResultadoList;
public abstract boolean deleteEstadoResultado(EstadoResultado estadoResultado);
List<EstadoResultado> estadoResultadosFromResultSet(ResultSet rs) throws SQLException {
List<EstadoResultado> estadoResultadoList = new ArrayList<>();
while (rs.next()) {
EstadoResultado estadoResultado = new EstadoResultado();
estadoResultado.setId(rs.getInt("id"));
estadoResultado.setMes(YearMonth.from(LocalDate.parse(rs.getString("mes"))));
estadoResultado.setCostoVenta(rs.getInt("costo_venta"));
estadoResultado.setCuentaCorrienteFactura(rs.getInt("cuenta_corriente_factura"));
estadoResultado.setCuentaCorrienteBoleta(rs.getInt("cuenta_corriente_boleta"));
estadoResultado.setCuentaCorrienteSinRespaldo(rs.getInt("cuenta_corriente_sin_respaldo"));
estadoResultado.setRemuneraciones(rs.getInt("remuneraciones"));
estadoResultado.setFiniquitos(rs.getInt("finiquitos"));
estadoResultado.setAguinaldo(rs.getInt("aguinaldo"));
estadoResultado.setBonosPersonal(rs.getInt("bonos_personal"));
estadoResultado.setHonorariosContador(rs.getInt("honorarios_contador"));
estadoResultado.setArriendo(rs.getInt("arriendo"));
estadoResultado.setAgua(rs.getInt("agua"));
estadoResultado.setLuz(rs.getInt("luz"));
estadoResultado.setGas(rs.getInt("gas"));
estadoResultado.setTelefono(rs.getInt("telefono"));
estadoResultado.setOtroServicio(rs.getInt("otro_servicio"));
estadoResultado.setPpm(rs.getDouble("ppm"));
estadoResultado.setIvaFavor(rs.getInt("ivaFavor"));
estadoResultadoList.add(estadoResultado);
}
return estadoResultadoList;
}
}

View File

@@ -1,7 +1,6 @@
package danielcortes.xyz.models.estado_resultado;
import danielcortes.xyz.data.SQLiteConnectionHolder;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
@@ -12,183 +11,206 @@ import java.util.List;
import java.util.logging.Level;
public class SQLiteEstadoResultadoDAO extends EstadoResultadoDAO {
private SQLiteConnectionHolder connectionHolder;
public SQLiteEstadoResultadoDAO() {
this.connectionHolder = new SQLiteConnectionHolder();
private SQLiteConnectionHolder connectionHolder;
public SQLiteEstadoResultadoDAO() {
this.connectionHolder = new SQLiteConnectionHolder();
}
@Override
public List<EstadoResultado> findAll() {
List<EstadoResultado> estadoResultadoList = new ArrayList<>();
try (Connection conn = connectionHolder.getConnection()) {
String query = "select * from estado_resultado";
PreparedStatement ps = conn.prepareStatement(query);
ResultSet rs = ps.executeQuery();
LOGGER.log(Level.FINE, "QUERY: {0}", new Object[]{query});
estadoResultadoList = this.estadoResultadosFromResultSet(rs);
rs.close();
ps.close();
} catch (SQLException e) {
LOGGER.log(Level.SEVERE, e.toString(), e);
}
return estadoResultadoList;
}
@Override
public List<EstadoResultado> findAll() {
List<EstadoResultado> estadoResultadoList = new ArrayList<>();
try (Connection conn = connectionHolder.getConnection()) {
String query = "select * from estado_resultado";
PreparedStatement ps = conn.prepareStatement(query);
ResultSet rs = ps.executeQuery();
@Override
public EstadoResultado findById(int id) {
EstadoResultado estadoResultado = null;
try (Connection conn = connectionHolder.getConnection()) {
String query = "select * from estado_resultado where id = ?";
PreparedStatement ps = conn.prepareStatement(query);
ps.setInt(1, id);
ResultSet rs = ps.executeQuery();
LOGGER.log(Level.FINE, "QUERY: {0}", new Object[]{query});
LOGGER.log(Level.FINE, "QUERY: {0} | values: {1}", new Object[]{query, id});
estadoResultadoList = this.estadoResultadosFromResultSet(rs);
estadoResultado = this.estadoResultadosFromResultSet(rs).get(0);
rs.close();
ps.close();
} catch (SQLException e) {
LOGGER.log(Level.SEVERE, e.toString(), e);
}
return estadoResultadoList;
rs.close();
ps.close();
} catch (SQLException e) {
LOGGER.log(Level.SEVERE, e.toString(), e);
}
return estadoResultado;
}
@Override
public EstadoResultado findById(int id) {
EstadoResultado estadoResultado = null;
try (Connection conn = connectionHolder.getConnection()) {
String query = "select * from estado_resultado where id = ?";
PreparedStatement ps = conn.prepareStatement(query);
ps.setInt(1, id);
ResultSet rs = ps.executeQuery();
@Override
public EstadoResultado findByMonth(YearMonth month) {
EstadoResultado estadoResultado = null;
try (Connection conn = connectionHolder.getConnection()) {
String query = "select * from estado_resultado where mes = ?";
PreparedStatement ps = conn.prepareStatement(query);
ps.setString(1, month.atDay(1).toString());
ResultSet rs = ps.executeQuery();
LOGGER.log(Level.FINE, "QUERY: {0} | values: {1}", new Object[]{query, id});
LOGGER.log(Level.FINE, "QUERY: {0} | values: {1}", new Object[]{query, month});
estadoResultado = this.estadoResultadosFromResultSet(rs).get(0);
List<EstadoResultado> estadosResultado = this.estadoResultadosFromResultSet(rs);
if (estadosResultado.size() > 0) {
estadoResultado = estadosResultado.get(0);
}
rs.close();
ps.close();
} catch (SQLException e) {
LOGGER.log(Level.SEVERE, e.toString(), e);
}
return estadoResultado;
rs.close();
ps.close();
} catch (SQLException e) {
LOGGER.log(Level.SEVERE, e.toString(), e);
}
return estadoResultado;
}
@Override
public EstadoResultado findByMonth(YearMonth month) {
EstadoResultado estadoResultado = null;
try (Connection conn = connectionHolder.getConnection()) {
String query = "select * from estado_resultado where mes = ?";
PreparedStatement ps = conn.prepareStatement(query);
ps.setString(1, month.atDay(1).toString());
ResultSet rs = ps.executeQuery();
@Override
public boolean insertEstadoResultado(EstadoResultado estadoResultado) {
int updates;
try (Connection conn = connectionHolder.getConnection()) {
String query = "insert into estado_resultado (mes, costo_venta, cuenta_corriente_factura, cuenta_corriente_boleta, cuenta_corriente_sin_respaldo, remuneraciones, finiquitos, aguinaldo, bonos_personal, honorarios_contador, arriendo, agua, luz, gas, telefono, otro_servicio, ppm, ivaFavor) values (?, ?, ?, ?, ?, ? , ?, ? , ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";
PreparedStatement ps = conn.prepareStatement(query);
LOGGER.log(Level.FINE, "QUERY: {0} | values: {1}", new Object[]{query, month});
ps.setString(1, estadoResultado.getMes().atDay(1).toString());
ps.setInt(2, estadoResultado.getCostoVenta());
ps.setInt(3, estadoResultado.getCuentaCorrienteFactura());
ps.setInt(4, estadoResultado.getCuentaCorrienteBoleta());
ps.setInt(5, estadoResultado.getCuentaCorrienteSinRespaldo());
ps.setInt(6, estadoResultado.getRemuneraciones());
ps.setInt(7, estadoResultado.getFiniquitos());
ps.setInt(8, estadoResultado.getAguinaldo());
ps.setInt(9, estadoResultado.getBonosPersonal());
ps.setInt(10, estadoResultado.getHonorariosContador());
ps.setInt(11, estadoResultado.getArriendo());
ps.setInt(12, estadoResultado.getAgua());
ps.setInt(13, estadoResultado.getLuz());
ps.setInt(14, estadoResultado.getGas());
ps.setInt(15, estadoResultado.getTelefono());
ps.setInt(16, estadoResultado.getOtroServicio());
ps.setDouble(17, estadoResultado.getPpm());
ps.setDouble(18, estadoResultado.getIvaFavor());
updates = ps.executeUpdate();
List<EstadoResultado> estadosResultado = this.estadoResultadosFromResultSet(rs);
if (estadosResultado.size() > 0) {
estadoResultado = estadosResultado.get(0);
}
LOGGER.log(Level.FINE,
"QUERY: {0} | values: [{1},{2},{3},{4},{5},{6},{7},{8},{9},{10}, {11}, {12}, {13}, {14}, {15}, {16}, {17}, {18}] | updates: {19}",
new Object[]{query, estadoResultado.getMes(), estadoResultado.getCostoVenta(),
estadoResultado.getCuentaCorrienteFactura(),
estadoResultado.getCuentaCorrienteBoleta(),
estadoResultado.getCuentaCorrienteSinRespaldo(), estadoResultado.getRemuneraciones(),
estadoResultado.getFiniquitos(), estadoResultado.getAguinaldo(),
estadoResultado.getBonosPersonal(), estadoResultado.getHonorariosContador(),
estadoResultado.getArriendo(), estadoResultado.getAgua(), estadoResultado.getLuz(),
estadoResultado.getGas(), estadoResultado.getTelefono(),
estadoResultado.getOtroServicio(), estadoResultado.getPpm(),
estadoResultado.getIvaFavor(), updates});
rs.close();
ps.close();
} catch (SQLException e) {
LOGGER.log(Level.SEVERE, e.toString(), e);
}
return estadoResultado;
ps.close();
query = "select last_insert_rowid()";
ps = conn.prepareStatement(query);
ResultSet rs = ps.executeQuery();
LOGGER.log(Level.FINE, "QUERY: {0}", query);
rs.next();
estadoResultado.setId(rs.getInt(1));
rs.close();
ps.close();
} catch (SQLException e) {
LOGGER.log(Level.SEVERE, e.toString(), e);
return false;
}
return updates > 0;
}
@Override
public boolean insertEstadoResultado(EstadoResultado estadoResultado) {
int updates;
try (Connection conn = connectionHolder.getConnection()) {
String query = "insert into estado_resultado (mes, costo_venta, cuenta_corriente_factura, cuenta_corriente_boleta, cuenta_corriente_sin_respaldo, remuneraciones, finiquitos, aguinaldo, bonos_personal, honorarios_contador, arriendo, agua, luz, gas, telefono, otro_servicio, ppm, ivaFavor) values (?, ?, ?, ?, ?, ? , ?, ? , ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";
PreparedStatement ps = conn.prepareStatement(query);
@Override
public boolean updateEstadoResultado(EstadoResultado estadoResultado) {
int updates;
try (Connection conn = connectionHolder.getConnection()) {
String query = "update estado_resultado set mes = ?, costo_venta = ?, cuenta_corriente_factura = ?, cuenta_corriente_boleta = ?, cuenta_corriente_sin_respaldo = ?, remuneraciones = ?, finiquitos = ?, aguinaldo = ?, bonos_personal = ?, honorarios_contador = ?, arriendo = ?, agua = ?, luz = ?, gas = ?, telefono = ?, otro_servicio = ?, ppm = ?, ivaFavor = ? where id = ?";
PreparedStatement ps = conn.prepareStatement(query);
ps.setString(1, estadoResultado.getMes().atDay(1).toString());
ps.setInt(2, estadoResultado.getCostoVenta());
ps.setInt(3, estadoResultado.getCuentaCorrienteFactura());
ps.setInt(4, estadoResultado.getCuentaCorrienteBoleta());
ps.setInt(5, estadoResultado.getCuentaCorrienteSinRespaldo());
ps.setInt(6, estadoResultado.getRemuneraciones());
ps.setInt(7, estadoResultado.getFiniquitos());
ps.setInt(8, estadoResultado.getAguinaldo());
ps.setInt(9, estadoResultado.getBonosPersonal());
ps.setInt(10, estadoResultado.getHonorariosContador());
ps.setInt(11, estadoResultado.getArriendo());
ps.setInt(12, estadoResultado.getAgua());
ps.setInt(13, estadoResultado.getLuz());
ps.setInt(14, estadoResultado.getGas());
ps.setInt(15, estadoResultado.getTelefono());
ps.setInt(16, estadoResultado.getOtroServicio());
ps.setDouble(17, estadoResultado.getPpm());
ps.setDouble(18, estadoResultado.getIvaFavor());
ps.setString(1, estadoResultado.getMes().atDay(1).toString());
ps.setInt(2, estadoResultado.getCostoVenta());
ps.setInt(3, estadoResultado.getCuentaCorrienteFactura());
ps.setInt(4, estadoResultado.getCuentaCorrienteBoleta());
ps.setInt(5, estadoResultado.getCuentaCorrienteSinRespaldo());
ps.setInt(6, estadoResultado.getRemuneraciones());
ps.setInt(7, estadoResultado.getFiniquitos());
ps.setInt(8, estadoResultado.getAguinaldo());
ps.setInt(9, estadoResultado.getBonosPersonal());
ps.setInt(10, estadoResultado.getHonorariosContador());
ps.setInt(11, estadoResultado.getArriendo());
ps.setInt(12, estadoResultado.getAgua());
ps.setInt(13, estadoResultado.getLuz());
ps.setInt(14, estadoResultado.getGas());
ps.setInt(15, estadoResultado.getTelefono());
ps.setInt(16, estadoResultado.getOtroServicio());
ps.setDouble(17, estadoResultado.getPpm());
ps.setDouble(18, estadoResultado.getIvaFavor());
ps.setInt(19, estadoResultado.getId());
updates = ps.executeUpdate();
updates = ps.executeUpdate();
LOGGER.log(Level.FINE, "QUERY: {0} | values: [{1},{2},{3},{4},{5},{6},{7},{8},{9},{10}, {11}, {12}, {13}, {14}, {15}, {16}, {17}, {18}] | updates: {19}", new Object[]{query, estadoResultado.getMes(), estadoResultado.getCostoVenta(), estadoResultado.getCuentaCorrienteFactura(), estadoResultado.getCuentaCorrienteBoleta(), estadoResultado.getCuentaCorrienteSinRespaldo(), estadoResultado.getRemuneraciones(), estadoResultado.getFiniquitos(), estadoResultado.getAguinaldo(), estadoResultado.getBonosPersonal(), estadoResultado.getHonorariosContador(), estadoResultado.getArriendo(), estadoResultado.getAgua(), estadoResultado.getLuz(), estadoResultado.getGas(), estadoResultado.getTelefono(), estadoResultado.getOtroServicio(), estadoResultado.getPpm(),estadoResultado.getIvaFavor(), updates});
LOGGER.log(Level.FINE,
"QUERY: {0} | values: [{1},{2},{3},{4},{5},{6},{7},{8},{9},{10}, {11}, {12}, {13}, {14}, {15}, {16}, {17}, {18}, {19}] | updates: {20}",
new Object[]{query, estadoResultado.getMes(), estadoResultado.getCostoVenta(),
estadoResultado.getCuentaCorrienteFactura(),
estadoResultado.getCuentaCorrienteBoleta(),
estadoResultado.getCuentaCorrienteSinRespaldo(), estadoResultado.getRemuneraciones(),
estadoResultado.getFiniquitos(), estadoResultado.getAguinaldo(),
estadoResultado.getBonosPersonal(), estadoResultado.getHonorariosContador(),
estadoResultado.getArriendo(), estadoResultado.getAgua(), estadoResultado.getLuz(),
estadoResultado.getGas(), estadoResultado.getTelefono(),
estadoResultado.getOtroServicio(), estadoResultado.getPpm(),
estadoResultado.getIvaFavor(), estadoResultado.getId(), updates});
ps.close();
query = "select last_insert_rowid()";
ps = conn.prepareStatement(query);
ResultSet rs = ps.executeQuery();
LOGGER.log(Level.FINE, "QUERY: {0}", query);
rs.next();
estadoResultado.setId(rs.getInt(1));
rs.close();
ps.close();
} catch (SQLException e) {
LOGGER.log(Level.SEVERE, e.toString(), e);
return false;
}
return updates > 0;
ps.close();
} catch (SQLException e) {
LOGGER.log(Level.SEVERE, e.toString(), e);
return false;
}
return updates > 0;
}
@Override
public boolean updateEstadoResultado(EstadoResultado estadoResultado) {
int updates;
try (Connection conn = connectionHolder.getConnection()) {
String query = "update estado_resultado set mes = ?, costo_venta = ?, cuenta_corriente_factura = ?, cuenta_corriente_boleta = ?, cuenta_corriente_sin_respaldo = ?, remuneraciones = ?, finiquitos = ?, aguinaldo = ?, bonos_personal = ?, honorarios_contador = ?, arriendo = ?, agua = ?, luz = ?, gas = ?, telefono = ?, otro_servicio = ?, ppm = ?, ivaFavor = ? where id = ?";
PreparedStatement ps = conn.prepareStatement(query);
@Override
public boolean deleteEstadoResultado(EstadoResultado estadoResultado) {
int updates;
try (Connection conn = connectionHolder.getConnection()) {
String query = "delete from estado_resultado where id = ?";
PreparedStatement ps = conn.prepareStatement(query);
ps.setInt(1, estadoResultado.getId());
updates = ps.executeUpdate();
ps.setString(1, estadoResultado.getMes().atDay(1).toString());
ps.setInt(2, estadoResultado.getCostoVenta());
ps.setInt(3, estadoResultado.getCuentaCorrienteFactura());
ps.setInt(4, estadoResultado.getCuentaCorrienteBoleta());
ps.setInt(5, estadoResultado.getCuentaCorrienteSinRespaldo());
ps.setInt(6, estadoResultado.getRemuneraciones());
ps.setInt(7, estadoResultado.getFiniquitos());
ps.setInt(8, estadoResultado.getAguinaldo());
ps.setInt(9, estadoResultado.getBonosPersonal());
ps.setInt(10, estadoResultado.getHonorariosContador());
ps.setInt(11, estadoResultado.getArriendo());
ps.setInt(12, estadoResultado.getAgua());
ps.setInt(13, estadoResultado.getLuz());
ps.setInt(14, estadoResultado.getGas());
ps.setInt(15, estadoResultado.getTelefono());
ps.setInt(16, estadoResultado.getOtroServicio());
ps.setDouble(17, estadoResultado.getPpm());
ps.setDouble(18, estadoResultado.getIvaFavor());
ps.setInt(19, estadoResultado.getId());
LOGGER.log(Level.FINE, "QUERY: {0} | values: {1} | updates: {2}",
new Object[]{query, estadoResultado.getId(), updates});
updates = ps.executeUpdate();
LOGGER.log(Level.FINE, "QUERY: {0} | values: [{1},{2},{3},{4},{5},{6},{7},{8},{9},{10}, {11}, {12}, {13}, {14}, {15}, {16}, {17}, {18}, {19}] | updates: {20}", new Object[]{query, estadoResultado.getMes(), estadoResultado.getCostoVenta(), estadoResultado.getCuentaCorrienteFactura(), estadoResultado.getCuentaCorrienteBoleta(), estadoResultado.getCuentaCorrienteSinRespaldo(), estadoResultado.getRemuneraciones(), estadoResultado.getFiniquitos(), estadoResultado.getAguinaldo(), estadoResultado.getBonosPersonal(), estadoResultado.getHonorariosContador(), estadoResultado.getArriendo(), estadoResultado.getAgua(), estadoResultado.getLuz(), estadoResultado.getGas(), estadoResultado.getTelefono(), estadoResultado.getOtroServicio(), estadoResultado.getPpm(),estadoResultado.getIvaFavor(), estadoResultado.getId(), updates});
ps.close();
} catch (SQLException e) {
LOGGER.log(Level.SEVERE, e.toString(), e);
return false;
}
return updates > 0;
}
@Override
public boolean deleteEstadoResultado(EstadoResultado estadoResultado) {
int updates;
try (Connection conn = connectionHolder.getConnection()) {
String query = "delete from estado_resultado where id = ?";
PreparedStatement ps = conn.prepareStatement(query);
ps.setInt(1, estadoResultado.getId());
updates = ps.executeUpdate();
LOGGER.log(Level.FINE, "QUERY: {0} | values: {1} | updates: {2}", new Object[]{query, estadoResultado.getId(), updates});
ps.close();
} catch (SQLException e) {
LOGGER.log(Level.SEVERE, e.toString(), e);
return false;
}
return updates > 0;
ps.close();
} catch (SQLException e) {
LOGGER.log(Level.SEVERE, e.toString(), e);
return false;
}
return updates > 0;
}
}

View File

@@ -27,50 +27,51 @@ package danielcortes.xyz.models.informes.egresos;
import java.time.LocalDate;
public class InformeEgresosContent {
private LocalDate fecha;
private String nro;
private String descripcion;
private int valor;
public LocalDate getFecha() {
return fecha;
}
private LocalDate fecha;
private String nro;
private String descripcion;
private int valor;
public void setFecha(LocalDate fecha) {
this.fecha = fecha;
}
public LocalDate getFecha() {
return fecha;
}
public String getNro() {
return nro;
}
public void setFecha(LocalDate fecha) {
this.fecha = fecha;
}
public void setNro(String nro) {
this.nro = nro;
}
public String getNro() {
return nro;
}
public String getDescripcion() {
return descripcion;
}
public void setNro(String nro) {
this.nro = nro;
}
public void setDescripcion(String descripcion) {
this.descripcion = descripcion;
}
public String getDescripcion() {
return descripcion;
}
public int getValor() {
return valor;
}
public void setDescripcion(String descripcion) {
this.descripcion = descripcion;
}
public void setValor(int valor) {
this.valor = valor;
}
public int getValor() {
return valor;
}
@Override
public String toString() {
return "InformeEgresosContent{" +
"fecha=" + fecha +
", nro='" + nro + '\'' +
", descripcion='" + descripcion + '\'' +
", valor=" + valor +
'}';
}
public void setValor(int valor) {
this.valor = valor;
}
@Override
public String toString() {
return "InformeEgresosContent{" +
"fecha=" + fecha +
", nro='" + nro + '\'' +
", descripcion='" + descripcion + '\'' +
", valor=" + valor +
'}';
}
}

View File

@@ -25,18 +25,19 @@
package danielcortes.xyz.models.informes.egresos;
import danielcortes.xyz.data.ConnectionHolder;
import java.time.YearMonth;
import java.util.List;
public abstract class InformeEgresosContentDAO {
protected ConnectionHolder connectionHolder;
/**
* Genera el informe con nombre muy largo
*
* @param mes mes sobre el cual se quiere le informe
* @return lista del objeto que contiene los datos necesarios para el informe
*/
public abstract List<InformeEgresosContent> getInformeEgresosFactuasMateriaPrima(YearMonth mes, int tipoEgresoId);
protected ConnectionHolder connectionHolder;
/**
* Genera el informe con nombre muy largo
*
* @param mes mes sobre el cual se quiere le informe
* @return lista del objeto que contiene los datos necesarios para el informe
*/
public abstract List<InformeEgresosContent> getInformeEgresosFactuasMateriaPrima(YearMonth mes,
int tipoEgresoId);
}

View File

@@ -25,7 +25,6 @@
package danielcortes.xyz.models.informes.egresos;
import danielcortes.xyz.data.SQLiteConnectionHolder;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
@@ -38,51 +37,54 @@ import java.util.logging.Level;
import java.util.logging.Logger;
public class SQLiteInformeEgresosContentDAO extends InformeEgresosContentDAO {
private static final Logger LOGGER = Logger.getLogger(InformeEgresosContentDAO.class.getName());
private List<InformeEgresosContent> list;
private static final Logger LOGGER = Logger.getLogger(InformeEgresosContentDAO.class.getName());
public SQLiteInformeEgresosContentDAO() {
this.connectionHolder = new SQLiteConnectionHolder();
private List<InformeEgresosContent> list;
public SQLiteInformeEgresosContentDAO() {
this.connectionHolder = new SQLiteConnectionHolder();
}
@Override
public List<InformeEgresosContent> getInformeEgresosFactuasMateriaPrima(YearMonth mes,
int tipoEgresoId) {
list = new ArrayList<>();
try (Connection conn = connectionHolder.getConnection()) {
String query = "select caja.fecha as \"fecha\"," +
"egresos.nro as \"nro\"," +
"egresos.descripcion as \"descripcion\"," +
"egresos.valor as \"valor\"" +
"from egresos inner join caja on egresos.caja_id = caja.id " +
"where caja.fecha between date(?) and date(?) and egresos.tipo_egreso_id = ? " +
"order by caja.fecha;";
PreparedStatement ps = conn.prepareStatement(query);
ps.setString(1, mes.atDay(1).toString());
ps.setString(2, mes.atEndOfMonth().toString());
ps.setInt(3, tipoEgresoId);
ResultSet rs = ps.executeQuery();
LOGGER.log(Level.FINE, "QUERY: {0} | values: [{1},{2},{3}]",
new Object[]{mes.atDay(1), mes.atEndOfMonth(), tipoEgresoId});
this.fillInforme(rs);
} catch (SQLException e) {
LOGGER.log(Level.SEVERE, e.toString(), e);
}
return list;
}
@Override
public List<InformeEgresosContent> getInformeEgresosFactuasMateriaPrima(YearMonth mes, int tipoEgresoId) {
list = new ArrayList<>();
try (Connection conn = connectionHolder.getConnection()) {
String query = "select caja.fecha as \"fecha\"," +
"egresos.nro as \"nro\"," +
"egresos.descripcion as \"descripcion\"," +
"egresos.valor as \"valor\"" +
"from egresos inner join caja on egresos.caja_id = caja.id " +
"where caja.fecha between date(?) and date(?) and egresos.tipo_egreso_id = ? " +
"order by caja.fecha;";
PreparedStatement ps = conn.prepareStatement(query);
ps.setString(1, mes.atDay(1).toString());
ps.setString(2, mes.atEndOfMonth().toString());
ps.setInt(3, tipoEgresoId);
ResultSet rs = ps.executeQuery();
LOGGER.log(Level.FINE, "QUERY: {0} | values: [{1},{2},{3}]", new Object[]{mes.atDay(1), mes.atEndOfMonth(), tipoEgresoId});
this.fillInforme(rs);
} catch (SQLException e) {
LOGGER.log(Level.SEVERE, e.toString(), e);
}
return list;
}
private void fillInforme(ResultSet rs) throws SQLException {
while (rs.next()) {
InformeEgresosContent content = new InformeEgresosContent();
content.setFecha(LocalDate.parse(rs.getString("fecha")));
content.setDescripcion(rs.getString("descripcion"));
content.setNro(rs.getString("nro"));
content.setValor(rs.getInt("valor"));
LOGGER.log(Level.FINER, "Se a creado: {0}", content);
list.add(content);
}
private void fillInforme(ResultSet rs) throws SQLException {
while (rs.next()) {
InformeEgresosContent content = new InformeEgresosContent();
content.setFecha(LocalDate.parse(rs.getString("fecha")));
content.setDescripcion(rs.getString("descripcion"));
content.setNro(rs.getString("nro"));
content.setValor(rs.getInt("valor"));
LOGGER.log(Level.FINER, "Se a creado: {0}", content);
list.add(content);
}
}
}

View File

@@ -51,222 +51,223 @@ package danielcortes.xyz.models.informes.libro_de_ventas;
import java.time.LocalDate;
public class InformeLibroDeVentasContent {
private int dia;
private LocalDate fecha;
private String manualesInicial;
private String manualesFinal;
private int manuales;
private String fiscalesZInicial;
private String fiscalesZFinal;
private String fiscalesInicial;
private String fiscalesFinal;
private int fiscales;
private String exentasInicial;
private String exentasFinal;
private int exentas;
private int subTotal;
private String facturasInicial;
private String facturasFinal;
private int facturas;
private String guiasInicial;
private String guiasFinal;
private int guias;
private int total;
public int getDia() {
return dia;
}
private int dia;
private LocalDate fecha;
private String manualesInicial;
private String manualesFinal;
private int manuales;
private String fiscalesZInicial;
private String fiscalesZFinal;
private String fiscalesInicial;
private String fiscalesFinal;
private int fiscales;
private String exentasInicial;
private String exentasFinal;
private int exentas;
private int subTotal;
private String facturasInicial;
private String facturasFinal;
private int facturas;
private String guiasInicial;
private String guiasFinal;
private int guias;
private int total;
public void setDia(int dia) {
this.dia = dia;
}
public int getDia() {
return dia;
}
public LocalDate getFecha() {
return fecha;
}
public void setDia(int dia) {
this.dia = dia;
}
public void setFecha(LocalDate fecha) {
this.fecha = fecha;
}
public LocalDate getFecha() {
return fecha;
}
public String getManualesInicial() {
return manualesInicial;
}
public void setFecha(LocalDate fecha) {
this.fecha = fecha;
}
public void setManualesInicial(String manualesInicial) {
this.manualesInicial = manualesInicial;
}
public String getManualesInicial() {
return manualesInicial;
}
public String getManualesFinal() {
public void setManualesInicial(String manualesInicial) {
this.manualesInicial = manualesInicial;
}
return manualesFinal;
}
public String getManualesFinal() {
public void setManualesFinal(String manualesFinal) {
this.manualesFinal = manualesFinal;
}
return manualesFinal;
}
public int getManuales() {
return manuales;
}
public void setManualesFinal(String manualesFinal) {
this.manualesFinal = manualesFinal;
}
public void setManuales(int manuales) {
this.manuales = manuales;
}
public int getManuales() {
return manuales;
}
public String getFiscalesZInicial() {
return fiscalesZInicial;
}
public void setManuales(int manuales) {
this.manuales = manuales;
}
public void setFiscalesZInicial(String fiscalesZInicial) {
this.fiscalesZInicial = fiscalesZInicial;
}
public String getFiscalesZInicial() {
return fiscalesZInicial;
}
public String getFiscalesZFinal() {
return fiscalesZFinal;
}
public void setFiscalesZInicial(String fiscalesZInicial) {
this.fiscalesZInicial = fiscalesZInicial;
}
public void setFiscalesZFinal(String fiscalesZFinal) {
this.fiscalesZFinal = fiscalesZFinal;
}
public String getFiscalesZFinal() {
return fiscalesZFinal;
}
public String getFiscalesInicial() {
return fiscalesInicial;
}
public void setFiscalesZFinal(String fiscalesZFinal) {
this.fiscalesZFinal = fiscalesZFinal;
}
public void setFiscalesInicial(String fiscalesInicial) {
this.fiscalesInicial = fiscalesInicial;
}
public String getFiscalesInicial() {
return fiscalesInicial;
}
public String getFiscalesFinal() {
return fiscalesFinal;
}
public void setFiscalesInicial(String fiscalesInicial) {
this.fiscalesInicial = fiscalesInicial;
}
public void setFiscalesFinal(String fiscalesFinal) {
this.fiscalesFinal = fiscalesFinal;
}
public String getFiscalesFinal() {
return fiscalesFinal;
}
public int getFiscales() {
return fiscales;
}
public void setFiscalesFinal(String fiscalesFinal) {
this.fiscalesFinal = fiscalesFinal;
}
public void setFiscales(int fiscales) {
this.fiscales = fiscales;
}
public int getFiscales() {
return fiscales;
}
public String getExentasInicial() {
return exentasInicial;
}
public void setFiscales(int fiscales) {
this.fiscales = fiscales;
}
public void setExentasInicial(String exentasInicial) {
this.exentasInicial = exentasInicial;
}
public String getExentasInicial() {
return exentasInicial;
}
public String getExentasFinal() {
return exentasFinal;
}
public void setExentasInicial(String exentasInicial) {
this.exentasInicial = exentasInicial;
}
public void setExentasFinal(String exentasFinal) {
this.exentasFinal = exentasFinal;
}
public String getExentasFinal() {
return exentasFinal;
}
public int getExentas() {
return exentas;
}
public void setExentasFinal(String exentasFinal) {
this.exentasFinal = exentasFinal;
}
public void setExentas(int exentas) {
this.exentas = exentas;
}
public int getExentas() {
return exentas;
}
public int getSubTotal() {
return subTotal;
}
public void setExentas(int exentas) {
this.exentas = exentas;
}
public void setSubTotal(int sub_total) {
this.subTotal = sub_total;
}
public int getSubTotal() {
return subTotal;
}
public String getFacturasInicial() {
return facturasInicial;
}
public void setSubTotal(int sub_total) {
this.subTotal = sub_total;
}
public void setFacturasInicial(String facturasInicial) {
this.facturasInicial = facturasInicial;
}
public String getFacturasInicial() {
return facturasInicial;
}
public String getFacturasFinal() {
return facturasFinal;
}
public void setFacturasInicial(String facturasInicial) {
this.facturasInicial = facturasInicial;
}
public void setFacturasFinal(String facturasFinal) {
this.facturasFinal = facturasFinal;
}
public String getFacturasFinal() {
return facturasFinal;
}
public int getFacturas() {
return facturas;
}
public void setFacturasFinal(String facturasFinal) {
this.facturasFinal = facturasFinal;
}
public void setFacturas(int facturas) {
this.facturas = facturas;
}
public int getFacturas() {
return facturas;
}
public String getGuiasInicial() {
return guiasInicial;
}
public void setFacturas(int facturas) {
this.facturas = facturas;
}
public void setGuiasInicial(String guiasInicial) {
this.guiasInicial = guiasInicial;
}
public String getGuiasInicial() {
return guiasInicial;
}
public String getGuiasFinal() {
return guiasFinal;
}
public void setGuiasInicial(String guiasInicial) {
this.guiasInicial = guiasInicial;
}
public void setGuiasFinal(String guiasFinal) {
this.guiasFinal = guiasFinal;
}
public String getGuiasFinal() {
return guiasFinal;
}
public int getGuias() {
return guias;
}
public void setGuiasFinal(String guiasFinal) {
this.guiasFinal = guiasFinal;
}
public void setGuias(int guias) {
this.guias = guias;
}
public int getGuias() {
return guias;
}
public int getTotal() {
return total;
}
public void setGuias(int guias) {
this.guias = guias;
}
public void setTotal(int total) {
this.total = total;
}
public int getTotal() {
return total;
}
public void setTotal(int total) {
this.total = total;
}
@Override
public String toString() {
return "InformeLibroDeVentasContent{" +
"dia=" + dia +
", fecha=" + fecha +
", manualesInicial='" + manualesInicial + '\'' +
", manualesFinal='" + manualesFinal + '\'' +
", manuales=" + manuales +
", fiscalesZInicial='" + fiscalesZInicial + '\'' +
", fiscalesZFinal='" + fiscalesZFinal + '\'' +
", fiscalesInicial='" + fiscalesInicial + '\'' +
", fiscalesFinal='" + fiscalesFinal + '\'' +
", fiscales=" + fiscales +
", exentasInicial='" + exentasInicial + '\'' +
", exentasFinal='" + exentasFinal + '\'' +
", exentas=" + exentas +
", subTotal=" + subTotal +
", facturasInicial='" + facturasInicial + '\'' +
", facturasFinal='" + facturasFinal + '\'' +
", facturas=" + facturas +
", guiasInicial='" + guiasInicial + '\'' +
", guiasFinal='" + guiasFinal + '\'' +
", guias=" + guias +
", total=" + total +
'}';
}
@Override
public String toString() {
return "InformeLibroDeVentasContent{" +
"dia=" + dia +
", fecha=" + fecha +
", manualesInicial='" + manualesInicial + '\'' +
", manualesFinal='" + manualesFinal + '\'' +
", manuales=" + manuales +
", fiscalesZInicial='" + fiscalesZInicial + '\'' +
", fiscalesZFinal='" + fiscalesZFinal + '\'' +
", fiscalesInicial='" + fiscalesInicial + '\'' +
", fiscalesFinal='" + fiscalesFinal + '\'' +
", fiscales=" + fiscales +
", exentasInicial='" + exentasInicial + '\'' +
", exentasFinal='" + exentasFinal + '\'' +
", exentas=" + exentas +
", subTotal=" + subTotal +
", facturasInicial='" + facturasInicial + '\'' +
", facturasFinal='" + facturasFinal + '\'' +
", facturas=" + facturas +
", guiasInicial='" + guiasInicial + '\'' +
", guiasFinal='" + guiasFinal + '\'' +
", guias=" + guias +
", total=" + total +
'}';
}
}

View File

@@ -25,18 +25,18 @@
package danielcortes.xyz.models.informes.libro_de_ventas;
import danielcortes.xyz.data.ConnectionHolder;
import java.time.YearMonth;
import java.util.Collection;
public abstract class InformeLibroDeVentasContentDAO {
protected ConnectionHolder connectionHolder;
/**
* Genera el contenido del informes mensual
*
* @param mes el que se necesita el informes
* @return Lista con las columnas principales necesarias para el informes
*/
public abstract Collection<InformeLibroDeVentasContent> getInformeMensual(YearMonth mes);
protected ConnectionHolder connectionHolder;
/**
* Genera el contenido del informes mensual
*
* @param mes el que se necesita el informes
* @return Lista con las columnas principales necesarias para el informes
*/
public abstract Collection<InformeLibroDeVentasContent> getInformeMensual(YearMonth mes);
}

View File

@@ -50,7 +50,6 @@ package danielcortes.xyz.models.informes.libro_de_ventas;
import danielcortes.xyz.data.SQLiteConnectionHolder;
import danielcortes.xyz.utils.NaturalOrderComparator;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
@@ -64,214 +63,226 @@ import java.util.logging.Level;
import java.util.logging.Logger;
public class SQLiteInformeLibroDeVentasContentDAO extends InformeLibroDeVentasContentDAO {
private static final Logger LOGGER = Logger.getLogger(SQLiteInformeLibroDeVentasContentDAO.class.getName());
private HashMap<Integer, InformeLibroDeVentasContent> map;
private static final Logger LOGGER = Logger
.getLogger(SQLiteInformeLibroDeVentasContentDAO.class.getName());
public SQLiteInformeLibroDeVentasContentDAO() {
this.connectionHolder = new SQLiteConnectionHolder();
private HashMap<Integer, InformeLibroDeVentasContent> map;
public SQLiteInformeLibroDeVentasContentDAO() {
this.connectionHolder = new SQLiteConnectionHolder();
}
@Override
public Collection<InformeLibroDeVentasContent> getInformeMensual(YearMonth date) {
this.map = new HashMap<>();
try (Connection conn = connectionHolder.getConnection()) {
String queryTotales =
"select " +
"caja.id as \"caja\"," +
"strftime(\"%w\", caja.fecha) as \"dia\"," +
"caja.fecha as \"fecha\"," +
"sum(case when ingresos.tipo_ingreso_id = 2 then ingresos.valor else 0 end) as \"manuales\","
+
"sum(case when ingresos.tipo_ingreso_id = 1 then ingresos.valor else 0 end) as \"fiscales\","
+
"sum(case when ingresos.tipo_ingreso_id = 5 then ingresos.valor else 0 end) as \"exentas\","
+
"sum(case when ingresos.tipo_ingreso_id in (2, 1, 5) then ingresos.valor else 0 end) as \"sub_total\","
+
"sum(case when ingresos.tipo_ingreso_id = 3 then ingresos.valor else 0 end) as \"facturas\","
+
"sum(case when ingresos.tipo_ingreso_id = 4 then ingresos.valor else 0 end) as \"guias\","
+
"sum(case when ingresos.valor not null then ingresos.valor else 0 end) as \"total\" "
+
"from caja left join ingresos on (caja.id = ingresos.caja_id) " +
"where caja.fecha between date(?) and date(?) " +
"group by caja.fecha;";
PreparedStatement ps = conn.prepareStatement(queryTotales);
ps.setString(1, date.atDay(1).toString());
ps.setString(2, date.atEndOfMonth().toString());
ResultSet rs = ps.executeQuery();
LOGGER.log(Level.FINE, "QUERY: {0} | values: [{1},{2}]",
new Object[]{queryTotales, date.atDay(1), date.atEndOfMonth()});
this.fillTotalesFromResultSet(rs);
String queryNumeros =
"select\n" +
"caja.id as \"caja\"," +
"caja.fecha as \"fecha\"," +
"ingresos.nro_inicial as \"inicial\"," +
"ingresos.nro_final as \"final\"," +
"ingresos.nro_z_inicial as \"z_inicial\"," +
"ingresos.nro_z_final as \"z_final\"," +
"ingresos.tipo_ingreso_id as \"tipo_ingreso\" " +
"from caja join ingresos on (caja.id = ingresos.caja_id) " +
"where caja.fecha between date(?) and date(?);";
ps = conn.prepareStatement(queryNumeros);
ps.setString(1, date.atDay(1).toString());
ps.setString(2, date.atEndOfMonth().toString());
rs = ps.executeQuery();
LOGGER.log(Level.FINE, "QUERY: {0} | values: [{1},{2}]",
new Object[]{queryNumeros, date.atDay(1), date.atEndOfMonth()});
this.fillBoletasFromResultSet(rs);
rs.close();
ps.close();
} catch (SQLException e) {
LOGGER.log(Level.SEVERE, e.toString(), e);
}
@Override
public Collection<InformeLibroDeVentasContent> getInformeMensual(YearMonth date) {
this.map = new HashMap<>();
try (Connection conn = connectionHolder.getConnection()) {
String queryTotales =
"select " +
"caja.id as \"caja\"," +
"strftime(\"%w\", caja.fecha) as \"dia\"," +
"caja.fecha as \"fecha\"," +
"sum(case when ingresos.tipo_ingreso_id = 2 then ingresos.valor else 0 end) as \"manuales\"," +
"sum(case when ingresos.tipo_ingreso_id = 1 then ingresos.valor else 0 end) as \"fiscales\"," +
"sum(case when ingresos.tipo_ingreso_id = 5 then ingresos.valor else 0 end) as \"exentas\"," +
"sum(case when ingresos.tipo_ingreso_id in (2, 1, 5) then ingresos.valor else 0 end) as \"sub_total\"," +
"sum(case when ingresos.tipo_ingreso_id = 3 then ingresos.valor else 0 end) as \"facturas\"," +
"sum(case when ingresos.tipo_ingreso_id = 4 then ingresos.valor else 0 end) as \"guias\"," +
"sum(case when ingresos.valor not null then ingresos.valor else 0 end) as \"total\" " +
"from caja left join ingresos on (caja.id = ingresos.caja_id) " +
"where caja.fecha between date(?) and date(?) " +
"group by caja.fecha;";
PreparedStatement ps = conn.prepareStatement(queryTotales);
ps.setString(1, date.atDay(1).toString());
ps.setString(2, date.atEndOfMonth().toString());
ResultSet rs = ps.executeQuery();
return map.values();
}
LOGGER.log(Level.FINE, "QUERY: {0} | values: [{1},{2}]", new Object[]{queryTotales, date.atDay(1), date.atEndOfMonth()});
this.fillTotalesFromResultSet(rs);
String queryNumeros =
"select\n" +
"caja.id as \"caja\"," +
"caja.fecha as \"fecha\"," +
"ingresos.nro_inicial as \"inicial\"," +
"ingresos.nro_final as \"final\"," +
"ingresos.nro_z_inicial as \"z_inicial\"," +
"ingresos.nro_z_final as \"z_final\"," +
"ingresos.tipo_ingreso_id as \"tipo_ingreso\" " +
"from caja join ingresos on (caja.id = ingresos.caja_id) " +
"where caja.fecha between date(?) and date(?);";
ps = conn.prepareStatement(queryNumeros);
ps.setString(1, date.atDay(1).toString());
ps.setString(2, date.atEndOfMonth().toString());
rs = ps.executeQuery();
LOGGER.log(Level.FINE, "QUERY: {0} | values: [{1},{2}]", new Object[]{queryNumeros, date.atDay(1), date.atEndOfMonth()});
this.fillBoletasFromResultSet(rs);
rs.close();
ps.close();
} catch (SQLException e) {
LOGGER.log(Level.SEVERE, e.toString(), e);
}
return map.values();
private void fillTotalesFromResultSet(ResultSet rs) throws SQLException {
while (rs.next()) {
InformeLibroDeVentasContent informe = new InformeLibroDeVentasContent();
informe.setDia(rs.getInt("dia"));
informe.setFecha(LocalDate.parse(rs.getString("fecha")));
informe.setManuales(rs.getInt("manuales"));
informe.setFiscales(rs.getInt("fiscales"));
informe.setExentas(rs.getInt("exentas"));
informe.setSubTotal(rs.getInt("sub_total"));
informe.setFacturas(rs.getInt("facturas"));
informe.setGuias(rs.getInt("guias"));
informe.setTotal(rs.getInt("total"));
LOGGER.log(Level.FINER, "Se a creado una linea del informe con los totales {0}", informe);
map.put(rs.getInt("caja"), informe);
}
}
private void fillTotalesFromResultSet(ResultSet rs) throws SQLException {
while (rs.next()) {
InformeLibroDeVentasContent informe = new InformeLibroDeVentasContent();
informe.setDia(rs.getInt("dia"));
informe.setFecha(LocalDate.parse(rs.getString("fecha")));
informe.setManuales(rs.getInt("manuales"));
informe.setFiscales(rs.getInt("fiscales"));
informe.setExentas(rs.getInt("exentas"));
informe.setSubTotal(rs.getInt("sub_total"));
informe.setFacturas(rs.getInt("facturas"));
informe.setGuias(rs.getInt("guias"));
informe.setTotal(rs.getInt("total"));
LOGGER.log(Level.FINER, "Se a creado una linea del informe con los totales {0}", informe);
map.put(rs.getInt("caja"), informe);
}
}
private void fillBoletasFromResultSet(ResultSet rs) throws SQLException {
Comparator<String> comparator = new NaturalOrderComparator();
while (rs.next()) {
InformeLibroDeVentasContent informe = map.get(rs.getInt("caja"));
int tipoIngreso = rs.getInt("tipo_ingreso");
switch (tipoIngreso) {
case 1:
String fiscalesInicial = rs.getString("inicial");
String fiscalesFinal = rs.getString("final");
String fiscalesZInicial = rs.getString("z_inicial");
String fiscalesZFinal = rs.getString("z_final");
private void fillBoletasFromResultSet(ResultSet rs) throws SQLException {
Comparator<String> comparator = new NaturalOrderComparator();
while (rs.next()) {
InformeLibroDeVentasContent informe = map.get(rs.getInt("caja"));
int tipoIngreso = rs.getInt("tipo_ingreso");
switch (tipoIngreso) {
case 1:
String fiscalesInicial = rs.getString("inicial");
String fiscalesFinal = rs.getString("final");
String fiscalesZInicial = rs.getString("z_inicial");
String fiscalesZFinal = rs.getString("z_final");
if (informe.getFiscalesInicial() != null) {
if (comparator.compare(fiscalesInicial, informe.getFiscalesInicial()) < 0) {
informe.setFiscalesInicial(fiscalesInicial);
}
} else {
informe.setFiscalesInicial(fiscalesInicial);
}
if (informe.getFiscalesFinal() != null) {
if (comparator.compare(fiscalesFinal, informe.getFiscalesFinal()) > 0) {
informe.setFiscalesFinal(fiscalesFinal);
}
} else {
informe.setFiscalesFinal(fiscalesFinal);
}
if (informe.getFiscalesZInicial() != null) {
if (comparator.compare(fiscalesZInicial, informe.getFiscalesZInicial()) < 0) {
informe.setFiscalesZInicial(fiscalesZInicial);
}
} else {
informe.setFiscalesZInicial(fiscalesZInicial);
}
if (informe.getFiscalesZFinal() != null) {
if (comparator.compare(fiscalesZFinal, informe.getFiscalesZFinal()) > 0) {
informe.setFiscalesZFinal(fiscalesZFinal);
}
} else {
informe.setFiscalesZFinal(fiscalesZFinal);
}
break;
case 2:
String manualesInicial = rs.getString("inicial");
String manualesFinal = rs.getString("final");
if (informe.getManualesInicial() != null) {
if (comparator.compare(manualesInicial, informe.getManualesInicial()) < 0) {
informe.setManualesInicial(manualesInicial);
}
} else {
informe.setManualesInicial(manualesInicial);
}
if (informe.getManualesFinal() != null) {
if (comparator.compare(manualesFinal, informe.getManualesFinal()) > 0) {
informe.setManualesFinal(manualesFinal);
}
} else {
informe.setManualesFinal(manualesFinal);
}
break;
case 3:
String facturasInicial = rs.getString("inicial");
String facturasFinal = rs.getString("final");
if (informe.getFacturasInicial() != null) {
if (comparator.compare(facturasInicial, informe.getFacturasInicial()) < 0) {
informe.setFacturasInicial(facturasInicial);
}
} else {
informe.setFacturasInicial(facturasInicial);
}
if (informe.getFacturasFinal() != null) {
if (comparator.compare(facturasFinal, informe.getFacturasFinal()) > 0) {
informe.setFacturasFinal(facturasFinal);
}
} else {
informe.setFacturasFinal(facturasFinal);
}
break;
case 4:
String guiasInicial = rs.getString("inicial");
String guiasFinal = rs.getString("final");
if (informe.getGuiasInicial() != null) {
if (comparator.compare(guiasInicial, informe.getGuiasInicial()) < 0) {
informe.setGuiasInicial(guiasInicial);
}
} else {
informe.setGuiasInicial(guiasInicial);
}
if (informe.getGuiasFinal() != null) {
if (comparator.compare(guiasFinal, informe.getGuiasFinal()) > 0) {
informe.setGuiasFinal(guiasFinal);
}
} else {
informe.setGuiasFinal(guiasFinal);
}
break;
case 5:
String exentasInicial = rs.getString("inicial");
String exentasFinal = rs.getString("final");
if (informe.getExentasInicial() != null) {
if (comparator.compare(exentasInicial, informe.getExentasInicial()) < 0) {
informe.setExentasInicial(exentasInicial);
}
} else {
informe.setExentasInicial(exentasInicial);
}
if (informe.getExentasFinal() != null) {
if (comparator.compare(exentasFinal, informe.getExentasFinal()) > 0) {
informe.setExentasFinal(exentasFinal);
}
} else {
informe.setExentasFinal(exentasFinal);
}
break;
if (informe.getFiscalesInicial() != null) {
if (comparator.compare(fiscalesInicial, informe.getFiscalesInicial()) < 0) {
informe.setFiscalesInicial(fiscalesInicial);
}
LOGGER.log(Level.FINER, "Se termino de llenar la linea del informe resultando en: {0}", informe);
}
} else {
informe.setFiscalesInicial(fiscalesInicial);
}
if (informe.getFiscalesFinal() != null) {
if (comparator.compare(fiscalesFinal, informe.getFiscalesFinal()) > 0) {
informe.setFiscalesFinal(fiscalesFinal);
}
} else {
informe.setFiscalesFinal(fiscalesFinal);
}
if (informe.getFiscalesZInicial() != null) {
if (comparator.compare(fiscalesZInicial, informe.getFiscalesZInicial()) < 0) {
informe.setFiscalesZInicial(fiscalesZInicial);
}
} else {
informe.setFiscalesZInicial(fiscalesZInicial);
}
if (informe.getFiscalesZFinal() != null) {
if (comparator.compare(fiscalesZFinal, informe.getFiscalesZFinal()) > 0) {
informe.setFiscalesZFinal(fiscalesZFinal);
}
} else {
informe.setFiscalesZFinal(fiscalesZFinal);
}
break;
case 2:
String manualesInicial = rs.getString("inicial");
String manualesFinal = rs.getString("final");
if (informe.getManualesInicial() != null) {
if (comparator.compare(manualesInicial, informe.getManualesInicial()) < 0) {
informe.setManualesInicial(manualesInicial);
}
} else {
informe.setManualesInicial(manualesInicial);
}
if (informe.getManualesFinal() != null) {
if (comparator.compare(manualesFinal, informe.getManualesFinal()) > 0) {
informe.setManualesFinal(manualesFinal);
}
} else {
informe.setManualesFinal(manualesFinal);
}
break;
case 3:
String facturasInicial = rs.getString("inicial");
String facturasFinal = rs.getString("final");
if (informe.getFacturasInicial() != null) {
if (comparator.compare(facturasInicial, informe.getFacturasInicial()) < 0) {
informe.setFacturasInicial(facturasInicial);
}
} else {
informe.setFacturasInicial(facturasInicial);
}
if (informe.getFacturasFinal() != null) {
if (comparator.compare(facturasFinal, informe.getFacturasFinal()) > 0) {
informe.setFacturasFinal(facturasFinal);
}
} else {
informe.setFacturasFinal(facturasFinal);
}
break;
case 4:
String guiasInicial = rs.getString("inicial");
String guiasFinal = rs.getString("final");
if (informe.getGuiasInicial() != null) {
if (comparator.compare(guiasInicial, informe.getGuiasInicial()) < 0) {
informe.setGuiasInicial(guiasInicial);
}
} else {
informe.setGuiasInicial(guiasInicial);
}
if (informe.getGuiasFinal() != null) {
if (comparator.compare(guiasFinal, informe.getGuiasFinal()) > 0) {
informe.setGuiasFinal(guiasFinal);
}
} else {
informe.setGuiasFinal(guiasFinal);
}
break;
case 5:
String exentasInicial = rs.getString("inicial");
String exentasFinal = rs.getString("final");
if (informe.getExentasInicial() != null) {
if (comparator.compare(exentasInicial, informe.getExentasInicial()) < 0) {
informe.setExentasInicial(exentasInicial);
}
} else {
informe.setExentasInicial(exentasInicial);
}
if (informe.getExentasFinal() != null) {
if (comparator.compare(exentasFinal, informe.getExentasFinal()) > 0) {
informe.setExentasFinal(exentasFinal);
}
} else {
informe.setExentasFinal(exentasFinal);
}
break;
}
LOGGER.log(Level.FINER, "Se termino de llenar la linea del informe resultando en: {0}",
informe);
}
}
}

View File

@@ -28,90 +28,91 @@ import danielcortes.xyz.models.caja.Caja;
import danielcortes.xyz.models.tipo_ingreso.TipoIngreso;
public class Ingreso {
private int id;
private int valor;
private String nroZInicial;
private String nroZFinal;
private String nroInicial;
private String nroFinal;
private TipoIngreso tipoIngreso;
private Caja caja;
public int getId() {
return id;
}
private int id;
private int valor;
private String nroZInicial;
private String nroZFinal;
private String nroInicial;
private String nroFinal;
private TipoIngreso tipoIngreso;
private Caja caja;
public void setId(int id) {
this.id = id;
}
public int getId() {
return id;
}
public int getValor() {
return valor;
}
public void setId(int id) {
this.id = id;
}
public void setValor(int valor) {
this.valor = valor;
}
public int getValor() {
return valor;
}
public String getNroZInicial() {
return nroZInicial;
}
public void setValor(int valor) {
this.valor = valor;
}
public void setNroZInicial(String nroZInicial) {
this.nroZInicial = nroZInicial;
}
public String getNroZInicial() {
return nroZInicial;
}
public String getNroZFinal() {
return nroZFinal;
}
public void setNroZInicial(String nroZInicial) {
this.nroZInicial = nroZInicial;
}
public void setNroZFinal(String nroZFinal) {
this.nroZFinal = nroZFinal;
}
public String getNroZFinal() {
return nroZFinal;
}
public String getNroInicial() {
return nroInicial;
}
public void setNroZFinal(String nroZFinal) {
this.nroZFinal = nroZFinal;
}
public void setNroInicial(String nroInicial) {
this.nroInicial = nroInicial;
}
public String getNroInicial() {
return nroInicial;
}
public String getNroFinal() {
return nroFinal;
}
public void setNroInicial(String nroInicial) {
this.nroInicial = nroInicial;
}
public void setNroFinal(String nroFinal) {
this.nroFinal = nroFinal;
}
public String getNroFinal() {
return nroFinal;
}
public TipoIngreso getTipoIngreso() {
return tipoIngreso;
}
public void setNroFinal(String nroFinal) {
this.nroFinal = nroFinal;
}
public void setTipoIngreso(TipoIngreso tipoIngreso) {
this.tipoIngreso = tipoIngreso;
}
public TipoIngreso getTipoIngreso() {
return tipoIngreso;
}
public Caja getCaja() {
return caja;
}
public void setTipoIngreso(TipoIngreso tipoIngreso) {
this.tipoIngreso = tipoIngreso;
}
public void setCaja(Caja caja) {
this.caja = caja;
}
public Caja getCaja() {
return caja;
}
@Override
public String toString() {
return "Ingreso{" +
"id=" + id +
", valor=" + valor +
", nroZInicial='" + nroZInicial + '\'' +
", nroZFinal='" + nroZFinal + '\'' +
", nroInicial='" + nroInicial + '\'' +
", nroFinal='" + nroFinal + '\'' +
", tipoIngreso=" + tipoIngreso +
", caja=" + caja +
'}';
}
public void setCaja(Caja caja) {
this.caja = caja;
}
@Override
public String toString() {
return "Ingreso{" +
"id=" + id +
", valor=" + valor +
", nroZInicial='" + nroZInicial + '\'' +
", nroZFinal='" + nroZFinal + '\'' +
", nroInicial='" + nroInicial + '\'' +
", nroFinal='" + nroFinal + '\'' +
", tipoIngreso=" + tipoIngreso +
", caja=" + caja +
'}';
}
}

View File

@@ -32,7 +32,6 @@ import danielcortes.xyz.models.caja.SQLiteCajaDAO;
import danielcortes.xyz.models.tipo_ingreso.SQLiteTipoIngresoDAO;
import danielcortes.xyz.models.tipo_ingreso.TipoIngreso;
import danielcortes.xyz.models.tipo_ingreso.TipoIngresoDAO;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.time.YearMonth;
@@ -42,57 +41,58 @@ import java.util.logging.Level;
import java.util.logging.Logger;
public abstract class IngresoDAO {
private static final Logger LOGGER = Logger.getLogger(IngresoDAO.class.getName());
protected ConnectionHolder connectionHolder;
private static final Logger LOGGER = Logger.getLogger(IngresoDAO.class.getName());
public abstract List<Ingreso> findAll();
protected ConnectionHolder connectionHolder;
public abstract List<Ingreso> findByCaja(Caja caja);
public abstract List<Ingreso> findAll();
public abstract List<Ingreso> findById(int id);
public abstract List<Ingreso> findByCaja(Caja caja);
public abstract List<Ingreso> findByTipoIngreso(TipoIngreso tipoIngreso);
public abstract List<Ingreso> findById(int id);
public abstract boolean insertIngreso(Ingreso ingreso);
public abstract List<Ingreso> findByTipoIngreso(TipoIngreso tipoIngreso);
public abstract boolean updateIngreso(Ingreso ingreso);
public abstract boolean insertIngreso(Ingreso ingreso);
public abstract boolean deleteIngreso(Ingreso ingreso);
public abstract boolean updateIngreso(Ingreso ingreso);
public abstract int getTotalIngreso(Caja caja);
public abstract boolean deleteIngreso(Ingreso ingreso);
public abstract int getTotalIngresoMes(YearMonth mes);
public abstract int getTotalIngreso(Caja caja);
public abstract int getTotalExentasMes(YearMonth mes);
public abstract int getTotalIngresoMes(YearMonth mes);
public abstract int getTotalExentasMes(YearMonth mes);
List<Ingreso> ingresosFromResultSet(ResultSet rs) throws SQLException {
ArrayList<Ingreso> ingresosList = new ArrayList<>();
while (rs.next()) {
int tipoIngresoId = rs.getInt("tipo_ingreso_id");
TipoIngresoDAO tipoEgresoDAO = new SQLiteTipoIngresoDAO();
TipoIngreso tipoIngreso = tipoEgresoDAO.findById(tipoIngresoId).get(0);
List<Ingreso> ingresosFromResultSet(ResultSet rs) throws SQLException {
ArrayList<Ingreso> ingresosList = new ArrayList<>();
while (rs.next()) {
int tipoIngresoId = rs.getInt("tipo_ingreso_id");
TipoIngresoDAO tipoEgresoDAO = new SQLiteTipoIngresoDAO();
TipoIngreso tipoIngreso = tipoEgresoDAO.findById(tipoIngresoId).get(0);
int cajaId = rs.getInt("caja_id");
CajaDAO cajaDAO = new SQLiteCajaDAO();
Caja caja = cajaDAO.getById(cajaId).get();
int cajaId = rs.getInt("caja_id");
CajaDAO cajaDAO = new SQLiteCajaDAO();
Caja caja = cajaDAO.getById(cajaId).get();
Ingreso ingreso = new Ingreso();
Ingreso ingreso = new Ingreso();
ingreso.setId(rs.getInt("id"));
ingreso.setValor(rs.getInt("valor"));
ingreso.setNroZInicial(rs.getString("nro_z_inicial"));
ingreso.setNroZFinal(rs.getString("nro_z_final"));
ingreso.setNroInicial(rs.getString("nro_inicial"));
ingreso.setNroFinal(rs.getString("nro_final"));
ingreso.setTipoIngreso(tipoIngreso);
ingreso.setCaja(caja);
ingreso.setId(rs.getInt("id"));
ingreso.setValor(rs.getInt("valor"));
ingreso.setNroZInicial(rs.getString("nro_z_inicial"));
ingreso.setNroZFinal(rs.getString("nro_z_final"));
ingreso.setNroInicial(rs.getString("nro_inicial"));
ingreso.setNroFinal(rs.getString("nro_final"));
ingreso.setTipoIngreso(tipoIngreso);
ingreso.setCaja(caja);
LOGGER.log(Level.FINER, "Se a creado: {0}", ingreso);
LOGGER.log(Level.FINER, "Se a creado: {0}", ingreso);
ingresosList.add(ingreso);
}
return ingresosList;
ingresosList.add(ingreso);
}
return ingresosList;
}
}

View File

@@ -27,7 +27,6 @@ package danielcortes.xyz.models.ingreso;
import danielcortes.xyz.data.SQLiteConnectionHolder;
import danielcortes.xyz.models.caja.Caja;
import danielcortes.xyz.models.tipo_ingreso.TipoIngreso;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
@@ -40,245 +39,253 @@ import java.util.logging.Level;
import java.util.logging.Logger;
public class SQLiteIngresoDAO extends IngresoDAO {
private static final Logger LOGGER = Logger.getLogger(SQLiteIngresoDAO.class.getName());
public SQLiteIngresoDAO() {
this.connectionHolder = new SQLiteConnectionHolder();
private static final Logger LOGGER = Logger.getLogger(SQLiteIngresoDAO.class.getName());
public SQLiteIngresoDAO() {
this.connectionHolder = new SQLiteConnectionHolder();
}
@Override
public List<Ingreso> findAll() {
List<Ingreso> ingresosList = new ArrayList<>();
try (Connection conn = connectionHolder.getConnection()) {
String query = "select * from ingresos";
PreparedStatement ps = conn.prepareStatement(query);
ResultSet rs = ps.executeQuery();
LOGGER.log(Level.FINE, "QUERY: {0}", query);
ingresosList = this.ingresosFromResultSet(rs);
rs.close();
ps.close();
} catch (SQLException e) {
LOGGER.log(Level.SEVERE, e.toString(), e);
}
return ingresosList;
}
@Override
public List<Ingreso> findAll() {
List<Ingreso> ingresosList = new ArrayList<>();
try (Connection conn = connectionHolder.getConnection()) {
String query = "select * from ingresos";
PreparedStatement ps = conn.prepareStatement(query);
ResultSet rs = ps.executeQuery();
@Override
public List<Ingreso> findByCaja(Caja caja) {
List<Ingreso> ingresosList = new ArrayList<>();
try (Connection conn = connectionHolder.getConnection()) {
String query = "select * from ingresos where caja_id = ?";
PreparedStatement ps = conn.prepareStatement(query);
ps.setInt(1, caja.getId());
ResultSet rs = ps.executeQuery();
LOGGER.log(Level.FINE, "QUERY: {0}", query);
LOGGER.log(Level.FINE, "QUERY: {0} | values: {1}", new Object[]{query, caja.getId()});
ingresosList = this.ingresosFromResultSet(rs);
ingresosList = this.ingresosFromResultSet(rs);
rs.close();
ps.close();
} catch (SQLException e) {
LOGGER.log(Level.SEVERE, e.toString(), e);
}
return ingresosList;
rs.close();
ps.close();
} catch (SQLException e) {
e.printStackTrace();
}
return ingresosList;
}
@Override
public List<Ingreso> findByCaja(Caja caja) {
List<Ingreso> ingresosList = new ArrayList<>();
try (Connection conn = connectionHolder.getConnection()) {
String query = "select * from ingresos where caja_id = ?";
PreparedStatement ps = conn.prepareStatement(query);
ps.setInt(1, caja.getId());
ResultSet rs = ps.executeQuery();
@Override
public List<Ingreso> findById(int id) {
List<Ingreso> ingresosList = new ArrayList<>();
try (Connection conn = connectionHolder.getConnection()) {
String query = "select * from ingresos where id = ?";
PreparedStatement ps = conn.prepareStatement(query);
ps.setInt(1, id);
ResultSet rs = ps.executeQuery();
LOGGER.log(Level.FINE, "QUERY: {0} | values: {1}", new Object[]{query, caja.getId()});
LOGGER.log(Level.FINE, "QUERY: {0} | values: {1}", new Object[]{query, id});
ingresosList = this.ingresosFromResultSet(rs);
ingresosList = this.ingresosFromResultSet(rs);
rs.close();
ps.close();
} catch (SQLException e) {
e.printStackTrace();
}
return ingresosList;
rs.close();
ps.close();
} catch (SQLException e) {
LOGGER.log(Level.SEVERE, e.toString(), e);
}
return ingresosList;
}
@Override
public List<Ingreso> findById(int id) {
List<Ingreso> ingresosList = new ArrayList<>();
try (Connection conn = connectionHolder.getConnection()) {
String query = "select * from ingresos where id = ?";
PreparedStatement ps = conn.prepareStatement(query);
ps.setInt(1, id);
ResultSet rs = ps.executeQuery();
@Override
public List<Ingreso> findByTipoIngreso(TipoIngreso tipoIngreso) {
List<Ingreso> ingresosList = new ArrayList<>();
try (Connection conn = connectionHolder.getConnection()) {
String query = "select ingresos.* from ingresos inner join tipos_ingreso on (ingresos.tipo_ingreso_id = tipos_ingreso.id) where ingresos.tipo_ingreso_id = ?";
PreparedStatement ps = conn.prepareStatement(query);
ps.setInt(1, tipoIngreso.getId());
ResultSet rs = ps.executeQuery();
LOGGER.log(Level.FINE, "QUERY: {0} | values: {1}", new Object[]{query, id});
LOGGER.log(Level.FINE, "QUERY: {0} | values: {1}", new Object[]{query, tipoIngreso.getId()});
ingresosList = this.ingresosFromResultSet(rs);
ingresosList = this.ingresosFromResultSet(rs);
rs.close();
ps.close();
} catch (SQLException e) {
LOGGER.log(Level.SEVERE, e.toString(), e);
}
return ingresosList;
rs.close();
ps.close();
} catch (SQLException e) {
LOGGER.log(Level.SEVERE, e.toString(), e);
}
return ingresosList;
}
@Override
public List<Ingreso> findByTipoIngreso(TipoIngreso tipoIngreso) {
List<Ingreso> ingresosList = new ArrayList<>();
try (Connection conn = connectionHolder.getConnection()) {
String query = "select ingresos.* from ingresos inner join tipos_ingreso on (ingresos.tipo_ingreso_id = tipos_ingreso.id) where ingresos.tipo_ingreso_id = ?";
PreparedStatement ps = conn.prepareStatement(query);
ps.setInt(1, tipoIngreso.getId());
ResultSet rs = ps.executeQuery();
@Override
public boolean insertIngreso(Ingreso ingreso) {
int updates;
try (Connection conn = connectionHolder.getConnection()) {
String query = "insert into ingresos (valor, nro_z_inicial, nro_z_final, nro_inicial, nro_final, tipo_ingreso_id, caja_id) values (?,?,?,?,?,?,?)";
PreparedStatement ps = conn.prepareStatement(query);
ps.setInt(1, ingreso.getValor());
ps.setString(2, ingreso.getNroZInicial());
ps.setString(3, ingreso.getNroZFinal());
ps.setString(4, ingreso.getNroInicial());
ps.setString(5, ingreso.getNroFinal());
ps.setInt(6, ingreso.getTipoIngreso().getId());
ps.setInt(7, ingreso.getCaja().getId());
updates = ps.executeUpdate();
LOGGER.log(Level.FINE, "QUERY: {0} | values: {1}", new Object[]{query, tipoIngreso.getId()});
LOGGER.log(Level.FINE, "QUERY: {0} | values: [{1},{2},{3},{4},{5},{6},{7}] | updates: {8}",
new Object[]{query, ingreso.getValor(), ingreso.getNroZInicial(), ingreso.getNroZFinal(),
ingreso.getNroInicial(), ingreso.getNroFinal(), ingreso.getTipoIngreso().getId(),
ingreso.getCaja().getId(), updates});
ps.close();
ingresosList = this.ingresosFromResultSet(rs);
ps = conn.prepareStatement("select last_insert_rowid()");
ResultSet rs = ps.executeQuery();
rs.next();
ingreso.setId(rs.getInt(1));
rs.close();
ps.close();
} catch (SQLException e) {
LOGGER.log(Level.SEVERE, e.toString(), e);
}
return ingresosList;
rs.close();
} catch (SQLException e) {
LOGGER.log(Level.SEVERE, e.toString(), e);
return false;
}
return updates > 0;
}
@Override
public boolean insertIngreso(Ingreso ingreso) {
int updates;
try (Connection conn = connectionHolder.getConnection()) {
String query = "insert into ingresos (valor, nro_z_inicial, nro_z_final, nro_inicial, nro_final, tipo_ingreso_id, caja_id) values (?,?,?,?,?,?,?)";
PreparedStatement ps = conn.prepareStatement(query);
ps.setInt(1, ingreso.getValor());
ps.setString(2, ingreso.getNroZInicial());
ps.setString(3, ingreso.getNroZFinal());
ps.setString(4, ingreso.getNroInicial());
ps.setString(5, ingreso.getNroFinal());
ps.setInt(6, ingreso.getTipoIngreso().getId());
ps.setInt(7, ingreso.getCaja().getId());
updates = ps.executeUpdate();
@Override
public boolean updateIngreso(Ingreso ingreso) {
int updates;
try (Connection conn = connectionHolder.getConnection()) {
String query = "update ingresos set valor = ?, nro_z_inicial = ?, nro_z_final = ?, nro_inicial = ?, nro_final = ?, tipo_ingreso_id = ?, caja_id = ? where id = ?";
PreparedStatement ps = conn.prepareStatement(query);
ps.setInt(1, ingreso.getValor());
ps.setString(2, ingreso.getNroZInicial());
ps.setString(3, ingreso.getNroZFinal());
ps.setString(4, ingreso.getNroInicial());
ps.setString(5, ingreso.getNroFinal());
ps.setInt(6, ingreso.getTipoIngreso().getId());
ps.setInt(7, ingreso.getCaja().getId());
ps.setInt(8, ingreso.getId());
updates = ps.executeUpdate();
LOGGER.log(Level.FINE, "QUERY: {0} | values: [{1},{2},{3},{4},{5},{6},{7}] | updates: {8}", new Object[]{query, ingreso.getValor(), ingreso.getNroZInicial(), ingreso.getNroZFinal(), ingreso.getNroInicial(), ingreso.getNroFinal(), ingreso.getTipoIngreso().getId(), ingreso.getCaja().getId(), updates});
LOGGER
.log(Level.FINE, "QUERY: {0} | values: [{1},{2},{3},{4},{5},{6},{7},{8}] | updates: {9}",
new Object[]{query, ingreso.getValor(), ingreso.getNroZInicial(),
ingreso.getNroZFinal(), ingreso.getNroInicial(), ingreso.getNroFinal(),
ingreso.getTipoIngreso().getId(), ingreso.getCaja().getId(), ingreso.getId(),
updates});
ps.close();
ps = conn.prepareStatement("select last_insert_rowid()");
ResultSet rs = ps.executeQuery();
rs.next();
ingreso.setId(rs.getInt(1));
rs.close();
} catch (SQLException e) {
LOGGER.log(Level.SEVERE, e.toString(), e);
return false;
}
return updates > 0;
ps.close();
} catch (SQLException e) {
LOGGER.log(Level.SEVERE, e.toString(), e);
return false;
}
return updates > 0;
}
@Override
public boolean updateIngreso(Ingreso ingreso) {
int updates;
try (Connection conn = connectionHolder.getConnection()) {
String query = "update ingresos set valor = ?, nro_z_inicial = ?, nro_z_final = ?, nro_inicial = ?, nro_final = ?, tipo_ingreso_id = ?, caja_id = ? where id = ?";
PreparedStatement ps = conn.prepareStatement(query);
ps.setInt(1, ingreso.getValor());
ps.setString(2, ingreso.getNroZInicial());
ps.setString(3, ingreso.getNroZFinal());
ps.setString(4, ingreso.getNroInicial());
ps.setString(5, ingreso.getNroFinal());
ps.setInt(6, ingreso.getTipoIngreso().getId());
ps.setInt(7, ingreso.getCaja().getId());
ps.setInt(8, ingreso.getId());
updates = ps.executeUpdate();
@Override
public boolean deleteIngreso(Ingreso ingreso) {
int updates;
try (Connection conn = connectionHolder.getConnection()) {
String query = "delete from ingresos where id = ?";
PreparedStatement ps = conn.prepareStatement(query);
ps.setInt(1, ingreso.getId());
updates = ps.executeUpdate();
LOGGER.log(Level.FINE, "QUERY: {0} | values: [{1},{2},{3},{4},{5},{6},{7},{8}] | updates: {9}", new Object[]{query, ingreso.getValor(), ingreso.getNroZInicial(), ingreso.getNroZFinal(), ingreso.getNroInicial(), ingreso.getNroFinal(), ingreso.getTipoIngreso().getId(), ingreso.getCaja().getId(), ingreso.getId(), updates});
LOGGER.log(Level.FINE, "QUERY: {0} | values: {1} | updates: {2}",
new Object[]{query, ingreso.getId(), updates});
ps.close();
} catch (SQLException e) {
LOGGER.log(Level.SEVERE, e.toString(), e);
return false;
}
return updates > 0;
ps.close();
} catch (SQLException e) {
LOGGER.log(Level.SEVERE, e.toString(), e);
return false;
}
return updates > 0;
}
@Override
public boolean deleteIngreso(Ingreso ingreso) {
int updates;
try (Connection conn = connectionHolder.getConnection()) {
String query = "delete from ingresos where id = ?";
PreparedStatement ps = conn.prepareStatement(query);
ps.setInt(1, ingreso.getId());
updates = ps.executeUpdate();
@Override
public int getTotalIngreso(Caja caja) {
int total = 0;
try (Connection conn = connectionHolder.getConnection()) {
String query = "select sum(valor) from ingresos where caja_id = ?";
PreparedStatement ps = conn.prepareStatement(query);
ps.setInt(1, caja.getId());
ResultSet rs = ps.executeQuery();
LOGGER.log(Level.FINE, "QUERY: {0} | values: {1} | updates: {2}", new Object[]{query, ingreso.getId(), updates});
LOGGER.log(Level.FINE, "QUERY: {0} | values: {1}", new Object[]{query, caja.getId()});
ps.close();
} catch (SQLException e) {
LOGGER.log(Level.SEVERE, e.toString(), e);
return false;
}
return updates > 0;
rs.next();
total = rs.getInt(1);
rs.close();
ps.close();
} catch (SQLException e) {
LOGGER.log(Level.SEVERE, e.toString(), e);
}
return total;
}
@Override
public int getTotalIngreso(Caja caja) {
int total = 0;
try (Connection conn = connectionHolder.getConnection()) {
String query = "select sum(valor) from ingresos where caja_id = ?";
PreparedStatement ps = conn.prepareStatement(query);
ps.setInt(1, caja.getId());
ResultSet rs = ps.executeQuery();
@Override
public int getTotalIngresoMes(YearMonth mes) {
int total = 0;
try (Connection conn = connectionHolder.getConnection()) {
LocalDate start = mes.atDay(1);
LocalDate end = mes.atEndOfMonth();
String query =
"select sum(valor) from ingresos inner join caja on (ingresos.caja_id == caja.id) where caja.fecha between ? and ? and ingresos.tipo_ingreso_id != 5";
PreparedStatement ps = conn.prepareStatement(query);
ps.setString(1, start.toString());
ps.setString(2, end.toString());
ResultSet rs = ps.executeQuery();
LOGGER.log(Level.FINE, "QUERY: {0} | values: {1}", new Object[]{query, caja.getId()});
LOGGER.log(Level.FINE, "QUERY: {0} | values: {1}, {2}", new Object[]{query, start, end});
rs.next();
total = rs.getInt(1);
rs.next();
total = rs.getInt(1);
rs.close();
ps.close();
} catch (SQLException e) {
LOGGER.log(Level.SEVERE, e.toString(), e);
}
return total;
rs.close();
ps.close();
} catch (SQLException e) {
LOGGER.log(Level.SEVERE, e.toString(), e);
}
return total;
}
@Override
public int getTotalIngresoMes(YearMonth mes) {
int total = 0;
try (Connection conn = connectionHolder.getConnection()) {
LocalDate start = mes.atDay(1);
LocalDate end = mes.atEndOfMonth();
String query =
"select sum(valor) from ingresos inner join caja on (ingresos.caja_id == caja.id) where caja.fecha between ? and ? and ingresos.tipo_ingreso_id != 5";
PreparedStatement ps = conn.prepareStatement(query);
ps.setString(1, start.toString());
ps.setString(2, end.toString());
ResultSet rs = ps.executeQuery();
@Override
public int getTotalExentasMes(YearMonth mes) {
int total = 0;
try (Connection conn = connectionHolder.getConnection()) {
LocalDate start = mes.atDay(1);
LocalDate end = mes.atEndOfMonth();
String query =
"select sum(valor) from ingresos inner join caja on (ingresos.caja_id == caja.id) where caja.fecha between ? and ? and ingresos.tipo_ingreso_id = 5";
PreparedStatement ps = conn.prepareStatement(query);
ps.setString(1, start.toString());
ps.setString(2, end.toString());
ResultSet rs = ps.executeQuery();
LOGGER.log(Level.FINE, "QUERY: {0} | values: {1}, {2}", new Object[]{query, start, end});
LOGGER.log(Level.FINE, "QUERY: {0} | values: {1}, {2}", new Object[]{query, start, end});
rs.next();
total = rs.getInt(1);
rs.next();
total = rs.getInt(1);
rs.close();
ps.close();
} catch (SQLException e) {
LOGGER.log(Level.SEVERE, e.toString(), e);
}
return total;
}
@Override
public int getTotalExentasMes(YearMonth mes) {
int total = 0;
try (Connection conn = connectionHolder.getConnection()) {
LocalDate start = mes.atDay(1);
LocalDate end = mes.atEndOfMonth();
String query =
"select sum(valor) from ingresos inner join caja on (ingresos.caja_id == caja.id) where caja.fecha between ? and ? and ingresos.tipo_ingreso_id = 5";
PreparedStatement ps = conn.prepareStatement(query);
ps.setString(1, start.toString());
ps.setString(2, end.toString());
ResultSet rs = ps.executeQuery();
LOGGER.log(Level.FINE, "QUERY: {0} | values: {1}, {2}", new Object[]{query, start, end});
rs.next();
total = rs.getInt(1);
rs.close();
ps.close();
} catch (SQLException e) {
LOGGER.log(Level.SEVERE, e.toString(), e);
}
return total;
rs.close();
ps.close();
} catch (SQLException e) {
LOGGER.log(Level.SEVERE, e.toString(), e);
}
return total;
}
}

View File

@@ -25,7 +25,6 @@
package danielcortes.xyz.models.tipo_egreso;
import danielcortes.xyz.data.SQLiteConnectionHolder;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
@@ -36,71 +35,72 @@ import java.util.logging.Level;
import java.util.logging.Logger;
public class SQLiteTipoEgresoDAO extends TipoEgresoDAO {
private static final Logger LOGGER = Logger.getLogger(SQLiteTipoEgresoDAO.class.getName());
public SQLiteTipoEgresoDAO() {
this.connectionHolder = new SQLiteConnectionHolder();
private static final Logger LOGGER = Logger.getLogger(SQLiteTipoEgresoDAO.class.getName());
public SQLiteTipoEgresoDAO() {
this.connectionHolder = new SQLiteConnectionHolder();
}
@Override
public List<TipoEgreso> findAll() {
List<TipoEgreso> tipoEgresoList = new ArrayList<>();
try (Connection conn = connectionHolder.getConnection()) {
String query = "select * from tipos_egreso";
PreparedStatement ps = conn.prepareStatement(query);
ResultSet rs = ps.executeQuery();
LOGGER.log(Level.FINE, "QUERY: {0}", query);
tipoEgresoList = this.tipoEgresoFromResultSet(rs);
rs.close();
ps.close();
} catch (SQLException e) {
LOGGER.log(Level.SEVERE, e.toString(), e);
}
return tipoEgresoList;
}
@Override
public List<TipoEgreso> findAll() {
List<TipoEgreso> tipoEgresoList = new ArrayList<>();
try (Connection conn = connectionHolder.getConnection()) {
String query = "select * from tipos_egreso";
PreparedStatement ps = conn.prepareStatement(query);
ResultSet rs = ps.executeQuery();
@Override
public List<TipoEgreso> findById(int id) {
List<TipoEgreso> tipoEgresoList = new ArrayList<>();
try (Connection conn = connectionHolder.getConnection()) {
String query = "select * from tipos_egreso where id = ?";
PreparedStatement ps = conn.prepareStatement(query);
ps.setInt(1, id);
ResultSet rs = ps.executeQuery();
LOGGER.log(Level.FINE, "QUERY: {0}", query);
LOGGER.log(Level.FINE, "QUERY: {0} | values: {1}", new Object[]{query, id});
tipoEgresoList = this.tipoEgresoFromResultSet(rs);
tipoEgresoList = this.tipoEgresoFromResultSet(rs);
rs.close();
ps.close();
} catch (SQLException e) {
LOGGER.log(Level.SEVERE, e.toString(), e);
}
return tipoEgresoList;
rs.close();
ps.close();
} catch (SQLException e) {
LOGGER.log(Level.SEVERE, e.toString(), e);
}
return tipoEgresoList;
}
@Override
public List<TipoEgreso> findById(int id) {
List<TipoEgreso> tipoEgresoList = new ArrayList<>();
try (Connection conn = connectionHolder.getConnection()) {
String query = "select * from tipos_egreso where id = ?";
PreparedStatement ps = conn.prepareStatement(query);
ps.setInt(1, id);
ResultSet rs = ps.executeQuery();
@Override
public List<TipoEgreso> findByNombre(String nombre) {
List<TipoEgreso> tipoEgresoList = new ArrayList<>();
try (Connection conn = connectionHolder.getConnection()) {
String query = "select * from tipos_egreso where nombre = ?";
PreparedStatement ps = conn.prepareStatement(query);
ps.setString(1, nombre);
ResultSet rs = ps.executeQuery();
LOGGER.log(Level.FINE, "QUERY: {0} | values: {1}", new Object[]{query, id});
LOGGER.log(Level.FINE, "QUERY: {0} | values: {1}", new Object[]{query, nombre});
tipoEgresoList = this.tipoEgresoFromResultSet(rs);
tipoEgresoList = this.tipoEgresoFromResultSet(rs);
rs.close();
ps.close();
} catch (SQLException e) {
LOGGER.log(Level.SEVERE, e.toString(), e);
}
return tipoEgresoList;
}
@Override
public List<TipoEgreso> findByNombre(String nombre) {
List<TipoEgreso> tipoEgresoList = new ArrayList<>();
try (Connection conn = connectionHolder.getConnection()) {
String query = "select * from tipos_egreso where nombre = ?";
PreparedStatement ps = conn.prepareStatement(query);
ps.setString(1, nombre);
ResultSet rs = ps.executeQuery();
LOGGER.log(Level.FINE, "QUERY: {0} | values: {1}", new Object[]{query, nombre});
tipoEgresoList = this.tipoEgresoFromResultSet(rs);
rs.close();
ps.close();
} catch (SQLException e) {
LOGGER.log(Level.SEVERE, e.toString(), e);
}
return tipoEgresoList;
rs.close();
ps.close();
} catch (SQLException e) {
LOGGER.log(Level.SEVERE, e.toString(), e);
}
return tipoEgresoList;
}
}

View File

@@ -49,42 +49,43 @@
package danielcortes.xyz.models.tipo_egreso;
public class TipoEgreso {
private int id;
private String nombre;
public TipoEgreso(int id, String nombre) {
this.id = id;
this.nombre = nombre;
}
private int id;
private String nombre;
public TipoEgreso(String nombre) {
this.nombre = nombre;
}
public TipoEgreso(int id, String nombre) {
this.id = id;
this.nombre = nombre;
}
public TipoEgreso() {
}
public TipoEgreso(String nombre) {
this.nombre = nombre;
}
public String getNombre() {
return nombre;
}
public TipoEgreso() {
}
public void setNombre(String nombre) {
this.nombre = nombre;
}
public String getNombre() {
return nombre;
}
public int getId() {
return id;
}
public void setNombre(String nombre) {
this.nombre = nombre;
}
public void setId(int id) {
this.id = id;
}
public int getId() {
return id;
}
@Override
public String toString() {
return "TipoEgreso{" +
"id=" + id +
", nombre='" + nombre + '\'' +
'}';
}
public void setId(int id) {
this.id = id;
}
@Override
public String toString() {
return "TipoEgreso{" +
"id=" + id +
", nombre='" + nombre + '\'' +
'}';
}
}

View File

@@ -49,7 +49,6 @@
package danielcortes.xyz.models.tipo_egreso;
import danielcortes.xyz.data.ConnectionHolder;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
@@ -58,27 +57,28 @@ import java.util.logging.Level;
import java.util.logging.Logger;
public abstract class TipoEgresoDAO {
private static final Logger LOGGER = Logger.getLogger(TipoEgresoDAO.class.getName());
protected ConnectionHolder connectionHolder;
private static final Logger LOGGER = Logger.getLogger(TipoEgresoDAO.class.getName());
public abstract List<TipoEgreso> findAll();
protected ConnectionHolder connectionHolder;
public abstract List<TipoEgreso> findById(int id);
public abstract List<TipoEgreso> findAll();
public abstract List<TipoEgreso> findByNombre(String nombre);
public abstract List<TipoEgreso> findById(int id);
List<TipoEgreso> tipoEgresoFromResultSet(ResultSet rs) throws SQLException {
ArrayList<TipoEgreso> tipoEgresoList = new ArrayList<>();
while (rs.next()) {
TipoEgreso tipoEgreso = new TipoEgreso();
tipoEgreso.setId(rs.getInt("id"));
tipoEgreso.setNombre(rs.getString("nombre"));
public abstract List<TipoEgreso> findByNombre(String nombre);
LOGGER.log(Level.FINER, "Se a creado {0}", tipoEgreso);
List<TipoEgreso> tipoEgresoFromResultSet(ResultSet rs) throws SQLException {
ArrayList<TipoEgreso> tipoEgresoList = new ArrayList<>();
while (rs.next()) {
TipoEgreso tipoEgreso = new TipoEgreso();
tipoEgreso.setId(rs.getInt("id"));
tipoEgreso.setNombre(rs.getString("nombre"));
tipoEgresoList.add(tipoEgreso);
}
return tipoEgresoList;
LOGGER.log(Level.FINER, "Se a creado {0}", tipoEgreso);
tipoEgresoList.add(tipoEgreso);
}
return tipoEgresoList;
}
}

View File

@@ -1,13 +1,14 @@
package danielcortes.xyz.models.tipo_egreso;
public class TipoEgresoToStringWrapper extends TipoEgreso {
public TipoEgresoToStringWrapper(TipoEgreso tipoEgreso){
this.setId(tipoEgreso.getId());
this.setNombre(tipoEgreso.getNombre());
}
@Override
public String toString() {
return this.getNombre();
}
public TipoEgresoToStringWrapper(TipoEgreso tipoEgreso) {
this.setId(tipoEgreso.getId());
this.setNombre(tipoEgreso.getNombre());
}
@Override
public String toString() {
return this.getNombre();
}
}

View File

@@ -25,7 +25,6 @@
package danielcortes.xyz.models.tipo_ingreso;
import danielcortes.xyz.data.SQLiteConnectionHolder;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
@@ -36,72 +35,73 @@ import java.util.logging.Level;
import java.util.logging.Logger;
public class SQLiteTipoIngresoDAO extends TipoIngresoDAO {
private static final Logger LOGGER = Logger.getLogger(SQLiteTipoIngresoDAO.class.getName());
public SQLiteTipoIngresoDAO() {
this.connectionHolder = new SQLiteConnectionHolder();
private static final Logger LOGGER = Logger.getLogger(SQLiteTipoIngresoDAO.class.getName());
public SQLiteTipoIngresoDAO() {
this.connectionHolder = new SQLiteConnectionHolder();
}
@Override
public List<TipoIngreso> findAll() {
List<TipoIngreso> tiposIngresoList = new ArrayList<>();
try (Connection conn = connectionHolder.getConnection()) {
String query = "select * from tipos_ingreso";
PreparedStatement ps = conn.prepareStatement(query);
ResultSet rs = ps.executeQuery();
LOGGER.log(Level.FINE, "QUERY: {0}", query);
tiposIngresoList = this.tiposIngresoFromResultSet(rs);
rs.close();
ps.close();
} catch (SQLException e) {
e.printStackTrace();
}
return tiposIngresoList;
}
@Override
public List<TipoIngreso> findAll() {
List<TipoIngreso> tiposIngresoList = new ArrayList<>();
try (Connection conn = connectionHolder.getConnection()) {
String query = "select * from tipos_ingreso";
PreparedStatement ps = conn.prepareStatement(query);
ResultSet rs = ps.executeQuery();
@Override
public List<TipoIngreso> findById(int id) {
List<TipoIngreso> tiposIngresoList = new ArrayList<>();
try (Connection conn = connectionHolder.getConnection()) {
String query = "select * from tipos_ingreso where id = ?";
PreparedStatement ps = conn.prepareStatement(query);
ps.setInt(1, id);
ResultSet rs = ps.executeQuery();
LOGGER.log(Level.FINE, "QUERY: {0}", query);
LOGGER.log(Level.FINE, "QUERY: {0} | values: {1}", new Object[]{query, id});
tiposIngresoList = this.tiposIngresoFromResultSet(rs);
tiposIngresoList = this.tiposIngresoFromResultSet(rs);
rs.close();
ps.close();
} catch (SQLException e) {
e.printStackTrace();
}
return tiposIngresoList;
rs.close();
ps.close();
} catch (SQLException e) {
e.printStackTrace();
}
return tiposIngresoList;
}
@Override
public List<TipoIngreso> findById(int id) {
List<TipoIngreso> tiposIngresoList = new ArrayList<>();
try (Connection conn = connectionHolder.getConnection()) {
String query = "select * from tipos_ingreso where id = ?";
PreparedStatement ps = conn.prepareStatement(query);
ps.setInt(1, id);
ResultSet rs = ps.executeQuery();
@Override
public List<TipoIngreso> findByNombre(String nombre) {
List<TipoIngreso> tiposIngresoList = new ArrayList<>();
try (Connection conn = connectionHolder.getConnection()) {
String query = "select * from tipos_ingreso where nombre = ?";
PreparedStatement ps = conn.prepareStatement(query);
ps.setString(1, nombre);
ResultSet rs = ps.executeQuery();
LOGGER.log(Level.FINE, "QUERY: {0} | values: {1}", new Object[]{query, id});
LOGGER.log(Level.FINE, "QUERY: {0} | values: {1}", new Object[]{query, nombre});
tiposIngresoList = this.tiposIngresoFromResultSet(rs);
tiposIngresoList = this.tiposIngresoFromResultSet(rs);
rs.close();
ps.close();
} catch (SQLException e) {
e.printStackTrace();
}
return tiposIngresoList;
}
@Override
public List<TipoIngreso> findByNombre(String nombre) {
List<TipoIngreso> tiposIngresoList = new ArrayList<>();
try (Connection conn = connectionHolder.getConnection()) {
String query = "select * from tipos_ingreso where nombre = ?";
PreparedStatement ps = conn.prepareStatement(query);
ps.setString(1, nombre);
ResultSet rs = ps.executeQuery();
LOGGER.log(Level.FINE, "QUERY: {0} | values: {1}", new Object[]{query, nombre});
tiposIngresoList = this.tiposIngresoFromResultSet(rs);
rs.close();
ps.close();
} catch (SQLException e) {
e.printStackTrace();
}
return tiposIngresoList;
rs.close();
ps.close();
} catch (SQLException e) {
e.printStackTrace();
}
return tiposIngresoList;
}
}

View File

@@ -49,42 +49,43 @@
package danielcortes.xyz.models.tipo_ingreso;
public class TipoIngreso {
private int id;
private String nombre;
public TipoIngreso(int id, String nombre) {
this.id = id;
this.nombre = nombre;
}
private int id;
private String nombre;
public TipoIngreso(String nombre) {
this.nombre = nombre;
}
public TipoIngreso(int id, String nombre) {
this.id = id;
this.nombre = nombre;
}
public TipoIngreso() {
}
public TipoIngreso(String nombre) {
this.nombre = nombre;
}
public int getId() {
return id;
}
public TipoIngreso() {
}
public void setId(int id) {
this.id = id;
}
public int getId() {
return id;
}
public String getNombre() {
return nombre;
}
public void setId(int id) {
this.id = id;
}
public void setNombre(String nombre) {
this.nombre = nombre;
}
public String getNombre() {
return nombre;
}
@Override
public String toString() {
return "TipoIngreso{" +
"id=" + id +
", nombre='" + nombre + '\'' +
'}';
}
public void setNombre(String nombre) {
this.nombre = nombre;
}
@Override
public String toString() {
return "TipoIngreso{" +
"id=" + id +
", nombre='" + nombre + '\'' +
'}';
}
}

View File

@@ -25,7 +25,6 @@
package danielcortes.xyz.models.tipo_ingreso;
import danielcortes.xyz.data.ConnectionHolder;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
@@ -34,27 +33,28 @@ import java.util.logging.Level;
import java.util.logging.Logger;
public abstract class TipoIngresoDAO {
private static final Logger LOGGER = Logger.getLogger(SQLiteTipoIngresoDAO.class.getName());
protected ConnectionHolder connectionHolder;
private static final Logger LOGGER = Logger.getLogger(SQLiteTipoIngresoDAO.class.getName());
public abstract List<TipoIngreso> findAll();
protected ConnectionHolder connectionHolder;
public abstract List<TipoIngreso> findById(int id);
public abstract List<TipoIngreso> findAll();
public abstract List<TipoIngreso> findByNombre(String nombre);
public abstract List<TipoIngreso> findById(int id);
List<TipoIngreso> tiposIngresoFromResultSet(ResultSet rs) throws SQLException {
ArrayList<TipoIngreso> tiposIngresoList = new ArrayList<>();
while (rs.next()) {
TipoIngreso tipoIngreso = new TipoIngreso();
tipoIngreso.setId(rs.getInt("id"));
tipoIngreso.setNombre(rs.getString("nombre"));
public abstract List<TipoIngreso> findByNombre(String nombre);
LOGGER.log(Level.FINE, "Se a creado: {0]", tipoIngreso);
List<TipoIngreso> tiposIngresoFromResultSet(ResultSet rs) throws SQLException {
ArrayList<TipoIngreso> tiposIngresoList = new ArrayList<>();
while (rs.next()) {
TipoIngreso tipoIngreso = new TipoIngreso();
tipoIngreso.setId(rs.getInt("id"));
tipoIngreso.setNombre(rs.getString("nombre"));
tiposIngresoList.add(tipoIngreso);
}
return tiposIngresoList;
LOGGER.log(Level.FINE, "Se a creado: {0]", tipoIngreso);
tiposIngresoList.add(tipoIngreso);
}
return tiposIngresoList;
}
}

View File

@@ -1,14 +1,15 @@
package danielcortes.xyz.models.tipo_ingreso;
public class TipoIngresoToStringWrapper extends TipoIngreso{
public TipoIngresoToStringWrapper(TipoIngreso tipoIngreso) {
this.setId(tipoIngreso.getId());
this.setNombre(tipoIngreso.getNombre());
}
public class TipoIngresoToStringWrapper extends TipoIngreso {
public TipoIngresoToStringWrapper(TipoIngreso tipoIngreso) {
this.setId(tipoIngreso.getId());
this.setNombre(tipoIngreso.getNombre());
}
@Override
public String toString() {
return this.getNombre();
}
@Override
public String toString() {
return this.getNombre();
}
}

View File

@@ -1,99 +1,108 @@
package danielcortes.xyz.models.version;
import danielcortes.xyz.data.SQLiteConnectionHolder;
import java.io.*;
import java.sql.*;
import java.io.BufferedReader;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.sql.Connection;
import java.sql.DatabaseMetaData;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.logging.Level;
import java.util.logging.Logger;
import java.util.zip.ZipEntry;
import java.util.zip.ZipFile;
public class SQLiteVersionDAO extends VersionDAO {
private static final Logger LOGGER = Logger.getLogger(SQLiteVersionDAO.class.getName());
public SQLiteVersionDAO() {
this.connectionHolder = new SQLiteConnectionHolder();
private static final Logger LOGGER = Logger.getLogger(SQLiteVersionDAO.class.getName());
public SQLiteVersionDAO() {
this.connectionHolder = new SQLiteConnectionHolder();
}
private boolean tableVersionsExists() {
try {
DatabaseMetaData md = this.connectionHolder.getConnection().getMetaData();
ResultSet rs = md.getTables(null, null, "version", null);
boolean exists = rs.next();
rs.close();
return exists;
} catch (SQLException e) {
e.printStackTrace();
return false;
}
}
private boolean tableVersionsExists() {
try {
DatabaseMetaData md = this.connectionHolder.getConnection().getMetaData();
ResultSet rs = md.getTables(null, null, "version", null);
boolean exists = rs.next();
rs.close();
private int getCurrentVersion() {
if (tableVersionsExists()) {
try (Connection conn = this.connectionHolder.getConnection()) {
String query = "SELECT version FROM version LIMIT 1";
PreparedStatement ps = conn.prepareStatement(query);
ResultSet rs = ps.executeQuery();
return exists;
} catch (SQLException e) {
e.printStackTrace();
return false;
}
rs.next();
int version = rs.getInt(1);
rs.close();
ps.close();
return version;
} catch (SQLException e) {
LOGGER.log(Level.SEVERE, e.toString(), e);
}
}
return 0;
}
private int getCurrentVersion() {
if (tableVersionsExists()) {
try (Connection conn = this.connectionHolder.getConnection()) {
String query = "SELECT version FROM version LIMIT 1";
PreparedStatement ps = conn.prepareStatement(query);
ResultSet rs = ps.executeQuery();
rs.next();
int version = rs.getInt(1);
rs.close();
ps.close();
return version;
} catch (SQLException e) {
LOGGER.log(Level.SEVERE, e.toString(), e);
}
}
private InputStream getVersionScript(int version) {
try {
ZipFile zipFile = new ZipFile(new File("data/version_scripts"));
ZipEntry zipEntry = zipFile.getEntry(version + ".sql");
return zipFile.getInputStream(zipEntry);
} catch (IOException e) {
e.printStackTrace();
}
return new InputStream() {
@Override
public int read() {
return 0;
}
}
};
}
private InputStream getVersionScript(int version){
try {
ZipFile zipFile = new ZipFile(new File("data/version_scripts"));
ZipEntry zipEntry = zipFile.getEntry(version + ".sql");
return zipFile.getInputStream(zipEntry);
} catch (IOException e) {
e.printStackTrace();
}
return new InputStream() {
@Override
public int read(){
return 0;
}
};
}
private void executeVersionScript(int version) {
try (Connection conn = this.connectionHolder.getConnection()) {
Statement statement = conn.createStatement();
InputStream inputStream = getVersionScript(version);
BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
String line;
while ((line = reader.readLine()) != null) {
statement.addBatch(line);
}
reader.close();
private void executeVersionScript(int version){
try (Connection conn = this.connectionHolder.getConnection()) {
Statement statement = conn.createStatement();
InputStream inputStream = getVersionScript(version);
BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
String line;
while ((line = reader.readLine()) != null) {
statement.addBatch(line);
}
reader.close();
statement.executeBatch();
statement.close();
} catch (SQLException e) {
e.printStackTrace();
LOGGER.log(Level.SEVERE, e.toString(), e);
} catch (IOException e) {
e.printStackTrace();
}
statement.executeBatch();
statement.close();
} catch (SQLException e) {
e.printStackTrace();
LOGGER.log(Level.SEVERE, e.toString(), e);
} catch (IOException e) {
e.printStackTrace();
}
}
@Override
public void updateTo(int version) {
int currentVersion = this.getCurrentVersion();
while (currentVersion < version) {
currentVersion++;
executeVersionScript(currentVersion);
}
@Override
public void updateTo(int version) {
int currentVersion = this.getCurrentVersion();
while (currentVersion < version) {
currentVersion++;
executeVersionScript(currentVersion);
}
}
}

View File

@@ -3,6 +3,8 @@ package danielcortes.xyz.models.version;
import danielcortes.xyz.data.ConnectionHolder;
public abstract class VersionDAO {
protected ConnectionHolder connectionHolder;
public abstract void updateTo(int version);
protected ConnectionHolder connectionHolder;
public abstract void updateTo(int version);
}

View File

@@ -25,104 +25,105 @@ package danielcortes.xyz.utils;
import java.util.Comparator;
public class NaturalOrderComparator implements Comparator {
static char charAt(String s, int i) {
return i >= s.length() ? 0 : s.charAt(i);
}
int compareRight(String a, String b) {
int bias = 0, ia = 0, ib = 0;
static char charAt(String s, int i) {
return i >= s.length() ? 0 : s.charAt(i);
}
// The longest run of digits wins. That aside, the greatest
// value wins, but we can't know that it will until we've scanned
// both numbers to know that they have the same magnitude, so we
// remember it in BIAS.
for (; ; ia++, ib++) {
char ca = charAt(a, ia);
char cb = charAt(b, ib);
int compareRight(String a, String b) {
int bias = 0, ia = 0, ib = 0;
if (!Character.isDigit(ca) && !Character.isDigit(cb)) {
return bias;
}
if (!Character.isDigit(ca)) {
return -1;
}
if (!Character.isDigit(cb)) {
return +1;
}
if (ca == 0 && cb == 0) {
return bias;
}
// The longest run of digits wins. That aside, the greatest
// value wins, but we can't know that it will until we've scanned
// both numbers to know that they have the same magnitude, so we
// remember it in BIAS.
for (; ; ia++, ib++) {
char ca = charAt(a, ia);
char cb = charAt(b, ib);
if (bias == 0) {
if (ca < cb) {
bias = -1;
} else if (ca > cb) {
bias = +1;
}
}
if (!Character.isDigit(ca) && !Character.isDigit(cb)) {
return bias;
}
if (!Character.isDigit(ca)) {
return -1;
}
if (!Character.isDigit(cb)) {
return +1;
}
if (ca == 0 && cb == 0) {
return bias;
}
if (bias == 0) {
if (ca < cb) {
bias = -1;
} else if (ca > cb) {
bias = +1;
}
}
}
}
public int compare(Object o1, Object o2) {
String a = o1.toString();
String b = o2.toString();
public int compare(Object o1, Object o2) {
String a = o1.toString();
String b = o2.toString();
int ia = 0, ib = 0;
int nza = 0, nzb = 0;
char ca, cb;
int ia = 0, ib = 0;
int nza = 0, nzb = 0;
char ca, cb;
while (true) {
// Only count the number of zeroes leading the last number compared
nza = nzb = 0;
while (true) {
// Only count the number of zeroes leading the last number compared
nza = nzb = 0;
ca = charAt(a, ia);
cb = charAt(b, ib);
ca = charAt(a, ia);
cb = charAt(b, ib);
// skip over leading spaces or zeros
while (Character.isSpaceChar(ca) || ca == '0') {
if (ca == '0') {
nza++;
} else {
// Only count consecutive zeroes
nza = 0;
}
ca = charAt(a, ++ia);
}
while (Character.isSpaceChar(cb) || cb == '0') {
if (cb == '0') {
nzb++;
} else {
// Only count consecutive zeroes
nzb = 0;
}
cb = charAt(b, ++ib);
}
// Process run of digits
if (Character.isDigit(ca) && Character.isDigit(cb)) {
int bias = compareRight(a.substring(ia), b.substring(ib));
if (bias != 0) {
return bias;
}
}
if (ca == 0 && cb == 0) {
// The strings compare the same. Perhaps the caller
// will want to call strcmp to break the tie.
return nza - nzb;
}
if (ca < cb) {
return -1;
}
if (ca > cb) {
return +1;
}
++ia;
++ib;
// skip over leading spaces or zeros
while (Character.isSpaceChar(ca) || ca == '0') {
if (ca == '0') {
nza++;
} else {
// Only count consecutive zeroes
nza = 0;
}
ca = charAt(a, ++ia);
}
while (Character.isSpaceChar(cb) || cb == '0') {
if (cb == '0') {
nzb++;
} else {
// Only count consecutive zeroes
nzb = 0;
}
cb = charAt(b, ++ib);
}
// Process run of digits
if (Character.isDigit(ca) && Character.isDigit(cb)) {
int bias = compareRight(a.substring(ia), b.substring(ib));
if (bias != 0) {
return bias;
}
}
if (ca == 0 && cb == 0) {
// The strings compare the same. Perhaps the caller
// will want to call strcmp to break the tie.
return nza - nzb;
}
if (ca < cb) {
return -1;
}
if (ca > cb) {
return +1;
}
++ia;
++ib;
}
}
}

View File

@@ -27,38 +27,43 @@ package danielcortes.xyz.utils;
import java.util.Objects;
public class Pair<L, R> {
private final L left;
private final R right;
public Pair(L left, R right) {
this.left = left;
this.right = right;
}
private final L left;
private final R right;
public L getLeft() {
return left;
}
public Pair(L left, R right) {
this.left = left;
this.right = right;
}
public R getRight() {
return right;
}
public L getLeft() {
return left;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Pair<?, ?> pair = (Pair<?, ?>) o;
return left.equals(pair.left) &&
right.equals(pair.right);
}
public R getRight() {
return right;
}
@Override
public int hashCode() {
return Objects.hash(left, right);
@Override
public boolean equals(Object o) {
if (this == o) {
return true;
}
if (o == null || getClass() != o.getClass()) {
return false;
}
Pair<?, ?> pair = (Pair<?, ?>) o;
return left.equals(pair.left) &&
right.equals(pair.right);
}
@Override
public String toString() {
return "{left=" + left + ", right=" + right + "}";
}
@Override
public int hashCode() {
return Objects.hash(left, right);
}
@Override
public String toString() {
return "{left=" + left + ", right=" + right + "}";
}
}

View File

@@ -25,7 +25,8 @@
package danielcortes.xyz.utils;
public class StringUtils {
public static String capitalize(String string) {
return string.substring(0, 1).toUpperCase() + string.substring(1);
}
public static String capitalize(String string) {
return string.substring(0, 1).toUpperCase() + string.substring(1);
}
}

View File

@@ -28,316 +28,463 @@ import com.intellij.uiDesigner.core.GridConstraints;
import com.intellij.uiDesigner.core.GridLayoutManager;
import com.intellij.uiDesigner.core.Spacer;
import danielcortes.xyz.views.components.NumberFormatedTextField;
import javax.swing.*;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.Insets;
import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JComponent;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JSeparator;
import javax.swing.border.TitledBorder;
import java.awt.*;
public class ArqueoView {
private JPanel contentPanel;
private NumberFormatedTextField veinteMilField;
private NumberFormatedTextField diezMilField;
private NumberFormatedTextField cincoMilField;
private NumberFormatedTextField dosMilField;
private NumberFormatedTextField milField;
private NumberFormatedTextField quinientosField;
private NumberFormatedTextField cienField;
private NumberFormatedTextField cincuentaField;
private NumberFormatedTextField diezField;
private NumberFormatedTextField chequesField;
private NumberFormatedTextField tarjetasField;
private NumberFormatedTextField efectivoField;
private NumberFormatedTextField documentosField;
private NumberFormatedTextField egresosField;
private NumberFormatedTextField rendidoField;
private JButton guardarEfectivoButton;
private JButton guardarDocumentosButton;
private JButton calcularFondoButton;
private NumberFormatedTextField diferenciaField;
private NumberFormatedTextField debeRendirField;
private NumberFormatedTextField retiroField;
public JPanel getContentPanel() {
return contentPanel;
}
private JPanel contentPanel;
private NumberFormatedTextField veinteMilField;
private NumberFormatedTextField diezMilField;
private NumberFormatedTextField cincoMilField;
private NumberFormatedTextField dosMilField;
private NumberFormatedTextField milField;
private NumberFormatedTextField quinientosField;
private NumberFormatedTextField cienField;
private NumberFormatedTextField cincuentaField;
private NumberFormatedTextField diezField;
private NumberFormatedTextField chequesField;
private NumberFormatedTextField tarjetasField;
private NumberFormatedTextField efectivoField;
private NumberFormatedTextField documentosField;
private NumberFormatedTextField egresosField;
private NumberFormatedTextField rendidoField;
private JButton guardarEfectivoButton;
private JButton guardarDocumentosButton;
private JButton calcularFondoButton;
private NumberFormatedTextField diferenciaField;
private NumberFormatedTextField debeRendirField;
private NumberFormatedTextField retiroField;
public NumberFormatedTextField getVeinteMilField() {
return veinteMilField;
}
public NumberFormatedTextField getDiezMilField() {
return diezMilField;
}
public NumberFormatedTextField getCincoMilField() {
return cincoMilField;
}
public NumberFormatedTextField getDosMilField() {
return dosMilField;
}
public NumberFormatedTextField getMilField() {
return milField;
}
public NumberFormatedTextField getQuinientosField() {
return quinientosField;
}
public NumberFormatedTextField getCienField() {
return cienField;
}
public NumberFormatedTextField getCincuentaField() {
return cincuentaField;
}
public NumberFormatedTextField getDiezField() {
return diezField;
}
public NumberFormatedTextField getChequesField() {
return chequesField;
}
public NumberFormatedTextField getTarjetasField() {
return tarjetasField;
}
public NumberFormatedTextField getEfectivoField() {
return efectivoField;
}
public NumberFormatedTextField getDocumentosField() {
return documentosField;
}
public NumberFormatedTextField getEgresosField() {
return egresosField;
}
public NumberFormatedTextField getRendidoField() {
return rendidoField;
}
public JButton getGuardarEfectivoButton() {
return guardarEfectivoButton;
}
public JButton getGuardarDocumentosButton() {
return guardarDocumentosButton;
}
public JButton getCalcularFondoButton() {
return calcularFondoButton;
}
public NumberFormatedTextField getDiferenciaField() {
return diferenciaField;
}
public NumberFormatedTextField getDebeRendirField() {
return debeRendirField;
}
public NumberFormatedTextField getRetiroField() {
return retiroField;
}
{
{
// GUI initializer generated by IntelliJ IDEA GUI Designer
// >>> IMPORTANT!! <<<
// DO NOT EDIT OR ADD ANY CODE HERE!
$$$setupUI$$$();
}
$$$setupUI$$$();
}
/**
* Method generated by IntelliJ IDEA GUI Designer
* >>> IMPORTANT!! <<<
* DO NOT edit this method OR call it in your code!
*
* @noinspection ALL
*/
private void $$$setupUI$$$() {
contentPanel = new JPanel();
contentPanel.setLayout(new GridLayoutManager(3, 2, new Insets(0, 0, 0, 0), -1, -1));
final JPanel panel1 = new JPanel();
panel1.setLayout(new GridLayoutManager(7, 2, new Insets(10, 10, 10, 10), -1, -1));
contentPanel.add(panel1, new GridConstraints(0, 1, 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));
panel1.setBorder(BorderFactory.createTitledBorder(BorderFactory.createEtchedBorder(), "Resumen"));
final JLabel label1 = new JLabel();
label1.setText("Total Egresos");
panel1.add(label1, new GridConstraints(1, 0, 1, 1, GridConstraints.ANCHOR_EAST, GridConstraints.FILL_NONE, GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
egresosField = new NumberFormatedTextField();
egresosField.setEditable(false);
egresosField.setText("");
panel1.add(egresosField, new GridConstraints(1, 1, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_WANT_GROW, GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(150, -1), null, 0, false));
diferenciaField = new NumberFormatedTextField();
diferenciaField.setEditable(false);
Font diferenciaFieldFont = this.$$$getFont$$$(null, Font.BOLD, -1, diferenciaField.getFont());
if (diferenciaFieldFont != null) diferenciaField.setFont(diferenciaFieldFont);
diferenciaField.setText("");
panel1.add(diferenciaField, new GridConstraints(6, 1, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_WANT_GROW, GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(150, -1), null, 0, false));
final JLabel label2 = new JLabel();
label2.setText("Diferencia");
panel1.add(label2, new GridConstraints(6, 0, 1, 1, GridConstraints.ANCHOR_EAST, GridConstraints.FILL_NONE, GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
final JSeparator separator1 = new JSeparator();
panel1.add(separator1, new GridConstraints(3, 0, 1, 2, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_BOTH, GridConstraints.SIZEPOLICY_WANT_GROW, GridConstraints.SIZEPOLICY_WANT_GROW, null, null, null, 0, false));
final JLabel label3 = new JLabel();
label3.setText("Debe Rendir");
panel1.add(label3, new GridConstraints(5, 0, 1, 1, GridConstraints.ANCHOR_EAST, GridConstraints.FILL_NONE, GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
debeRendirField = new NumberFormatedTextField();
debeRendirField.setEditable(false);
Font debeRendirFieldFont = this.$$$getFont$$$(null, Font.BOLD, -1, debeRendirField.getFont());
if (debeRendirFieldFont != null) debeRendirField.setFont(debeRendirFieldFont);
debeRendirField.setText("");
panel1.add(debeRendirField, new GridConstraints(5, 1, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_WANT_GROW, GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(150, -1), null, 0, false));
rendidoField = new NumberFormatedTextField();
rendidoField.setEditable(false);
Font rendidoFieldFont = this.$$$getFont$$$(null, Font.BOLD, -1, rendidoField.getFont());
if (rendidoFieldFont != null) rendidoField.setFont(rendidoFieldFont);
rendidoField.setText("");
panel1.add(rendidoField, new GridConstraints(4, 1, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_WANT_GROW, GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(150, -1), null, 0, false));
final JLabel label4 = new JLabel();
label4.setText("Rendido");
panel1.add(label4, new GridConstraints(4, 0, 1, 1, GridConstraints.ANCHOR_EAST, GridConstraints.FILL_NONE, GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
final JLabel label5 = new JLabel();
label5.setText("Total Documentos");
panel1.add(label5, new GridConstraints(2, 0, 1, 1, GridConstraints.ANCHOR_EAST, GridConstraints.FILL_NONE, GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
documentosField = new NumberFormatedTextField();
documentosField.setEditable(false);
documentosField.setText("");
panel1.add(documentosField, new GridConstraints(2, 1, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_WANT_GROW, GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(150, -1), null, 0, false));
final JLabel label6 = new JLabel();
label6.setText("Total Efectivo");
panel1.add(label6, new GridConstraints(0, 0, 1, 1, GridConstraints.ANCHOR_EAST, GridConstraints.FILL_NONE, GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
efectivoField = new NumberFormatedTextField();
efectivoField.setEditable(false);
efectivoField.setText("");
panel1.add(efectivoField, new GridConstraints(0, 1, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_WANT_GROW, GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(150, -1), null, 0, false));
final JPanel panel2 = new JPanel();
panel2.setLayout(new GridLayoutManager(2, 1, new Insets(0, 0, 0, 0), -1, -1));
contentPanel.add(panel2, new GridConstraints(0, 0, 3, 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));
final JPanel panel3 = new JPanel();
panel3.setLayout(new GridLayoutManager(10, 2, new Insets(10, 10, 10, 10), -1, -1));
panel2.add(panel3, 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));
panel3.setBorder(BorderFactory.createTitledBorder(BorderFactory.createEtchedBorder(), "Detalle Efectivo", TitledBorder.DEFAULT_JUSTIFICATION, TitledBorder.DEFAULT_POSITION, this.$$$getFont$$$(null, -1, -1, panel3.getFont())));
final JLabel label7 = new JLabel();
label7.setText("$20000");
panel3.add(label7, new GridConstraints(0, 0, 1, 1, GridConstraints.ANCHOR_EAST, GridConstraints.FILL_NONE, GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
veinteMilField = new NumberFormatedTextField();
veinteMilField.setText("");
panel3.add(veinteMilField, new GridConstraints(0, 1, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_WANT_GROW, GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(200, -1), null, 0, false));
final JLabel label8 = new JLabel();
label8.setText("$10000");
panel3.add(label8, new GridConstraints(1, 0, 1, 1, GridConstraints.ANCHOR_EAST, GridConstraints.FILL_NONE, GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
diezMilField = new NumberFormatedTextField();
diezMilField.setText("");
panel3.add(diezMilField, new GridConstraints(1, 1, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_WANT_GROW, GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(200, -1), null, 0, false));
cincoMilField = new NumberFormatedTextField();
cincoMilField.setText("");
panel3.add(cincoMilField, new GridConstraints(2, 1, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_WANT_GROW, GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(200, -1), null, 0, false));
final JLabel label9 = new JLabel();
label9.setText("$5000");
panel3.add(label9, new GridConstraints(2, 0, 1, 1, GridConstraints.ANCHOR_EAST, GridConstraints.FILL_NONE, GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
final JLabel label10 = new JLabel();
label10.setText("$2000");
panel3.add(label10, new GridConstraints(3, 0, 1, 1, GridConstraints.ANCHOR_EAST, GridConstraints.FILL_NONE, GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
dosMilField = new NumberFormatedTextField();
dosMilField.setText("");
panel3.add(dosMilField, new GridConstraints(3, 1, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_WANT_GROW, GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(200, -1), null, 0, false));
milField = new NumberFormatedTextField();
milField.setText("");
panel3.add(milField, new GridConstraints(4, 1, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_WANT_GROW, GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(200, -1), null, 0, false));
final JLabel label11 = new JLabel();
label11.setText("$1000");
panel3.add(label11, new GridConstraints(4, 0, 1, 1, GridConstraints.ANCHOR_EAST, GridConstraints.FILL_NONE, GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
final JLabel label12 = new JLabel();
label12.setText("$500");
panel3.add(label12, new GridConstraints(5, 0, 1, 1, GridConstraints.ANCHOR_EAST, GridConstraints.FILL_NONE, GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
quinientosField = new NumberFormatedTextField();
quinientosField.setText("");
panel3.add(quinientosField, new GridConstraints(5, 1, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_WANT_GROW, GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(200, -1), null, 0, false));
final JLabel label13 = new JLabel();
label13.setText("$100");
panel3.add(label13, new GridConstraints(6, 0, 1, 1, GridConstraints.ANCHOR_EAST, GridConstraints.FILL_NONE, GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
cienField = new NumberFormatedTextField();
cienField.setText("");
panel3.add(cienField, new GridConstraints(6, 1, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_WANT_GROW, GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(200, -1), null, 0, false));
final JLabel label14 = new JLabel();
label14.setText("$50");
panel3.add(label14, new GridConstraints(7, 0, 1, 1, GridConstraints.ANCHOR_EAST, GridConstraints.FILL_NONE, GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
cincuentaField = new NumberFormatedTextField();
cincuentaField.setText("");
panel3.add(cincuentaField, new GridConstraints(7, 1, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_WANT_GROW, GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(200, -1), null, 0, false));
final JLabel label15 = new JLabel();
label15.setText("$10");
panel3.add(label15, new GridConstraints(8, 0, 1, 1, GridConstraints.ANCHOR_EAST, GridConstraints.FILL_NONE, GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
diezField = new NumberFormatedTextField();
diezField.setText("");
panel3.add(diezField, new GridConstraints(8, 1, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_WANT_GROW, GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(200, -1), null, 0, false));
guardarEfectivoButton = new JButton();
guardarEfectivoButton.setText("Guardar");
panel3.add(guardarEfectivoButton, new GridConstraints(9, 0, 1, 2, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(200, -1), null, 0, false));
final JPanel panel4 = new JPanel();
panel4.setLayout(new GridLayoutManager(4, 2, new Insets(10, 10, 10, 10), -1, -1));
panel2.add(panel4, new GridConstraints(1, 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));
panel4.setBorder(BorderFactory.createTitledBorder(BorderFactory.createEtchedBorder(), "Detalle Documentos", TitledBorder.DEFAULT_JUSTIFICATION, TitledBorder.DEFAULT_POSITION, this.$$$getFont$$$(null, -1, -1, panel4.getFont())));
chequesField = new NumberFormatedTextField();
chequesField.setText("");
panel4.add(chequesField, new GridConstraints(0, 1, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_WANT_GROW, GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(150, -1), null, 0, false));
final JLabel label16 = new JLabel();
label16.setText("Tarjetas de Credito");
panel4.add(label16, new GridConstraints(1, 0, 1, 1, GridConstraints.ANCHOR_EAST, GridConstraints.FILL_NONE, GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
tarjetasField = new NumberFormatedTextField();
tarjetasField.setText("");
panel4.add(tarjetasField, new GridConstraints(1, 1, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_WANT_GROW, GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(150, -1), null, 0, false));
guardarDocumentosButton = new JButton();
guardarDocumentosButton.setText("Guardar");
panel4.add(guardarDocumentosButton, new GridConstraints(3, 0, 1, 2, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
final JLabel label17 = new JLabel();
label17.setText("Cheques al Dia");
panel4.add(label17, new GridConstraints(0, 0, 1, 1, GridConstraints.ANCHOR_EAST, GridConstraints.FILL_NONE, GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
retiroField = new NumberFormatedTextField();
retiroField.setText("");
panel4.add(retiroField, new GridConstraints(2, 1, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_WANT_GROW, GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(150, -1), null, 0, false));
final JLabel label18 = new JLabel();
label18.setText("Retiro");
panel4.add(label18, new GridConstraints(2, 0, 1, 1, GridConstraints.ANCHOR_EAST, GridConstraints.FILL_NONE, GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
final JPanel panel5 = new JPanel();
panel5.setLayout(new GridLayoutManager(1, 1, new Insets(0, 0, 0, 0), -1, -1));
contentPanel.add(panel5, new GridConstraints(1, 1, 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));
calcularFondoButton = new JButton();
calcularFondoButton.setText("Calcular Fondo");
panel5.add(calcularFondoButton, new GridConstraints(0, 0, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
final Spacer spacer1 = new Spacer();
contentPanel.add(spacer1, new GridConstraints(2, 1, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_VERTICAL, 1, GridConstraints.SIZEPOLICY_WANT_GROW, null, null, null, 0, false));
}
public JPanel getContentPanel() {
return contentPanel;
}
/**
* @noinspection ALL
*/
private Font $$$getFont$$$(String fontName, int style, int size, Font currentFont) {
if (currentFont == null) return null;
String resultName;
if (fontName == null) {
resultName = currentFont.getName();
} else {
Font testFont = new Font(fontName, Font.PLAIN, 10);
if (testFont.canDisplay('a') && testFont.canDisplay('1')) {
resultName = fontName;
} else {
resultName = currentFont.getName();
}
}
return new Font(resultName, style >= 0 ? style : currentFont.getStyle(), size >= 0 ? size : currentFont.getSize());
}
public NumberFormatedTextField getVeinteMilField() {
return veinteMilField;
}
/**
* @noinspection ALL
*/
public JComponent $$$getRootComponent$$$() {
return contentPanel;
public NumberFormatedTextField getDiezMilField() {
return diezMilField;
}
public NumberFormatedTextField getCincoMilField() {
return cincoMilField;
}
public NumberFormatedTextField getDosMilField() {
return dosMilField;
}
public NumberFormatedTextField getMilField() {
return milField;
}
public NumberFormatedTextField getQuinientosField() {
return quinientosField;
}
public NumberFormatedTextField getCienField() {
return cienField;
}
public NumberFormatedTextField getCincuentaField() {
return cincuentaField;
}
public NumberFormatedTextField getDiezField() {
return diezField;
}
public NumberFormatedTextField getChequesField() {
return chequesField;
}
public NumberFormatedTextField getTarjetasField() {
return tarjetasField;
}
public NumberFormatedTextField getEfectivoField() {
return efectivoField;
}
public NumberFormatedTextField getDocumentosField() {
return documentosField;
}
public NumberFormatedTextField getEgresosField() {
return egresosField;
}
public NumberFormatedTextField getRendidoField() {
return rendidoField;
}
public JButton getGuardarEfectivoButton() {
return guardarEfectivoButton;
}
public JButton getGuardarDocumentosButton() {
return guardarDocumentosButton;
}
public JButton getCalcularFondoButton() {
return calcularFondoButton;
}
public NumberFormatedTextField getDiferenciaField() {
return diferenciaField;
}
public NumberFormatedTextField getDebeRendirField() {
return debeRendirField;
}
public NumberFormatedTextField getRetiroField() {
return retiroField;
}
/**
* Method generated by IntelliJ IDEA GUI Designer >>> IMPORTANT!! <<< DO NOT edit this method OR
* call it in your code!
*
* @noinspection ALL
*/
private void $$$setupUI$$$() {
contentPanel = new JPanel();
contentPanel.setLayout(new GridLayoutManager(3, 2, new Insets(0, 0, 0, 0), -1, -1));
final JPanel panel1 = new JPanel();
panel1.setLayout(new GridLayoutManager(7, 2, new Insets(10, 10, 10, 10), -1, -1));
contentPanel.add(panel1,
new GridConstraints(0, 1, 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));
panel1
.setBorder(BorderFactory.createTitledBorder(BorderFactory.createEtchedBorder(), "Resumen"));
final JLabel label1 = new JLabel();
label1.setText("Total Egresos");
panel1.add(label1,
new GridConstraints(1, 0, 1, 1, GridConstraints.ANCHOR_EAST, GridConstraints.FILL_NONE,
GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0,
false));
egresosField = new NumberFormatedTextField();
egresosField.setEditable(false);
egresosField.setText("");
panel1.add(egresosField, new GridConstraints(1, 1, 1, 1, GridConstraints.ANCHOR_WEST,
GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_WANT_GROW,
GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(150, -1), null, 0, false));
diferenciaField = new NumberFormatedTextField();
diferenciaField.setEditable(false);
Font diferenciaFieldFont = this.$$$getFont$$$(null, Font.BOLD, -1, diferenciaField.getFont());
if (diferenciaFieldFont != null) {
diferenciaField.setFont(diferenciaFieldFont);
}
diferenciaField.setText("");
panel1.add(diferenciaField, new GridConstraints(6, 1, 1, 1, GridConstraints.ANCHOR_CENTER,
GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_WANT_GROW,
GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(150, -1), null, 0, false));
final JLabel label2 = new JLabel();
label2.setText("Diferencia");
panel1.add(label2,
new GridConstraints(6, 0, 1, 1, GridConstraints.ANCHOR_EAST, GridConstraints.FILL_NONE,
GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0,
false));
final JSeparator separator1 = new JSeparator();
panel1.add(separator1,
new GridConstraints(3, 0, 1, 2, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_BOTH,
GridConstraints.SIZEPOLICY_WANT_GROW, GridConstraints.SIZEPOLICY_WANT_GROW, null, null,
null, 0, false));
final JLabel label3 = new JLabel();
label3.setText("Debe Rendir");
panel1.add(label3,
new GridConstraints(5, 0, 1, 1, GridConstraints.ANCHOR_EAST, GridConstraints.FILL_NONE,
GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0,
false));
debeRendirField = new NumberFormatedTextField();
debeRendirField.setEditable(false);
Font debeRendirFieldFont = this.$$$getFont$$$(null, Font.BOLD, -1, debeRendirField.getFont());
if (debeRendirFieldFont != null) {
debeRendirField.setFont(debeRendirFieldFont);
}
debeRendirField.setText("");
panel1.add(debeRendirField, new GridConstraints(5, 1, 1, 1, GridConstraints.ANCHOR_WEST,
GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_WANT_GROW,
GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(150, -1), null, 0, false));
rendidoField = new NumberFormatedTextField();
rendidoField.setEditable(false);
Font rendidoFieldFont = this.$$$getFont$$$(null, Font.BOLD, -1, rendidoField.getFont());
if (rendidoFieldFont != null) {
rendidoField.setFont(rendidoFieldFont);
}
rendidoField.setText("");
panel1.add(rendidoField, new GridConstraints(4, 1, 1, 1, GridConstraints.ANCHOR_WEST,
GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_WANT_GROW,
GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(150, -1), null, 0, false));
final JLabel label4 = new JLabel();
label4.setText("Rendido");
panel1.add(label4,
new GridConstraints(4, 0, 1, 1, GridConstraints.ANCHOR_EAST, GridConstraints.FILL_NONE,
GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0,
false));
final JLabel label5 = new JLabel();
label5.setText("Total Documentos");
panel1.add(label5,
new GridConstraints(2, 0, 1, 1, GridConstraints.ANCHOR_EAST, GridConstraints.FILL_NONE,
GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0,
false));
documentosField = new NumberFormatedTextField();
documentosField.setEditable(false);
documentosField.setText("");
panel1.add(documentosField, new GridConstraints(2, 1, 1, 1, GridConstraints.ANCHOR_WEST,
GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_WANT_GROW,
GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(150, -1), null, 0, false));
final JLabel label6 = new JLabel();
label6.setText("Total Efectivo");
panel1.add(label6,
new GridConstraints(0, 0, 1, 1, GridConstraints.ANCHOR_EAST, GridConstraints.FILL_NONE,
GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0,
false));
efectivoField = new NumberFormatedTextField();
efectivoField.setEditable(false);
efectivoField.setText("");
panel1.add(efectivoField, new GridConstraints(0, 1, 1, 1, GridConstraints.ANCHOR_WEST,
GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_WANT_GROW,
GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(150, -1), null, 0, false));
final JPanel panel2 = new JPanel();
panel2.setLayout(new GridLayoutManager(2, 1, new Insets(0, 0, 0, 0), -1, -1));
contentPanel.add(panel2,
new GridConstraints(0, 0, 3, 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));
final JPanel panel3 = new JPanel();
panel3.setLayout(new GridLayoutManager(10, 2, new Insets(10, 10, 10, 10), -1, -1));
panel2.add(panel3,
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));
panel3.setBorder(BorderFactory
.createTitledBorder(BorderFactory.createEtchedBorder(), "Detalle Efectivo",
TitledBorder.DEFAULT_JUSTIFICATION, TitledBorder.DEFAULT_POSITION,
this.$$$getFont$$$(null, -1, -1, panel3.getFont())));
final JLabel label7 = new JLabel();
label7.setText("$20000");
panel3.add(label7,
new GridConstraints(0, 0, 1, 1, GridConstraints.ANCHOR_EAST, GridConstraints.FILL_NONE,
GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0,
false));
veinteMilField = new NumberFormatedTextField();
veinteMilField.setText("");
panel3.add(veinteMilField, new GridConstraints(0, 1, 1, 1, GridConstraints.ANCHOR_WEST,
GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_WANT_GROW,
GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(200, -1), null, 0, false));
final JLabel label8 = new JLabel();
label8.setText("$10000");
panel3.add(label8,
new GridConstraints(1, 0, 1, 1, GridConstraints.ANCHOR_EAST, GridConstraints.FILL_NONE,
GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0,
false));
diezMilField = new NumberFormatedTextField();
diezMilField.setText("");
panel3.add(diezMilField, new GridConstraints(1, 1, 1, 1, GridConstraints.ANCHOR_WEST,
GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_WANT_GROW,
GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(200, -1), null, 0, false));
cincoMilField = new NumberFormatedTextField();
cincoMilField.setText("");
panel3.add(cincoMilField, new GridConstraints(2, 1, 1, 1, GridConstraints.ANCHOR_WEST,
GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_WANT_GROW,
GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(200, -1), null, 0, false));
final JLabel label9 = new JLabel();
label9.setText("$5000");
panel3.add(label9,
new GridConstraints(2, 0, 1, 1, GridConstraints.ANCHOR_EAST, GridConstraints.FILL_NONE,
GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0,
false));
final JLabel label10 = new JLabel();
label10.setText("$2000");
panel3.add(label10,
new GridConstraints(3, 0, 1, 1, GridConstraints.ANCHOR_EAST, GridConstraints.FILL_NONE,
GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0,
false));
dosMilField = new NumberFormatedTextField();
dosMilField.setText("");
panel3.add(dosMilField, new GridConstraints(3, 1, 1, 1, GridConstraints.ANCHOR_WEST,
GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_WANT_GROW,
GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(200, -1), null, 0, false));
milField = new NumberFormatedTextField();
milField.setText("");
panel3.add(milField, new GridConstraints(4, 1, 1, 1, GridConstraints.ANCHOR_WEST,
GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_WANT_GROW,
GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(200, -1), null, 0, false));
final JLabel label11 = new JLabel();
label11.setText("$1000");
panel3.add(label11,
new GridConstraints(4, 0, 1, 1, GridConstraints.ANCHOR_EAST, GridConstraints.FILL_NONE,
GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0,
false));
final JLabel label12 = new JLabel();
label12.setText("$500");
panel3.add(label12,
new GridConstraints(5, 0, 1, 1, GridConstraints.ANCHOR_EAST, GridConstraints.FILL_NONE,
GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0,
false));
quinientosField = new NumberFormatedTextField();
quinientosField.setText("");
panel3.add(quinientosField, new GridConstraints(5, 1, 1, 1, GridConstraints.ANCHOR_WEST,
GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_WANT_GROW,
GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(200, -1), null, 0, false));
final JLabel label13 = new JLabel();
label13.setText("$100");
panel3.add(label13,
new GridConstraints(6, 0, 1, 1, GridConstraints.ANCHOR_EAST, GridConstraints.FILL_NONE,
GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0,
false));
cienField = new NumberFormatedTextField();
cienField.setText("");
panel3.add(cienField, new GridConstraints(6, 1, 1, 1, GridConstraints.ANCHOR_WEST,
GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_WANT_GROW,
GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(200, -1), null, 0, false));
final JLabel label14 = new JLabel();
label14.setText("$50");
panel3.add(label14,
new GridConstraints(7, 0, 1, 1, GridConstraints.ANCHOR_EAST, GridConstraints.FILL_NONE,
GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0,
false));
cincuentaField = new NumberFormatedTextField();
cincuentaField.setText("");
panel3.add(cincuentaField, new GridConstraints(7, 1, 1, 1, GridConstraints.ANCHOR_WEST,
GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_WANT_GROW,
GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(200, -1), null, 0, false));
final JLabel label15 = new JLabel();
label15.setText("$10");
panel3.add(label15,
new GridConstraints(8, 0, 1, 1, GridConstraints.ANCHOR_EAST, GridConstraints.FILL_NONE,
GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0,
false));
diezField = new NumberFormatedTextField();
diezField.setText("");
panel3.add(diezField, new GridConstraints(8, 1, 1, 1, GridConstraints.ANCHOR_WEST,
GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_WANT_GROW,
GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(200, -1), null, 0, false));
guardarEfectivoButton = new JButton();
guardarEfectivoButton.setText("Guardar");
panel3.add(guardarEfectivoButton, new GridConstraints(9, 0, 1, 2, GridConstraints.ANCHOR_CENTER,
GridConstraints.FILL_HORIZONTAL,
GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW,
GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(200, -1), null, 0, false));
final JPanel panel4 = new JPanel();
panel4.setLayout(new GridLayoutManager(4, 2, new Insets(10, 10, 10, 10), -1, -1));
panel2.add(panel4,
new GridConstraints(1, 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));
panel4.setBorder(BorderFactory
.createTitledBorder(BorderFactory.createEtchedBorder(), "Detalle Documentos",
TitledBorder.DEFAULT_JUSTIFICATION, TitledBorder.DEFAULT_POSITION,
this.$$$getFont$$$(null, -1, -1, panel4.getFont())));
chequesField = new NumberFormatedTextField();
chequesField.setText("");
panel4.add(chequesField, new GridConstraints(0, 1, 1, 1, GridConstraints.ANCHOR_WEST,
GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_WANT_GROW,
GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(150, -1), null, 0, false));
final JLabel label16 = new JLabel();
label16.setText("Tarjetas de Credito");
panel4.add(label16,
new GridConstraints(1, 0, 1, 1, GridConstraints.ANCHOR_EAST, GridConstraints.FILL_NONE,
GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0,
false));
tarjetasField = new NumberFormatedTextField();
tarjetasField.setText("");
panel4.add(tarjetasField, new GridConstraints(1, 1, 1, 1, GridConstraints.ANCHOR_WEST,
GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_WANT_GROW,
GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(150, -1), null, 0, false));
guardarDocumentosButton = new JButton();
guardarDocumentosButton.setText("Guardar");
panel4.add(guardarDocumentosButton,
new GridConstraints(3, 0, 1, 2, GridConstraints.ANCHOR_CENTER,
GridConstraints.FILL_HORIZONTAL,
GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW,
GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
final JLabel label17 = new JLabel();
label17.setText("Cheques al Dia");
panel4.add(label17,
new GridConstraints(0, 0, 1, 1, GridConstraints.ANCHOR_EAST, GridConstraints.FILL_NONE,
GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0,
false));
retiroField = new NumberFormatedTextField();
retiroField.setText("");
panel4.add(retiroField, new GridConstraints(2, 1, 1, 1, GridConstraints.ANCHOR_WEST,
GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_WANT_GROW,
GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(150, -1), null, 0, false));
final JLabel label18 = new JLabel();
label18.setText("Retiro");
panel4.add(label18,
new GridConstraints(2, 0, 1, 1, GridConstraints.ANCHOR_EAST, GridConstraints.FILL_NONE,
GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0,
false));
final JPanel panel5 = new JPanel();
panel5.setLayout(new GridLayoutManager(1, 1, new Insets(0, 0, 0, 0), -1, -1));
contentPanel.add(panel5,
new GridConstraints(1, 1, 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));
calcularFondoButton = new JButton();
calcularFondoButton.setText("Calcular Fondo");
panel5.add(calcularFondoButton, new GridConstraints(0, 0, 1, 1, GridConstraints.ANCHOR_CENTER,
GridConstraints.FILL_HORIZONTAL,
GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW,
GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
final Spacer spacer1 = new Spacer();
contentPanel.add(spacer1, new GridConstraints(2, 1, 1, 1, GridConstraints.ANCHOR_CENTER,
GridConstraints.FILL_VERTICAL, 1, GridConstraints.SIZEPOLICY_WANT_GROW, null, null, null, 0,
false));
}
/**
* @noinspection ALL
*/
private Font $$$getFont$$$(String fontName, int style, int size, Font currentFont) {
if (currentFont == null) {
return null;
}
String resultName;
if (fontName == null) {
resultName = currentFont.getName();
} else {
Font testFont = new Font(fontName, Font.PLAIN, 10);
if (testFont.canDisplay('a') && testFont.canDisplay('1')) {
resultName = fontName;
} else {
resultName = currentFont.getName();
}
}
return new Font(resultName, style >= 0 ? style : currentFont.getStyle(),
size >= 0 ? size : currentFont.getSize());
}
/**
* @noinspection ALL
*/
public JComponent $$$getRootComponent$$$() {
return contentPanel;
}
}

View File

@@ -2,56 +2,65 @@ package danielcortes.xyz.views;
import com.intellij.uiDesigner.core.GridConstraints;
import com.intellij.uiDesigner.core.GridLayoutManager;
import javax.swing.*;
import java.awt.*;
import java.awt.CardLayout;
import java.awt.Insets;
import javax.swing.JComponent;
import javax.swing.JPanel;
public class BaseLayout {
private JPanel contentPanel;
private JPanel sidePanel;
private JPanel mainPanel;
public JPanel getContentPanel() {
return contentPanel;
}
private JPanel contentPanel;
private JPanel sidePanel;
private JPanel mainPanel;
public JPanel getSidePanel() {
return sidePanel;
}
public JPanel getMainPanel() {
return mainPanel;
}
{
{
// GUI initializer generated by IntelliJ IDEA GUI Designer
// >>> IMPORTANT!! <<<
// DO NOT EDIT OR ADD ANY CODE HERE!
$$$setupUI$$$();
}
$$$setupUI$$$();
}
/**
* Method generated by IntelliJ IDEA GUI Designer
* >>> IMPORTANT!! <<<
* DO NOT edit this method OR call it in your code!
*
* @noinspection ALL
*/
private void $$$setupUI$$$() {
contentPanel = new JPanel();
contentPanel.setLayout(new GridLayoutManager(1, 2, new Insets(10, 10, 10, 10), -1, -1));
sidePanel = new JPanel();
sidePanel.setLayout(new CardLayout(0, 0));
contentPanel.add(sidePanel, new GridConstraints(0, 0, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_VERTICAL, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, null, null, null, 0, false));
mainPanel = new JPanel();
mainPanel.setLayout(new CardLayout(0, 0));
contentPanel.add(mainPanel, new GridConstraints(0, 1, 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));
}
public JPanel getContentPanel() {
return contentPanel;
}
/**
* @noinspection ALL
*/
public JComponent $$$getRootComponent$$$() {
return contentPanel;
}
public JPanel getSidePanel() {
return sidePanel;
}
public JPanel getMainPanel() {
return mainPanel;
}
/**
* Method generated by IntelliJ IDEA GUI Designer >>> IMPORTANT!! <<< DO NOT edit this method OR
* call it in your code!
*
* @noinspection ALL
*/
private void $$$setupUI$$$() {
contentPanel = new JPanel();
contentPanel.setLayout(new GridLayoutManager(1, 2, new Insets(10, 10, 10, 10), -1, -1));
sidePanel = new JPanel();
sidePanel.setLayout(new CardLayout(0, 0));
contentPanel.add(sidePanel,
new GridConstraints(0, 0, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_VERTICAL,
GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW,
GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, null, null,
null, 0, false));
mainPanel = new JPanel();
mainPanel.setLayout(new CardLayout(0, 0));
contentPanel.add(mainPanel,
new GridConstraints(0, 1, 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));
}
/**
* @noinspection ALL
*/
public JComponent $$$getRootComponent$$$() {
return contentPanel;
}
}

View File

@@ -28,98 +28,126 @@ import com.github.lgooddatepicker.components.DatePicker;
import com.intellij.uiDesigner.core.GridConstraints;
import com.intellij.uiDesigner.core.GridLayoutManager;
import com.intellij.uiDesigner.core.Spacer;
import javax.swing.*;
import java.awt.*;
import java.awt.CardLayout;
import java.awt.Dimension;
import java.awt.Insets;
import javax.swing.ButtonGroup;
import javax.swing.JComponent;
import javax.swing.JPanel;
import javax.swing.JToggleButton;
public class CajasView {
private JToggleButton egresosButton;
private JToggleButton ingresosButton;
private JPanel contentPanel;
private JPanel cardPanel;
private JPanel controlsPanel;
private JToggleButton arqueoButton;
private DatePicker datePicker;
public JToggleButton getEgresosButton() {
return egresosButton;
}
private JToggleButton egresosButton;
private JToggleButton ingresosButton;
private JPanel contentPanel;
private JPanel cardPanel;
private JPanel controlsPanel;
private JToggleButton arqueoButton;
private DatePicker datePicker;
public JToggleButton getIngresosButton() {
return ingresosButton;
}
public JToggleButton getArqueoButton() {
return arqueoButton;
}
public DatePicker getDatePicker() {
return datePicker;
}
public JPanel getContentPanel() {
return contentPanel;
}
public JPanel getCardPanel() {
return cardPanel;
}
{
{
// GUI initializer generated by IntelliJ IDEA GUI Designer
// >>> IMPORTANT!! <<<
// DO NOT EDIT OR ADD ANY CODE HERE!
$$$setupUI$$$();
}
$$$setupUI$$$();
}
/**
* Method generated by IntelliJ IDEA GUI Designer
* >>> IMPORTANT!! <<<
* DO NOT edit this method OR call it in your code!
*
* @noinspection ALL
*/
private void $$$setupUI$$$() {
contentPanel = new JPanel();
contentPanel.setLayout(new GridLayoutManager(2, 1, new Insets(10, 10, 10, 10), -1, -1));
cardPanel = new JPanel();
cardPanel.setLayout(new CardLayout(0, 0));
contentPanel.add(cardPanel, new GridConstraints(1, 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));
controlsPanel = new JPanel();
controlsPanel.setLayout(new GridLayoutManager(1, 5, new Insets(0, 0, 0, 0), -1, -1));
contentPanel.add(controlsPanel, new GridConstraints(0, 0, 1, 1, GridConstraints.ANCHOR_NORTH, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, 1, null, null, null, 0, false));
egresosButton = new JToggleButton();
egresosButton.setText("Egresos");
egresosButton.setMnemonic('E');
egresosButton.setDisplayedMnemonicIndex(0);
controlsPanel.add(egresosButton, new GridConstraints(0, 3, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_NONE, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, null, new Dimension(200, -1), null, 0, false));
ingresosButton = new JToggleButton();
ingresosButton.setText("Ingresos");
ingresosButton.setMnemonic('I');
ingresosButton.setDisplayedMnemonicIndex(0);
controlsPanel.add(ingresosButton, new GridConstraints(0, 2, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_NONE, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, null, new Dimension(200, -1), null, 0, false));
arqueoButton = new JToggleButton();
arqueoButton.setText("Arqueo");
arqueoButton.setMnemonic('A');
arqueoButton.setDisplayedMnemonicIndex(0);
controlsPanel.add(arqueoButton, new GridConstraints(0, 4, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_NONE, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, null, new Dimension(200, -1), null, 0, false));
datePicker = new DatePicker();
controlsPanel.add(datePicker, new GridConstraints(0, 0, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_NONE, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, null, null, null, 0, false));
final Spacer spacer1 = new Spacer();
controlsPanel.add(spacer1, new GridConstraints(0, 1, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_WANT_GROW, 1, null, null, null, 0, false));
ButtonGroup buttonGroup;
buttonGroup = new ButtonGroup();
buttonGroup.add(egresosButton);
buttonGroup.add(ingresosButton);
buttonGroup.add(arqueoButton);
}
public JToggleButton getEgresosButton() {
return egresosButton;
}
/**
* @noinspection ALL
*/
public JComponent $$$getRootComponent$$$() {
return contentPanel;
}
public JToggleButton getIngresosButton() {
return ingresosButton;
}
public JToggleButton getArqueoButton() {
return arqueoButton;
}
public DatePicker getDatePicker() {
return datePicker;
}
public JPanel getContentPanel() {
return contentPanel;
}
public JPanel getCardPanel() {
return cardPanel;
}
/**
* Method generated by IntelliJ IDEA GUI Designer >>> IMPORTANT!! <<< DO NOT edit this method OR
* call it in your code!
*
* @noinspection ALL
*/
private void $$$setupUI$$$() {
contentPanel = new JPanel();
contentPanel.setLayout(new GridLayoutManager(2, 1, new Insets(10, 10, 10, 10), -1, -1));
cardPanel = new JPanel();
cardPanel.setLayout(new CardLayout(0, 0));
contentPanel.add(cardPanel,
new GridConstraints(1, 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));
controlsPanel = new JPanel();
controlsPanel.setLayout(new GridLayoutManager(1, 5, new Insets(0, 0, 0, 0), -1, -1));
contentPanel.add(controlsPanel, new GridConstraints(0, 0, 1, 1, GridConstraints.ANCHOR_NORTH,
GridConstraints.FILL_HORIZONTAL,
GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, 1, null, null,
null, 0, false));
egresosButton = new JToggleButton();
egresosButton.setText("Egresos");
egresosButton.setMnemonic('E');
egresosButton.setDisplayedMnemonicIndex(0);
controlsPanel.add(egresosButton,
new GridConstraints(0, 3, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_NONE,
GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW,
GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, null,
new Dimension(200, -1), null, 0, false));
ingresosButton = new JToggleButton();
ingresosButton.setText("Ingresos");
ingresosButton.setMnemonic('I');
ingresosButton.setDisplayedMnemonicIndex(0);
controlsPanel.add(ingresosButton,
new GridConstraints(0, 2, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_NONE,
GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW,
GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, null,
new Dimension(200, -1), null, 0, false));
arqueoButton = new JToggleButton();
arqueoButton.setText("Arqueo");
arqueoButton.setMnemonic('A');
arqueoButton.setDisplayedMnemonicIndex(0);
controlsPanel.add(arqueoButton,
new GridConstraints(0, 4, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_NONE,
GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW,
GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, null,
new Dimension(200, -1), null, 0, false));
datePicker = new DatePicker();
controlsPanel.add(datePicker,
new GridConstraints(0, 0, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_NONE,
GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW,
GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, null, null,
null, 0, false));
final Spacer spacer1 = new Spacer();
controlsPanel.add(spacer1, new GridConstraints(0, 1, 1, 1, GridConstraints.ANCHOR_CENTER,
GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_WANT_GROW, 1, null, null, null,
0, false));
ButtonGroup buttonGroup;
buttonGroup = new ButtonGroup();
buttonGroup.add(egresosButton);
buttonGroup.add(ingresosButton);
buttonGroup.add(arqueoButton);
}
/**
* @noinspection ALL
*/
public JComponent $$$getRootComponent$$$() {
return contentPanel;
}
}

View File

@@ -28,163 +28,221 @@ import com.intellij.uiDesigner.core.GridConstraints;
import com.intellij.uiDesigner.core.GridLayoutManager;
import danielcortes.xyz.views.components.NumberFormatedTextField;
import danielcortes.xyz.views.components.table_model.FondoTableModel;
import javax.swing.*;
import java.awt.Dimension;
import java.awt.Insets;
import javax.swing.JButton;
import javax.swing.JComponent;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.ListSelectionModel;
import javax.swing.RowSorter;
import javax.swing.table.TableModel;
import javax.swing.table.TableRowSorter;
import java.awt.*;
public class CalcularFondoView {
private JPanel contentPanel;
private JTable table;
private JButton guardarButton;
private JButton editarButton;
private JButton eliminarButton;
private JTextField descripcionField;
private NumberFormatedTextField fondoField;
private NumberFormatedTextField sumaField;
private NumberFormatedTextField depositoField;
private NumberFormatedTextField valorField;
private FondoTableModel tableModel;
private JPanel contentPanel;
private JTable table;
private JButton guardarButton;
private JButton editarButton;
private JButton eliminarButton;
private JTextField descripcionField;
private NumberFormatedTextField fondoField;
private NumberFormatedTextField sumaField;
private NumberFormatedTextField depositoField;
private NumberFormatedTextField valorField;
public CalcularFondoView() {
$$$setupUI$$$();
this.fillDefaultsValues();
}
private FondoTableModel tableModel;
public CalcularFondoView() {
$$$setupUI$$$();
this.fillDefaultsValues();
}
public JPanel getContentPanel() {
return contentPanel;
}
public JPanel getContentPanel() {
return contentPanel;
}
public JTable getTable() {
return table;
}
public JTable getTable() {
return table;
}
public JButton getGuardarButton() {
return guardarButton;
}
public JButton getGuardarButton() {
return guardarButton;
}
public JButton getEditarButton() {
return editarButton;
}
public JButton getEditarButton() {
return editarButton;
}
public JButton getEliminarButton() {
return eliminarButton;
}
public JButton getEliminarButton() {
return eliminarButton;
}
public JTextField getDescripcionField() {
return descripcionField;
}
public JTextField getDescripcionField() {
return descripcionField;
}
public NumberFormatedTextField getFondoField() {
return fondoField;
}
public NumberFormatedTextField getFondoField() {
return fondoField;
}
public NumberFormatedTextField getSumaField() {
return sumaField;
}
public NumberFormatedTextField getSumaField() {
return sumaField;
}
public NumberFormatedTextField getDepositoField() {
return depositoField;
}
public NumberFormatedTextField getDepositoField() {
return depositoField;
}
public NumberFormatedTextField getValorField() {
return valorField;
}
public NumberFormatedTextField getValorField() {
return valorField;
}
public FondoTableModel getTableModel() {
return tableModel;
}
public FondoTableModel getTableModel() {
return tableModel;
}
private void createUIComponents() {
this.createTable();
}
private void createUIComponents() {
this.createTable();
}
private void createTable() {
this.tableModel = new FondoTableModel();
this.table = new JTable(this.tableModel);
private void createTable() {
this.tableModel = new FondoTableModel();
this.table = new JTable(this.tableModel);
RowSorter<TableModel> sorter = new TableRowSorter<>(this.tableModel);
this.table.setRowSorter(sorter);
this.table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
}
RowSorter<TableModel> sorter = new TableRowSorter<>(this.tableModel);
this.table.setRowSorter(sorter);
this.table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
}
private void fillDefaultsValues() {
this.valorField.setValue(0);
this.depositoField.setValue(0);
this.fondoField.setValue(0);
this.sumaField.setValue(0);
this.depositoField.setValue(0);
}
private void fillDefaultsValues() {
this.valorField.setValue(0);
this.depositoField.setValue(0);
this.fondoField.setValue(0);
this.sumaField.setValue(0);
this.depositoField.setValue(0);
}
/**
* Method generated by IntelliJ IDEA GUI Designer
* >>> IMPORTANT!! <<<
* DO NOT edit this method OR call it in your code!
*
* @noinspection ALL
*/
private void $$$setupUI$$$() {
createUIComponents();
contentPanel = new JPanel();
contentPanel.setLayout(new GridLayoutManager(4, 1, new Insets(10, 10, 10, 10), -1, -1));
final JScrollPane scrollPane1 = new JScrollPane();
contentPanel.add(scrollPane1, new GridConstraints(2, 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(2, 3, new Insets(0, 0, 0, 0), -1, -1));
contentPanel.add(panel1, new GridConstraints(3, 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));
fondoField = new NumberFormatedTextField();
panel1.add(fondoField, new GridConstraints(1, 0, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_WANT_GROW, GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(150, -1), null, 0, false));
final JLabel label1 = new JLabel();
label1.setText("Fondo");
panel1.add(label1, new GridConstraints(0, 0, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_NONE, GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
final JLabel label2 = new JLabel();
label2.setText("Suma de dinero");
panel1.add(label2, new GridConstraints(0, 1, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_NONE, GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
final JLabel label3 = new JLabel();
label3.setText("Deposito");
panel1.add(label3, new GridConstraints(0, 2, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_NONE, GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
sumaField = new NumberFormatedTextField();
sumaField.setEditable(false);
panel1.add(sumaField, new GridConstraints(1, 1, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_WANT_GROW, GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(150, -1), null, 0, false));
depositoField = new NumberFormatedTextField();
depositoField.setEditable(false);
panel1.add(depositoField, new GridConstraints(1, 2, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_WANT_GROW, GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(150, -1), null, 0, false));
final JPanel panel2 = new JPanel();
panel2.setLayout(new GridLayoutManager(2, 2, new Insets(0, 0, 0, 0), -1, -1));
contentPanel.add(panel2, 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));
valorField = new NumberFormatedTextField();
panel2.add(valorField, new GridConstraints(1, 0, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_WANT_GROW, GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(150, -1), null, 0, false));
descripcionField = new JTextField();
panel2.add(descripcionField, new GridConstraints(1, 1, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_WANT_GROW, GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(150, -1), null, 0, false));
final JLabel label4 = new JLabel();
label4.setText("Valor");
panel2.add(label4, new GridConstraints(0, 0, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_NONE, GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
final JLabel label5 = new JLabel();
label5.setText("Descripcion");
panel2.add(label5, new GridConstraints(0, 1, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_NONE, GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
final JPanel panel3 = new JPanel();
panel3.setLayout(new GridLayoutManager(1, 3, new Insets(0, 0, 0, 0), -1, -1));
contentPanel.add(panel3, new GridConstraints(1, 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));
guardarButton = new JButton();
guardarButton.setText("Guardar");
panel3.add(guardarButton, new GridConstraints(0, 0, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
editarButton = new JButton();
editarButton.setText("Editar");
panel3.add(editarButton, new GridConstraints(0, 1, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
eliminarButton = new JButton();
eliminarButton.setText("Eliminar");
panel3.add(eliminarButton, new GridConstraints(0, 2, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
}
/**
* Method generated by IntelliJ IDEA GUI Designer >>> IMPORTANT!! <<< DO NOT edit this method OR
* call it in your code!
*
* @noinspection ALL
*/
private void $$$setupUI$$$() {
createUIComponents();
contentPanel = new JPanel();
contentPanel.setLayout(new GridLayoutManager(4, 1, new Insets(10, 10, 10, 10), -1, -1));
final JScrollPane scrollPane1 = new JScrollPane();
contentPanel.add(scrollPane1,
new GridConstraints(2, 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(2, 3, new Insets(0, 0, 0, 0), -1, -1));
contentPanel.add(panel1,
new GridConstraints(3, 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));
fondoField = new NumberFormatedTextField();
panel1.add(fondoField, new GridConstraints(1, 0, 1, 1, GridConstraints.ANCHOR_CENTER,
GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_WANT_GROW,
GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(150, -1), null, 0, false));
final JLabel label1 = new JLabel();
label1.setText("Fondo");
panel1.add(label1,
new GridConstraints(0, 0, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_NONE,
GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0,
false));
final JLabel label2 = new JLabel();
label2.setText("Suma de dinero");
panel1.add(label2,
new GridConstraints(0, 1, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_NONE,
GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0,
false));
final JLabel label3 = new JLabel();
label3.setText("Deposito");
panel1.add(label3,
new GridConstraints(0, 2, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_NONE,
GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0,
false));
sumaField = new NumberFormatedTextField();
sumaField.setEditable(false);
panel1.add(sumaField, new GridConstraints(1, 1, 1, 1, GridConstraints.ANCHOR_CENTER,
GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_WANT_GROW,
GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(150, -1), null, 0, false));
depositoField = new NumberFormatedTextField();
depositoField.setEditable(false);
panel1.add(depositoField, new GridConstraints(1, 2, 1, 1, GridConstraints.ANCHOR_CENTER,
GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_WANT_GROW,
GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(150, -1), null, 0, false));
final JPanel panel2 = new JPanel();
panel2.setLayout(new GridLayoutManager(2, 2, new Insets(0, 0, 0, 0), -1, -1));
contentPanel.add(panel2,
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));
valorField = new NumberFormatedTextField();
panel2.add(valorField, new GridConstraints(1, 0, 1, 1, GridConstraints.ANCHOR_CENTER,
GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_WANT_GROW,
GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(150, -1), null, 0, false));
descripcionField = new JTextField();
panel2.add(descripcionField, new GridConstraints(1, 1, 1, 1, GridConstraints.ANCHOR_WEST,
GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_WANT_GROW,
GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(150, -1), null, 0, false));
final JLabel label4 = new JLabel();
label4.setText("Valor");
panel2.add(label4,
new GridConstraints(0, 0, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_NONE,
GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0,
false));
final JLabel label5 = new JLabel();
label5.setText("Descripcion");
panel2.add(label5,
new GridConstraints(0, 1, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_NONE,
GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0,
false));
final JPanel panel3 = new JPanel();
panel3.setLayout(new GridLayoutManager(1, 3, new Insets(0, 0, 0, 0), -1, -1));
contentPanel.add(panel3,
new GridConstraints(1, 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));
guardarButton = new JButton();
guardarButton.setText("Guardar");
panel3.add(guardarButton, new GridConstraints(0, 0, 1, 1, GridConstraints.ANCHOR_CENTER,
GridConstraints.FILL_HORIZONTAL,
GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW,
GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
editarButton = new JButton();
editarButton.setText("Editar");
panel3.add(editarButton, new GridConstraints(0, 1, 1, 1, GridConstraints.ANCHOR_CENTER,
GridConstraints.FILL_HORIZONTAL,
GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW,
GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
eliminarButton = new JButton();
eliminarButton.setText("Eliminar");
panel3.add(eliminarButton, new GridConstraints(0, 2, 1, 1, GridConstraints.ANCHOR_CENTER,
GridConstraints.FILL_HORIZONTAL,
GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW,
GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
}
/**
* @noinspection ALL
*/
public JComponent $$$getRootComponent$$$() {
return contentPanel;
}
/**
* @noinspection ALL
*/
public JComponent $$$getRootComponent$$$() {
return contentPanel;
}
}

View File

@@ -30,222 +30,305 @@ import com.intellij.uiDesigner.core.Spacer;
import danielcortes.xyz.models.tipo_egreso.TipoEgresoToStringWrapper;
import danielcortes.xyz.views.components.NumberFormatedTextField;
import danielcortes.xyz.views.components.table_model.EgresosTableModel;
import javax.swing.*;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Insets;
import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JComponent;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.ListSelectionModel;
import javax.swing.RowSorter;
import javax.swing.table.TableRowSorter;
import java.awt.*;
public class EgresosView {
public JPanel contentPanel;
private JTable egresosTable;
private JButton guardarButton;
private NumberFormatedTextField valorField;
private JTextField descripcionField;
private JTextField nroField;
private NumberFormatedTextField totalEgresosField;
private JComboBox<TipoEgresoToStringWrapper> tipoCombo;
public JPanel contentPanel;
private JTable egresosTable;
private JButton guardarButton;
private NumberFormatedTextField valorField;
private JTextField descripcionField;
private JTextField nroField;
private NumberFormatedTextField totalEgresosField;
private JComboBox<TipoEgresoToStringWrapper> tipoCombo;
private JButton eliminarButton;
private JLabel errorNumero;
private JLabel errorDescripcion;
private JLabel errorValor;
private JLabel errorTipoEgreso;
private JButton editarButton;
private JButton eliminarButton;
private JLabel errorNumero;
private JLabel errorDescripcion;
private JLabel errorValor;
private JLabel errorTipoEgreso;
private JButton editarButton;
private EgresosTableModel egresosTableModel;
private EgresosTableModel egresosTableModel;
private void createUIComponents() {
createEgresosTable();
createTipoCombo();
}
private void createEgresosTable() {
egresosTableModel = new EgresosTableModel();
egresosTable = new JTable(egresosTableModel);
RowSorter<EgresosTableModel> sorter = new TableRowSorter<>(egresosTableModel);
egresosTable.setRowSorter(sorter);
egresosTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
}
private void createTipoCombo() {
this.tipoCombo = new JComboBox<>();
}
public JPanel getContentPanel() {
return contentPanel;
}
public JButton getGuardarButton() {
return guardarButton;
}
public JButton getEliminarButton() {
return eliminarButton;
}
public JButton getEditarButton() {
return editarButton;
}
public NumberFormatedTextField getValorField() {
return valorField;
}
public JTextField getDescripcionField() {
return descripcionField;
}
public JTextField getNroField() {
return nroField;
}
public NumberFormatedTextField getTotalEgresosField() {
return totalEgresosField;
}
public JComboBox<TipoEgresoToStringWrapper> getTipoCombo() {
return tipoCombo;
}
public JTable getEgresosTable() {
return egresosTable;
}
public EgresosTableModel getEgresosTableModel() {
return egresosTableModel;
}
public JLabel getErrorNumero() {
return errorNumero;
}
public JLabel getErrorDescripcion() {
return errorDescripcion;
}
public JLabel getErrorValor() {
return errorValor;
}
public JLabel getErrorTipoEgreso() {
return errorTipoEgreso;
}
{
{
// GUI initializer generated by IntelliJ IDEA GUI Designer
// >>> IMPORTANT!! <<<
// DO NOT EDIT OR ADD ANY CODE HERE!
$$$setupUI$$$();
}
$$$setupUI$$$();
}
/**
* Method generated by IntelliJ IDEA GUI Designer
* >>> IMPORTANT!! <<<
* DO NOT edit this method OR call it in your code!
*
* @noinspection ALL
*/
private void $$$setupUI$$$() {
createUIComponents();
contentPanel = new JPanel();
contentPanel.setLayout(new GridLayoutManager(1, 1, new Insets(0, 0, 0, 0), -1, -1));
final JPanel panel1 = new JPanel();
panel1.setLayout(new GridLayoutManager(3, 1, new Insets(10, 10, 10, 10), -1, -1));
contentPanel.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));
panel1.setBorder(BorderFactory.createTitledBorder(BorderFactory.createEtchedBorder(), "Egresos"));
final JScrollPane scrollPane1 = new JScrollPane();
panel1.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(egresosTable);
final JPanel panel2 = new JPanel();
panel2.setLayout(new GridLayoutManager(3, 4, new Insets(0, 0, 0, 0), -1, -1));
panel1.add(panel2, 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));
final JLabel label1 = new JLabel();
label1.setText("");
panel2.add(label1, new GridConstraints(0, 0, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_NONE, GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
final JLabel label2 = new JLabel();
label2.setText("Descripcion");
panel2.add(label2, new GridConstraints(0, 1, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_NONE, GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
descripcionField = new JTextField();
panel2.add(descripcionField, new GridConstraints(1, 1, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_WANT_GROW, GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(150, -1), null, 0, false));
nroField = new JTextField();
panel2.add(nroField, new GridConstraints(1, 0, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_WANT_GROW, GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(150, -1), null, 0, false));
valorField = new NumberFormatedTextField();
panel2.add(valorField, new GridConstraints(1, 2, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_WANT_GROW, GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(150, -1), null, 0, false));
final JLabel label3 = new JLabel();
label3.setText("Valor");
panel2.add(label3, new GridConstraints(0, 2, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_NONE, GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
final JLabel label4 = new JLabel();
label4.setText("Tipo");
panel2.add(label4, new GridConstraints(0, 3, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_NONE, GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
panel2.add(tipoCombo, new GridConstraints(1, 3, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_CAN_GROW, GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(150, -1), null, 0, false));
errorNumero = new JLabel();
errorNumero.setEnabled(true);
errorNumero.setForeground(new Color(-65536));
errorNumero.setText("Error");
errorNumero.setVisible(false);
panel2.add(errorNumero, new GridConstraints(2, 0, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_NONE, GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
errorDescripcion = new JLabel();
errorDescripcion.setEnabled(true);
errorDescripcion.setForeground(new Color(-65536));
errorDescripcion.setText("Error");
errorDescripcion.setVisible(false);
panel2.add(errorDescripcion, new GridConstraints(2, 1, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_NONE, GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
errorValor = new JLabel();
errorValor.setEnabled(true);
errorValor.setForeground(new Color(-65536));
errorValor.setText("Error");
errorValor.setVisible(false);
panel2.add(errorValor, new GridConstraints(2, 2, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_NONE, GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
errorTipoEgreso = new JLabel();
errorTipoEgreso.setEnabled(true);
errorTipoEgreso.setForeground(new Color(-65536));
errorTipoEgreso.setText("Error");
errorTipoEgreso.setVisible(false);
panel2.add(errorTipoEgreso, new GridConstraints(2, 3, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_NONE, GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
final JPanel panel3 = new JPanel();
panel3.setLayout(new GridLayoutManager(1, 3, new Insets(0, 0, 0, 0), -1, -1));
panel1.add(panel3, 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));
final JPanel panel4 = new JPanel();
panel4.setLayout(new GridLayoutManager(1, 3, new Insets(0, 0, 0, 0), -1, -1));
panel3.add(panel4, 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));
guardarButton = new JButton();
guardarButton.setText("Añadir");
guardarButton.setMnemonic('A');
guardarButton.setDisplayedMnemonicIndex(0);
panel4.add(guardarButton, new GridConstraints(0, 0, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(150, -1), null, 0, false));
eliminarButton = new JButton();
eliminarButton.setEnabled(false);
eliminarButton.setText("Eliminar");
eliminarButton.setMnemonic('E');
eliminarButton.setDisplayedMnemonicIndex(0);
panel4.add(eliminarButton, new GridConstraints(0, 1, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(150, -1), null, 0, false));
editarButton = new JButton();
editarButton.setEnabled(false);
editarButton.setText("Editar");
editarButton.setMnemonic('D');
editarButton.setDisplayedMnemonicIndex(1);
panel4.add(editarButton, new GridConstraints(0, 2, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(150, -1), null, 0, false));
final Spacer spacer1 = new Spacer();
panel3.add(spacer1, new GridConstraints(0, 1, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_WANT_GROW, 1, null, null, null, 0, false));
final JPanel panel5 = new JPanel();
panel5.setLayout(new GridLayoutManager(1, 2, new Insets(0, 0, 0, 0), -1, -1));
panel3.add(panel5, new GridConstraints(0, 2, 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));
final JLabel label5 = new JLabel();
label5.setText("Total Egresos:");
panel5.add(label5, new GridConstraints(0, 0, 1, 1, GridConstraints.ANCHOR_EAST, GridConstraints.FILL_NONE, GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
totalEgresosField = new NumberFormatedTextField();
totalEgresosField.setEditable(false);
panel5.add(totalEgresosField, new GridConstraints(0, 1, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_WANT_GROW, GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(150, -1), null, 0, false));
}
private void createUIComponents() {
createEgresosTable();
createTipoCombo();
}
/**
* @noinspection ALL
*/
public JComponent $$$getRootComponent$$$() {
return contentPanel;
}
private void createEgresosTable() {
egresosTableModel = new EgresosTableModel();
egresosTable = new JTable(egresosTableModel);
RowSorter<EgresosTableModel> sorter = new TableRowSorter<>(egresosTableModel);
egresosTable.setRowSorter(sorter);
egresosTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
}
private void createTipoCombo() {
this.tipoCombo = new JComboBox<>();
}
public JPanel getContentPanel() {
return contentPanel;
}
public JButton getGuardarButton() {
return guardarButton;
}
public JButton getEliminarButton() {
return eliminarButton;
}
public JButton getEditarButton() {
return editarButton;
}
public NumberFormatedTextField getValorField() {
return valorField;
}
public JTextField getDescripcionField() {
return descripcionField;
}
public JTextField getNroField() {
return nroField;
}
public NumberFormatedTextField getTotalEgresosField() {
return totalEgresosField;
}
public JComboBox<TipoEgresoToStringWrapper> getTipoCombo() {
return tipoCombo;
}
public JTable getEgresosTable() {
return egresosTable;
}
public EgresosTableModel getEgresosTableModel() {
return egresosTableModel;
}
public JLabel getErrorNumero() {
return errorNumero;
}
public JLabel getErrorDescripcion() {
return errorDescripcion;
}
public JLabel getErrorValor() {
return errorValor;
}
public JLabel getErrorTipoEgreso() {
return errorTipoEgreso;
}
/**
* Method generated by IntelliJ IDEA GUI Designer >>> IMPORTANT!! <<< DO NOT edit this method OR
* call it in your code!
*
* @noinspection ALL
*/
private void $$$setupUI$$$() {
createUIComponents();
contentPanel = new JPanel();
contentPanel.setLayout(new GridLayoutManager(1, 1, new Insets(0, 0, 0, 0), -1, -1));
final JPanel panel1 = new JPanel();
panel1.setLayout(new GridLayoutManager(3, 1, new Insets(10, 10, 10, 10), -1, -1));
contentPanel.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));
panel1
.setBorder(BorderFactory.createTitledBorder(BorderFactory.createEtchedBorder(), "Egresos"));
final JScrollPane scrollPane1 = new JScrollPane();
panel1.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(egresosTable);
final JPanel panel2 = new JPanel();
panel2.setLayout(new GridLayoutManager(3, 4, new Insets(0, 0, 0, 0), -1, -1));
panel1.add(panel2,
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));
final JLabel label1 = new JLabel();
label1.setText("");
panel2.add(label1,
new GridConstraints(0, 0, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_NONE,
GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0,
false));
final JLabel label2 = new JLabel();
label2.setText("Descripcion");
panel2.add(label2,
new GridConstraints(0, 1, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_NONE,
GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0,
false));
descripcionField = new JTextField();
panel2.add(descripcionField, new GridConstraints(1, 1, 1, 1, GridConstraints.ANCHOR_WEST,
GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_WANT_GROW,
GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(150, -1), null, 0, false));
nroField = new JTextField();
panel2.add(nroField, new GridConstraints(1, 0, 1, 1, GridConstraints.ANCHOR_WEST,
GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_WANT_GROW,
GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(150, -1), null, 0, false));
valorField = new NumberFormatedTextField();
panel2.add(valorField, new GridConstraints(1, 2, 1, 1, GridConstraints.ANCHOR_WEST,
GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_WANT_GROW,
GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(150, -1), null, 0, false));
final JLabel label3 = new JLabel();
label3.setText("Valor");
panel2.add(label3,
new GridConstraints(0, 2, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_NONE,
GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0,
false));
final JLabel label4 = new JLabel();
label4.setText("Tipo");
panel2.add(label4,
new GridConstraints(0, 3, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_NONE,
GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0,
false));
panel2.add(tipoCombo, new GridConstraints(1, 3, 1, 1, GridConstraints.ANCHOR_WEST,
GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_CAN_GROW,
GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(150, -1), null, 0, false));
errorNumero = new JLabel();
errorNumero.setEnabled(true);
errorNumero.setForeground(new Color(-65536));
errorNumero.setText("Error");
errorNumero.setVisible(false);
panel2.add(errorNumero,
new GridConstraints(2, 0, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_NONE,
GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0,
false));
errorDescripcion = new JLabel();
errorDescripcion.setEnabled(true);
errorDescripcion.setForeground(new Color(-65536));
errorDescripcion.setText("Error");
errorDescripcion.setVisible(false);
panel2.add(errorDescripcion,
new GridConstraints(2, 1, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_NONE,
GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0,
false));
errorValor = new JLabel();
errorValor.setEnabled(true);
errorValor.setForeground(new Color(-65536));
errorValor.setText("Error");
errorValor.setVisible(false);
panel2.add(errorValor,
new GridConstraints(2, 2, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_NONE,
GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0,
false));
errorTipoEgreso = new JLabel();
errorTipoEgreso.setEnabled(true);
errorTipoEgreso.setForeground(new Color(-65536));
errorTipoEgreso.setText("Error");
errorTipoEgreso.setVisible(false);
panel2.add(errorTipoEgreso,
new GridConstraints(2, 3, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_NONE,
GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0,
false));
final JPanel panel3 = new JPanel();
panel3.setLayout(new GridLayoutManager(1, 3, new Insets(0, 0, 0, 0), -1, -1));
panel1.add(panel3,
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));
final JPanel panel4 = new JPanel();
panel4.setLayout(new GridLayoutManager(1, 3, new Insets(0, 0, 0, 0), -1, -1));
panel3.add(panel4,
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));
guardarButton = new JButton();
guardarButton.setText("Añadir");
guardarButton.setMnemonic('A');
guardarButton.setDisplayedMnemonicIndex(0);
panel4.add(guardarButton, new GridConstraints(0, 0, 1, 1, GridConstraints.ANCHOR_CENTER,
GridConstraints.FILL_HORIZONTAL,
GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW,
GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(150, -1), null, 0, false));
eliminarButton = new JButton();
eliminarButton.setEnabled(false);
eliminarButton.setText("Eliminar");
eliminarButton.setMnemonic('E');
eliminarButton.setDisplayedMnemonicIndex(0);
panel4.add(eliminarButton, new GridConstraints(0, 1, 1, 1, GridConstraints.ANCHOR_CENTER,
GridConstraints.FILL_HORIZONTAL,
GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW,
GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(150, -1), null, 0, false));
editarButton = new JButton();
editarButton.setEnabled(false);
editarButton.setText("Editar");
editarButton.setMnemonic('D');
editarButton.setDisplayedMnemonicIndex(1);
panel4.add(editarButton, new GridConstraints(0, 2, 1, 1, GridConstraints.ANCHOR_CENTER,
GridConstraints.FILL_HORIZONTAL,
GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW,
GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(150, -1), null, 0, false));
final Spacer spacer1 = new Spacer();
panel3.add(spacer1, new GridConstraints(0, 1, 1, 1, GridConstraints.ANCHOR_CENTER,
GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_WANT_GROW, 1, null, null, null,
0, false));
final JPanel panel5 = new JPanel();
panel5.setLayout(new GridLayoutManager(1, 2, new Insets(0, 0, 0, 0), -1, -1));
panel3.add(panel5,
new GridConstraints(0, 2, 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));
final JLabel label5 = new JLabel();
label5.setText("Total Egresos:");
panel5.add(label5,
new GridConstraints(0, 0, 1, 1, GridConstraints.ANCHOR_EAST, GridConstraints.FILL_NONE,
GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0,
false));
totalEgresosField = new NumberFormatedTextField();
totalEgresosField.setEditable(false);
panel5.add(totalEgresosField, new GridConstraints(0, 1, 1, 1, GridConstraints.ANCHOR_WEST,
GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_WANT_GROW,
GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(150, -1), null, 0, false));
}
/**
* @noinspection ALL
*/
public JComponent $$$getRootComponent$$$() {
return contentPanel;
}
}

File diff suppressed because it is too large Load Diff

View File

@@ -27,79 +27,102 @@ package danielcortes.xyz.views;
import com.intellij.uiDesigner.core.GridConstraints;
import com.intellij.uiDesigner.core.GridLayoutManager;
import com.intellij.uiDesigner.core.Spacer;
import javax.swing.*;
import java.awt.*;
import java.awt.Insets;
import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JComponent;
import javax.swing.JPanel;
public class InformesSideBar {
private JButton generarLibroVentasButton;
private JPanel contentPanel;
private JButton GenerarEgresosFacturasMateriaPrimaButton;
private JButton estadoResultadoButton;
private JButton volverButton;
public JPanel getContentPanel() {
return contentPanel;
}
private JButton generarLibroVentasButton;
private JPanel contentPanel;
private JButton GenerarEgresosFacturasMateriaPrimaButton;
private JButton estadoResultadoButton;
private JButton volverButton;
public JButton getInformeLibroDeVentasButton() {
return generarLibroVentasButton;
}
public JButton getGenerarEgresosFacturasMateriaPrimaButton() {
return GenerarEgresosFacturasMateriaPrimaButton;
}
public JButton getEstadoResultadoButton() {
return estadoResultadoButton;
}
public JButton getVolverButton() {
return volverButton;
}
{
{
// GUI initializer generated by IntelliJ IDEA GUI Designer
// >>> IMPORTANT!! <<<
// DO NOT EDIT OR ADD ANY CODE HERE!
$$$setupUI$$$();
}
$$$setupUI$$$();
}
/**
* Method generated by IntelliJ IDEA GUI Designer
* >>> IMPORTANT!! <<<
* DO NOT edit this method OR call it in your code!
*
* @noinspection ALL
*/
private void $$$setupUI$$$() {
contentPanel = new JPanel();
contentPanel.setLayout(new GridLayoutManager(1, 1, new Insets(0, 0, 0, 0), -1, -1));
final JPanel panel1 = new JPanel();
panel1.setLayout(new GridLayoutManager(5, 1, new Insets(10, 10, 10, 10), -1, -1));
contentPanel.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));
panel1.setBorder(BorderFactory.createTitledBorder(BorderFactory.createEtchedBorder(), "Informes Mensuales"));
generarLibroVentasButton = new JButton();
generarLibroVentasButton.setText("Libro de Ventas Mensual");
panel1.add(generarLibroVentasButton, new GridConstraints(0, 0, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
GenerarEgresosFacturasMateriaPrimaButton = new JButton();
GenerarEgresosFacturasMateriaPrimaButton.setText("Informe de Egresos");
panel1.add(GenerarEgresosFacturasMateriaPrimaButton, new GridConstraints(1, 0, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
final Spacer spacer1 = new Spacer();
panel1.add(spacer1, new GridConstraints(3, 0, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_VERTICAL, 1, GridConstraints.SIZEPOLICY_WANT_GROW, null, null, null, 0, false));
estadoResultadoButton = new JButton();
estadoResultadoButton.setText("Estado Resultado");
panel1.add(estadoResultadoButton, new GridConstraints(2, 0, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
volverButton = new JButton();
volverButton.setText("Volver");
panel1.add(volverButton, new GridConstraints(4, 0, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
}
public JPanel getContentPanel() {
return contentPanel;
}
/**
* @noinspection ALL
*/
public JComponent $$$getRootComponent$$$() {
return contentPanel;
}
public JButton getInformeLibroDeVentasButton() {
return generarLibroVentasButton;
}
public JButton getGenerarEgresosFacturasMateriaPrimaButton() {
return GenerarEgresosFacturasMateriaPrimaButton;
}
public JButton getEstadoResultadoButton() {
return estadoResultadoButton;
}
public JButton getVolverButton() {
return volverButton;
}
/**
* Method generated by IntelliJ IDEA GUI Designer >>> IMPORTANT!! <<< DO NOT edit this method OR
* call it in your code!
*
* @noinspection ALL
*/
private void $$$setupUI$$$() {
contentPanel = new JPanel();
contentPanel.setLayout(new GridLayoutManager(1, 1, new Insets(0, 0, 0, 0), -1, -1));
final JPanel panel1 = new JPanel();
panel1.setLayout(new GridLayoutManager(5, 1, new Insets(10, 10, 10, 10), -1, -1));
contentPanel.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));
panel1.setBorder(
BorderFactory.createTitledBorder(BorderFactory.createEtchedBorder(), "Informes Mensuales"));
generarLibroVentasButton = new JButton();
generarLibroVentasButton.setText("Libro de Ventas Mensual");
panel1.add(generarLibroVentasButton,
new GridConstraints(0, 0, 1, 1, GridConstraints.ANCHOR_CENTER,
GridConstraints.FILL_HORIZONTAL,
GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW,
GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
GenerarEgresosFacturasMateriaPrimaButton = new JButton();
GenerarEgresosFacturasMateriaPrimaButton.setText("Informe de Egresos");
panel1.add(GenerarEgresosFacturasMateriaPrimaButton,
new GridConstraints(1, 0, 1, 1, GridConstraints.ANCHOR_CENTER,
GridConstraints.FILL_HORIZONTAL,
GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW,
GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
final Spacer spacer1 = new Spacer();
panel1.add(spacer1, new GridConstraints(3, 0, 1, 1, GridConstraints.ANCHOR_CENTER,
GridConstraints.FILL_VERTICAL, 1, GridConstraints.SIZEPOLICY_WANT_GROW, null, null, null, 0,
false));
estadoResultadoButton = new JButton();
estadoResultadoButton.setText("Estado Resultado");
panel1.add(estadoResultadoButton, new GridConstraints(2, 0, 1, 1, GridConstraints.ANCHOR_CENTER,
GridConstraints.FILL_HORIZONTAL,
GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW,
GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
volverButton = new JButton();
volverButton.setText("Volver");
panel1.add(volverButton, new GridConstraints(4, 0, 1, 1, GridConstraints.ANCHOR_CENTER,
GridConstraints.FILL_HORIZONTAL,
GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW,
GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
}
/**
* @noinspection ALL
*/
public JComponent $$$getRootComponent$$$() {
return contentPanel;
}
}

View File

@@ -27,251 +27,347 @@ package danielcortes.xyz.views;
import com.intellij.uiDesigner.core.GridConstraints;
import com.intellij.uiDesigner.core.GridLayoutManager;
import com.intellij.uiDesigner.core.Spacer;
import danielcortes.xyz.models.tipo_ingreso.TipoIngreso;
import danielcortes.xyz.models.tipo_ingreso.TipoIngresoToStringWrapper;
import danielcortes.xyz.views.components.NumberFormatedTextField;
import danielcortes.xyz.views.components.table_model.IngresosTableModel;
import javax.swing.*;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Insets;
import javax.swing.BorderFactory;
import javax.swing.DefaultComboBoxModel;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JComponent;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.ListSelectionModel;
import javax.swing.RowSorter;
import javax.swing.table.TableRowSorter;
import java.awt.*;
public class IngresosView {
private JPanel contentPanel;
private JTable ingresosTable;
private JButton guardarButton;
private JButton eliminarButton;
private NumberFormatedTextField totalIngresoField;
private NumberFormatedTextField valorField;
private JComboBox<TipoIngresoToStringWrapper> tipoCombo;
private JLabel errorTipoIngreso;
private JLabel errorValor;
private JButton editarButton;
private JTextField nroInicialField;
private JTextField nroFinalField;
private JLabel errorNroInicial;
private JLabel errorNroFinal;
private JTextField nroZInicialField;
private JTextField nroZFinalField;
private JLabel errorNroZFinal;
private JLabel errorNroZInicial;
private IngresosTableModel ingresosTableModel;
private JPanel contentPanel;
private JTable ingresosTable;
private JButton guardarButton;
private JButton eliminarButton;
private NumberFormatedTextField totalIngresoField;
private NumberFormatedTextField valorField;
private JComboBox<TipoIngresoToStringWrapper> tipoCombo;
private JLabel errorTipoIngreso;
private JLabel errorValor;
private JButton editarButton;
private JTextField nroInicialField;
private JTextField nroFinalField;
private JLabel errorNroInicial;
private JLabel errorNroFinal;
private JTextField nroZInicialField;
private JTextField nroZFinalField;
private JLabel errorNroZFinal;
private JLabel errorNroZInicial;
private void createUIComponents() {
this.createIngresosTable();
this.createTipoCombo();
}
private IngresosTableModel ingresosTableModel;
private void createIngresosTable() {
this.ingresosTableModel = new IngresosTableModel();
this.ingresosTable = new JTable(ingresosTableModel);
RowSorter<IngresosTableModel> sorter = new TableRowSorter<>(ingresosTableModel);
this.ingresosTable.setRowSorter(sorter);
this.ingresosTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
}
private void createTipoCombo() {
this.tipoCombo = new JComboBox<>();
}
public JPanel getContentPanel() {
return contentPanel;
}
public JTable getIngresosTable() {
return ingresosTable;
}
public JButton getGuardarButton() {
return guardarButton;
}
public JButton getEliminarButton() {
return eliminarButton;
}
public NumberFormatedTextField getTotalIngresoField() {
return totalIngresoField;
}
public NumberFormatedTextField getValorField() {
return valorField;
}
public JComboBox<TipoIngresoToStringWrapper> getTipoCombo() {
return tipoCombo;
}
public JLabel getErrorTipoIngreso() {
return errorTipoIngreso;
}
public JLabel getErrorValor() {
return errorValor;
}
public JButton getEditarButton() {
return editarButton;
}
public JTextField getNroInicialField() {
return nroInicialField;
}
public JTextField getNroFinalField() {
return nroFinalField;
}
public JLabel getErrorNroInicial() {
return errorNroInicial;
}
public JLabel getErrorNroFinal() {
return errorNroFinal;
}
public IngresosTableModel getIngresosTableModel() {
return ingresosTableModel;
}
public JTextField getNroZInicialField() {
return nroZInicialField;
}
public JTextField getNroZFinalField() {
return nroZFinalField;
}
public JLabel getErrorNroZFinal() {
return errorNroZFinal;
}
public JLabel getErrorNroZInicial() {
return errorNroZInicial;
}
{
{
// GUI initializer generated by IntelliJ IDEA GUI Designer
// >>> IMPORTANT!! <<<
// DO NOT EDIT OR ADD ANY CODE HERE!
$$$setupUI$$$();
}
$$$setupUI$$$();
}
/**
* Method generated by IntelliJ IDEA GUI Designer
* >>> IMPORTANT!! <<<
* DO NOT edit this method OR call it in your code!
*
* @noinspection ALL
*/
private void $$$setupUI$$$() {
createUIComponents();
contentPanel = new JPanel();
contentPanel.setLayout(new GridLayoutManager(1, 1, new Insets(0, 0, 0, 0), -1, -1));
final JPanel panel1 = new JPanel();
panel1.setLayout(new GridLayoutManager(3, 1, new Insets(10, 10, 10, 10), -1, -1));
contentPanel.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));
panel1.setBorder(BorderFactory.createTitledBorder(BorderFactory.createEtchedBorder(), "Ingresos"));
final JScrollPane scrollPane1 = new JScrollPane();
panel1.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(ingresosTable);
final JPanel panel2 = new JPanel();
panel2.setLayout(new GridLayoutManager(3, 6, new Insets(0, 0, 0, 0), -1, -1));
panel1.add(panel2, 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, new Dimension(150, -1), null, 0, false));
final JLabel label1 = new JLabel();
label1.setText("Tipo");
panel2.add(label1, new GridConstraints(0, 5, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_NONE, GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
final DefaultComboBoxModel defaultComboBoxModel1 = new DefaultComboBoxModel();
tipoCombo.setModel(defaultComboBoxModel1);
panel2.add(tipoCombo, new GridConstraints(1, 5, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_WANT_GROW, GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(150, -1), null, 0, false));
final JLabel label2 = new JLabel();
label2.setText("Valor");
panel2.add(label2, new GridConstraints(0, 0, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_NONE, GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
valorField = new NumberFormatedTextField();
panel2.add(valorField, new GridConstraints(1, 0, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_WANT_GROW, GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(150, -1), null, 0, false));
final JLabel label3 = new JLabel();
label3.setText("N° Inicial");
panel2.add(label3, new GridConstraints(0, 3, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_NONE, GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
final JLabel label4 = new JLabel();
label4.setText("N° Final");
panel2.add(label4, new GridConstraints(0, 4, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_NONE, GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
nroInicialField = new JTextField();
panel2.add(nroInicialField, new GridConstraints(1, 3, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_WANT_GROW, GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(150, -1), null, 0, false));
nroFinalField = new JTextField();
panel2.add(nroFinalField, new GridConstraints(1, 4, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_WANT_GROW, GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(150, -1), null, 0, false));
errorTipoIngreso = new JLabel();
errorTipoIngreso.setForeground(new Color(-65536));
errorTipoIngreso.setText("Label");
errorTipoIngreso.setVisible(false);
panel2.add(errorTipoIngreso, new GridConstraints(2, 5, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_NONE, GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
errorNroInicial = new JLabel();
errorNroInicial.setForeground(new Color(-65536));
errorNroInicial.setText("Label");
errorNroInicial.setVisible(false);
panel2.add(errorNroInicial, new GridConstraints(2, 3, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_NONE, GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
errorNroFinal = new JLabel();
errorNroFinal.setForeground(new Color(-65536));
errorNroFinal.setText("Label");
errorNroFinal.setVisible(false);
panel2.add(errorNroFinal, new GridConstraints(2, 4, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_NONE, GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
final JLabel label5 = new JLabel();
label5.setText("N° Z Inicial");
panel2.add(label5, new GridConstraints(0, 1, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_NONE, GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
final JLabel label6 = new JLabel();
label6.setText("N° Z Final");
panel2.add(label6, new GridConstraints(0, 2, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_NONE, GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
nroZInicialField = new JTextField();
panel2.add(nroZInicialField, new GridConstraints(1, 1, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_WANT_GROW, GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(150, -1), null, 0, false));
nroZFinalField = new JTextField();
panel2.add(nroZFinalField, new GridConstraints(1, 2, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_WANT_GROW, GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(150, -1), null, 0, false));
errorNroZInicial = new JLabel();
errorNroZInicial.setForeground(new Color(-65536));
errorNroZInicial.setText("Label");
errorNroZInicial.setVisible(false);
panel2.add(errorNroZInicial, new GridConstraints(2, 1, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_NONE, GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
errorNroZFinal = new JLabel();
errorNroZFinal.setForeground(new Color(-65536));
errorNroZFinal.setText("Label");
errorNroZFinal.setVisible(false);
panel2.add(errorNroZFinal, new GridConstraints(2, 2, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_NONE, GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
final JPanel panel3 = new JPanel();
panel3.setLayout(new GridLayoutManager(1, 3, new Insets(0, 0, 0, 0), -1, -1));
panel1.add(panel3, 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));
final JPanel panel4 = new JPanel();
panel4.setLayout(new GridLayoutManager(1, 2, new Insets(0, 0, 0, 0), -1, -1));
panel3.add(panel4, new GridConstraints(0, 2, 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));
final JLabel label7 = new JLabel();
label7.setText("Total Ingresos");
panel4.add(label7, new GridConstraints(0, 0, 1, 1, GridConstraints.ANCHOR_EAST, GridConstraints.FILL_NONE, GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
totalIngresoField = new NumberFormatedTextField();
totalIngresoField.setEditable(false);
panel4.add(totalIngresoField, new GridConstraints(0, 1, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_WANT_GROW, GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(150, -1), null, 0, false));
final JPanel panel5 = new JPanel();
panel5.setLayout(new GridLayoutManager(1, 3, new Insets(0, 0, 0, 0), -1, -1));
panel3.add(panel5, 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));
guardarButton = new JButton();
guardarButton.setText("Añadir");
guardarButton.setMnemonic('A');
guardarButton.setDisplayedMnemonicIndex(0);
panel5.add(guardarButton, new GridConstraints(0, 0, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(150, -1), null, 0, false));
eliminarButton = new JButton();
eliminarButton.setText("Eliminar");
panel5.add(eliminarButton, new GridConstraints(0, 1, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(150, -1), null, 0, false));
editarButton = new JButton();
editarButton.setText("Editar");
panel5.add(editarButton, new GridConstraints(0, 2, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(150, -1), null, 0, false));
final Spacer spacer1 = new Spacer();
panel3.add(spacer1, new GridConstraints(0, 1, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_NONE, GridConstraints.SIZEPOLICY_WANT_GROW, 1, null, null, null, 0, false));
}
private void createUIComponents() {
this.createIngresosTable();
this.createTipoCombo();
}
/**
* @noinspection ALL
*/
public JComponent $$$getRootComponent$$$() {
return contentPanel;
}
private void createIngresosTable() {
this.ingresosTableModel = new IngresosTableModel();
this.ingresosTable = new JTable(ingresosTableModel);
RowSorter<IngresosTableModel> sorter = new TableRowSorter<>(ingresosTableModel);
this.ingresosTable.setRowSorter(sorter);
this.ingresosTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
}
private void createTipoCombo() {
this.tipoCombo = new JComboBox<>();
}
public JPanel getContentPanel() {
return contentPanel;
}
public JTable getIngresosTable() {
return ingresosTable;
}
public JButton getGuardarButton() {
return guardarButton;
}
public JButton getEliminarButton() {
return eliminarButton;
}
public NumberFormatedTextField getTotalIngresoField() {
return totalIngresoField;
}
public NumberFormatedTextField getValorField() {
return valorField;
}
public JComboBox<TipoIngresoToStringWrapper> getTipoCombo() {
return tipoCombo;
}
public JLabel getErrorTipoIngreso() {
return errorTipoIngreso;
}
public JLabel getErrorValor() {
return errorValor;
}
public JButton getEditarButton() {
return editarButton;
}
public JTextField getNroInicialField() {
return nroInicialField;
}
public JTextField getNroFinalField() {
return nroFinalField;
}
public JLabel getErrorNroInicial() {
return errorNroInicial;
}
public JLabel getErrorNroFinal() {
return errorNroFinal;
}
public IngresosTableModel getIngresosTableModel() {
return ingresosTableModel;
}
public JTextField getNroZInicialField() {
return nroZInicialField;
}
public JTextField getNroZFinalField() {
return nroZFinalField;
}
public JLabel getErrorNroZFinal() {
return errorNroZFinal;
}
public JLabel getErrorNroZInicial() {
return errorNroZInicial;
}
/**
* Method generated by IntelliJ IDEA GUI Designer >>> IMPORTANT!! <<< DO NOT edit this method OR
* call it in your code!
*
* @noinspection ALL
*/
private void $$$setupUI$$$() {
createUIComponents();
contentPanel = new JPanel();
contentPanel.setLayout(new GridLayoutManager(1, 1, new Insets(0, 0, 0, 0), -1, -1));
final JPanel panel1 = new JPanel();
panel1.setLayout(new GridLayoutManager(3, 1, new Insets(10, 10, 10, 10), -1, -1));
contentPanel.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));
panel1.setBorder(
BorderFactory.createTitledBorder(BorderFactory.createEtchedBorder(), "Ingresos"));
final JScrollPane scrollPane1 = new JScrollPane();
panel1.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(ingresosTable);
final JPanel panel2 = new JPanel();
panel2.setLayout(new GridLayoutManager(3, 6, new Insets(0, 0, 0, 0), -1, -1));
panel1.add(panel2,
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,
new Dimension(150, -1), null, 0, false));
final JLabel label1 = new JLabel();
label1.setText("Tipo");
panel2.add(label1,
new GridConstraints(0, 5, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_NONE,
GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0,
false));
final DefaultComboBoxModel defaultComboBoxModel1 = new DefaultComboBoxModel();
tipoCombo.setModel(defaultComboBoxModel1);
panel2.add(tipoCombo, new GridConstraints(1, 5, 1, 1, GridConstraints.ANCHOR_WEST,
GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_WANT_GROW,
GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(150, -1), null, 0, false));
final JLabel label2 = new JLabel();
label2.setText("Valor");
panel2.add(label2,
new GridConstraints(0, 0, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_NONE,
GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0,
false));
valorField = new NumberFormatedTextField();
panel2.add(valorField, new GridConstraints(1, 0, 1, 1, GridConstraints.ANCHOR_WEST,
GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_WANT_GROW,
GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(150, -1), null, 0, false));
final JLabel label3 = new JLabel();
label3.setText("N° Inicial");
panel2.add(label3,
new GridConstraints(0, 3, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_NONE,
GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0,
false));
final JLabel label4 = new JLabel();
label4.setText("N° Final");
panel2.add(label4,
new GridConstraints(0, 4, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_NONE,
GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0,
false));
nroInicialField = new JTextField();
panel2.add(nroInicialField, new GridConstraints(1, 3, 1, 1, GridConstraints.ANCHOR_WEST,
GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_WANT_GROW,
GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(150, -1), null, 0, false));
nroFinalField = new JTextField();
panel2.add(nroFinalField, new GridConstraints(1, 4, 1, 1, GridConstraints.ANCHOR_WEST,
GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_WANT_GROW,
GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(150, -1), null, 0, false));
errorTipoIngreso = new JLabel();
errorTipoIngreso.setForeground(new Color(-65536));
errorTipoIngreso.setText("Label");
errorTipoIngreso.setVisible(false);
panel2.add(errorTipoIngreso,
new GridConstraints(2, 5, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_NONE,
GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0,
false));
errorNroInicial = new JLabel();
errorNroInicial.setForeground(new Color(-65536));
errorNroInicial.setText("Label");
errorNroInicial.setVisible(false);
panel2.add(errorNroInicial,
new GridConstraints(2, 3, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_NONE,
GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0,
false));
errorNroFinal = new JLabel();
errorNroFinal.setForeground(new Color(-65536));
errorNroFinal.setText("Label");
errorNroFinal.setVisible(false);
panel2.add(errorNroFinal,
new GridConstraints(2, 4, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_NONE,
GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0,
false));
final JLabel label5 = new JLabel();
label5.setText("N° Z Inicial");
panel2.add(label5,
new GridConstraints(0, 1, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_NONE,
GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0,
false));
final JLabel label6 = new JLabel();
label6.setText("N° Z Final");
panel2.add(label6,
new GridConstraints(0, 2, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_NONE,
GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0,
false));
nroZInicialField = new JTextField();
panel2.add(nroZInicialField, new GridConstraints(1, 1, 1, 1, GridConstraints.ANCHOR_WEST,
GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_WANT_GROW,
GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(150, -1), null, 0, false));
nroZFinalField = new JTextField();
panel2.add(nroZFinalField, new GridConstraints(1, 2, 1, 1, GridConstraints.ANCHOR_WEST,
GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_WANT_GROW,
GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(150, -1), null, 0, false));
errorNroZInicial = new JLabel();
errorNroZInicial.setForeground(new Color(-65536));
errorNroZInicial.setText("Label");
errorNroZInicial.setVisible(false);
panel2.add(errorNroZInicial,
new GridConstraints(2, 1, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_NONE,
GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0,
false));
errorNroZFinal = new JLabel();
errorNroZFinal.setForeground(new Color(-65536));
errorNroZFinal.setText("Label");
errorNroZFinal.setVisible(false);
panel2.add(errorNroZFinal,
new GridConstraints(2, 2, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_NONE,
GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0,
false));
final JPanel panel3 = new JPanel();
panel3.setLayout(new GridLayoutManager(1, 3, new Insets(0, 0, 0, 0), -1, -1));
panel1.add(panel3,
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));
final JPanel panel4 = new JPanel();
panel4.setLayout(new GridLayoutManager(1, 2, new Insets(0, 0, 0, 0), -1, -1));
panel3.add(panel4,
new GridConstraints(0, 2, 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));
final JLabel label7 = new JLabel();
label7.setText("Total Ingresos");
panel4.add(label7,
new GridConstraints(0, 0, 1, 1, GridConstraints.ANCHOR_EAST, GridConstraints.FILL_NONE,
GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0,
false));
totalIngresoField = new NumberFormatedTextField();
totalIngresoField.setEditable(false);
panel4.add(totalIngresoField, new GridConstraints(0, 1, 1, 1, GridConstraints.ANCHOR_CENTER,
GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_WANT_GROW,
GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(150, -1), null, 0, false));
final JPanel panel5 = new JPanel();
panel5.setLayout(new GridLayoutManager(1, 3, new Insets(0, 0, 0, 0), -1, -1));
panel3.add(panel5,
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));
guardarButton = new JButton();
guardarButton.setText("Añadir");
guardarButton.setMnemonic('A');
guardarButton.setDisplayedMnemonicIndex(0);
panel5.add(guardarButton, new GridConstraints(0, 0, 1, 1, GridConstraints.ANCHOR_CENTER,
GridConstraints.FILL_HORIZONTAL,
GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW,
GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(150, -1), null, 0, false));
eliminarButton = new JButton();
eliminarButton.setText("Eliminar");
panel5.add(eliminarButton, new GridConstraints(0, 1, 1, 1, GridConstraints.ANCHOR_CENTER,
GridConstraints.FILL_HORIZONTAL,
GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW,
GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(150, -1), null, 0, false));
editarButton = new JButton();
editarButton.setText("Editar");
panel5.add(editarButton, new GridConstraints(0, 2, 1, 1, GridConstraints.ANCHOR_CENTER,
GridConstraints.FILL_HORIZONTAL,
GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW,
GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(150, -1), null, 0, false));
final Spacer spacer1 = new Spacer();
panel3.add(spacer1,
new GridConstraints(0, 1, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_NONE,
GridConstraints.SIZEPOLICY_WANT_GROW, 1, null, null, null, 0, false));
}
/**
* @noinspection ALL
*/
public JComponent $$$getRootComponent$$$() {
return contentPanel;
}
}

View File

@@ -3,69 +3,84 @@ package danielcortes.xyz.views;
import com.intellij.uiDesigner.core.GridConstraints;
import com.intellij.uiDesigner.core.GridLayoutManager;
import com.intellij.uiDesigner.core.Spacer;
import javax.swing.*;
import java.awt.*;
import java.awt.Insets;
import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JComponent;
import javax.swing.JPanel;
public class MainSideBar {
private JPanel contentPanel;
private JButton informesMensualesButton;
private JButton cajasButton;
private JPanel buttonPanel;
public JPanel getContentPanel() {
return contentPanel;
}
private JPanel contentPanel;
private JButton informesMensualesButton;
private JButton cajasButton;
private JPanel buttonPanel;
public JPanel getButtonPanel() {
return buttonPanel;
}
public JButton getInformesMensualesButton() {
return informesMensualesButton;
}
public JButton getCajasButton() {
return cajasButton;
}
{
{
// GUI initializer generated by IntelliJ IDEA GUI Designer
// >>> IMPORTANT!! <<<
// DO NOT EDIT OR ADD ANY CODE HERE!
$$$setupUI$$$();
}
$$$setupUI$$$();
}
/**
* Method generated by IntelliJ IDEA GUI Designer
* >>> IMPORTANT!! <<<
* DO NOT edit this method OR call it in your code!
*
* @noinspection ALL
*/
private void $$$setupUI$$$() {
contentPanel = new JPanel();
contentPanel.setLayout(new GridLayoutManager(1, 1, new Insets(0, 0, 0, 0), -1, -1));
buttonPanel = new JPanel();
buttonPanel.setLayout(new GridLayoutManager(3, 1, new Insets(10, 10, 10, 10), -1, -1));
contentPanel.add(buttonPanel, 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));
buttonPanel.setBorder(BorderFactory.createTitledBorder(BorderFactory.createEtchedBorder(), null));
cajasButton = new JButton();
cajasButton.setText("Cajas");
buttonPanel.add(cajasButton, new GridConstraints(0, 0, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
final Spacer spacer1 = new Spacer();
buttonPanel.add(spacer1, new GridConstraints(2, 0, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_VERTICAL, 1, GridConstraints.SIZEPOLICY_WANT_GROW, null, null, null, 0, false));
informesMensualesButton = new JButton();
informesMensualesButton.setText("Informes Mensuales");
buttonPanel.add(informesMensualesButton, new GridConstraints(1, 0, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
}
public JPanel getContentPanel() {
return contentPanel;
}
/**
* @noinspection ALL
*/
public JComponent $$$getRootComponent$$$() {
return contentPanel;
}
public JPanel getButtonPanel() {
return buttonPanel;
}
public JButton getInformesMensualesButton() {
return informesMensualesButton;
}
public JButton getCajasButton() {
return cajasButton;
}
/**
* Method generated by IntelliJ IDEA GUI Designer >>> IMPORTANT!! <<< DO NOT edit this method OR
* call it in your code!
*
* @noinspection ALL
*/
private void $$$setupUI$$$() {
contentPanel = new JPanel();
contentPanel.setLayout(new GridLayoutManager(1, 1, new Insets(0, 0, 0, 0), -1, -1));
buttonPanel = new JPanel();
buttonPanel.setLayout(new GridLayoutManager(3, 1, new Insets(10, 10, 10, 10), -1, -1));
contentPanel.add(buttonPanel,
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));
buttonPanel
.setBorder(BorderFactory.createTitledBorder(BorderFactory.createEtchedBorder(), null));
cajasButton = new JButton();
cajasButton.setText("Cajas");
buttonPanel.add(cajasButton, new GridConstraints(0, 0, 1, 1, GridConstraints.ANCHOR_CENTER,
GridConstraints.FILL_HORIZONTAL,
GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW,
GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
final Spacer spacer1 = new Spacer();
buttonPanel.add(spacer1, new GridConstraints(2, 0, 1, 1, GridConstraints.ANCHOR_CENTER,
GridConstraints.FILL_VERTICAL, 1, GridConstraints.SIZEPOLICY_WANT_GROW, null, null, null, 0,
false));
informesMensualesButton = new JButton();
informesMensualesButton.setText("Informes Mensuales");
buttonPanel.add(informesMensualesButton,
new GridConstraints(1, 0, 1, 1, GridConstraints.ANCHOR_CENTER,
GridConstraints.FILL_HORIZONTAL,
GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW,
GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
}
/**
* @noinspection ALL
*/
public JComponent $$$getRootComponent$$$() {
return contentPanel;
}
}

View File

@@ -1,61 +1,61 @@
package danielcortes.xyz.views.components;
import org.mariuszgromada.math.mxparser.Expression;
import javax.swing.*;
import java.awt.event.FocusEvent;
import java.awt.event.FocusListener;
import java.text.NumberFormat;
import javax.swing.JTextField;
import org.mariuszgromada.math.mxparser.Expression;
public class DoubleFormatedTextField extends JTextField {
private double value;
private NumberFormat nf;
public DoubleFormatedTextField() {
super();
private double value;
private NumberFormat nf;
this.nf = NumberFormat.getIntegerInstance();
this.nf.setMaximumFractionDigits(2);
public DoubleFormatedTextField() {
super();
this.addFocusListener(new FocusListener() {
@Override
public void focusGained(FocusEvent e) {
DoubleFormatedTextField.this.select(0, getText().length());
}
this.nf = NumberFormat.getIntegerInstance();
this.nf.setMaximumFractionDigits(2);
@Override
public void focusLost(FocusEvent e) {
DoubleFormatedTextField.this.readValue();
DoubleFormatedTextField.this.formatText();
}
});
this.addFocusListener(new FocusListener() {
@Override
public void focusGained(FocusEvent e) {
DoubleFormatedTextField.this.select(0, getText().length());
}
@Override
public void focusLost(FocusEvent e) {
DoubleFormatedTextField.this.readValue();
DoubleFormatedTextField.this.formatText();
}
});
}
public double getValue() {
this.readValue();
return this.value;
}
public void setValue(double value) {
this.value = value;
this.formatText();
}
private void readValue() {
String currentText = this.getText();
String stripedDots = currentText.replace(".", "");
String replacedPeriods = stripedDots.replace(",", ".");
Expression expression = new Expression(replacedPeriods);
if (expression.checkSyntax()) {
this.value = expression.calculate();
} else {
this.value = 0;
}
public double getValue() {
this.readValue();
return this.value;
}
}
public void setValue(double value) {
this.value = value;
this.formatText();
}
private void readValue() {
String currentText = this.getText();
String stripedDots = currentText.replace(".", "");
String replacedPeriods = stripedDots.replace(",", ".");
Expression expression = new Expression(replacedPeriods);
if (expression.checkSyntax()) {
this.value = expression.calculate();
} else {
this.value = 0;
}
}
private void formatText() {
this.setText(nf.format(this.value));
}
private void formatText() {
this.setText(nf.format(this.value));
}
}

View File

@@ -24,94 +24,94 @@
package danielcortes.xyz.views.components;
import org.mariuszgromada.math.mxparser.Expression;
import javax.swing.*;
import java.awt.event.FocusEvent;
import java.awt.event.FocusListener;
import java.text.NumberFormat;
import javax.swing.JTextField;
import org.mariuszgromada.math.mxparser.Expression;
/**
* Crea un JTextField que formatea automaticamente su texto como un integer el cual se puede obtener
* con el metodo getValue. Ademas de tener comportamientos especiales:
* - Al ganar foco se selecciona todo el texto.
* - Al perder foco formatea el texto como numero.
* - Evalua la operacion matematica que se ingrese en el campo
* con el metodo getValue. Ademas de tener comportamientos especiales: - Al ganar foco se selecciona
* todo el texto. - Al perder foco formatea el texto como numero. - Evalua la operacion matematica
* que se ingrese en el campo
*/
public class NumberFormatedTextField extends JTextField {
private int value;
private NumberFormat nf;
private int value;
private NumberFormat nf;
/**
* Crea una instacia del objeto
*/
public NumberFormatedTextField() {
super();
this.nf = NumberFormat.getIntegerInstance();
this.addFocusListener(new FieldFocusListener());
}
/**
* Llama a readValue por un bug seguramente relacionado con el focus listener: - No actualizaba el
* valor al momento de hacer requestfocus a otro componente, probablemente porque no alcanza a
* realizarse la accion antes que ocurra la siguiente
* <p>
* Fuerza a que se lea el valor en el textfield antes de retornarlo
*/
public int getValue() {
this.readValue();
return this.value;
}
/**
* Guarda el integer entregado y lo muestra en el campo.
*/
public void setValue(int value) {
this.value = value;
this.setText(nf.format(value));
}
/**
* Lee el valor en el texto, ejecuta la operacion matematica que en caso que exista una y la
* almacena en el valor Si la operacion matematica es invalida, almacenara un 0
*/
private void readValue() {
String currentText = this.getText();
String stripedDots = currentText.replace(".", "");
Expression expression = new Expression(stripedDots);
if (expression.checkSyntax()) {
this.value = (int) Math.floor(expression.calculate());
} else {
this.value = 0;
}
}
/**
* Formatea el value y lo muestra en el field
*/
private void formatText() {
this.setText(nf.format(this.value));
}
private class FieldFocusListener implements FocusListener {
/**
* Crea una instacia del objeto
* Selecciona todo al momento de ganar foco
*/
public NumberFormatedTextField() {
super();
this.nf = NumberFormat.getIntegerInstance();
this.addFocusListener(new FieldFocusListener());
@Override
public void focusGained(FocusEvent e) {
NumberFormatedTextField.this.select(0, getText().length());
}
/**
* Llama a readValue por un bug seguramente relacionado con el focus listener:
* - No actualizaba el valor al momento de hacer requestfocus a otro componente, probablemente porque no alcanza
* a realizarse la accion antes que ocurra la siguiente
* <p>
* Fuerza a que se lea el valor en el textfield antes de retornarlo
* Actualiza el texto y el valor interno al perder el foco
*/
public int getValue() {
this.readValue();
return this.value;
}
/**
* Guarda el integer entregado y lo muestra en el campo.
*/
public void setValue(int value) {
this.value = value;
this.setText(nf.format(value));
}
/**
* Lee el valor en el texto, ejecuta la operacion matematica que en caso que exista una y la almacena en el valor
* Si la operacion matematica es invalida, almacenara un 0
*/
private void readValue() {
String currentText = this.getText();
String stripedDots = currentText.replace(".", "");
Expression expression = new Expression(stripedDots);
if (expression.checkSyntax()) {
this.value = (int) Math.floor(expression.calculate());
} else {
this.value = 0;
}
}
/**
* Formatea el value y lo muestra en el field
*/
private void formatText() {
this.setText(nf.format(this.value));
}
private class FieldFocusListener implements FocusListener {
/**
* Selecciona todo al momento de ganar foco
*/
@Override
public void focusGained(FocusEvent e) {
NumberFormatedTextField.this.select(0, getText().length());
}
/**
* Actualiza el texto y el valor interno al perder el foco
*/
@Override
public void focusLost(FocusEvent e) {
NumberFormatedTextField.this.readValue();
NumberFormatedTextField.this.formatText();
}
@Override
public void focusLost(FocusEvent e) {
NumberFormatedTextField.this.readValue();
NumberFormatedTextField.this.formatText();
}
}
}

View File

@@ -24,68 +24,69 @@
package danielcortes.xyz.views.components;
import javax.swing.*;
import java.time.Year;
import javax.swing.AbstractSpinnerModel;
public class YearSpinnerModel extends AbstractSpinnerModel {
private int value;
private String showingValue;
public YearSpinnerModel() {
this.value = Year.now().getValue();
this.showingValue = String.valueOf(value);
private int value;
private String showingValue;
public YearSpinnerModel() {
this.value = Year.now().getValue();
this.showingValue = String.valueOf(value);
}
@Override
public Object getValue() {
return this.showingValue;
}
@Override
public void setValue(Object value) {
this.showingValue = String.valueOf(value);
this.value = Integer.parseInt(this.showingValue);
}
@Override
public Object getNextValue() {
if (this.value == 9999) {
return null;
}
@Override
public Object getValue() {
return this.showingValue;
if (this.value > 9999) {
this.value = 9999;
this.showingValue = String.valueOf(this.value);
} else if (this.value < 0) {
this.value = 0;
this.showingValue = String.valueOf(this.value);
} else {
this.value++;
this.showingValue = String.valueOf(value);
}
@Override
public void setValue(Object value) {
this.showingValue = String.valueOf(value);
this.value = Integer.parseInt(this.showingValue);
this.fireStateChanged();
return this.showingValue;
}
@Override
public Object getPreviousValue() {
if (this.value == 0) {
return null;
}
@Override
public Object getNextValue() {
if (this.value == 9999) {
return null;
}
if (this.value > 9999) {
this.value = 9999;
this.showingValue = String.valueOf(this.value);
} else if (this.value < 0) {
this.value = 0;
this.showingValue = String.valueOf(this.value);
} else {
this.value++;
this.showingValue = String.valueOf(value);
}
this.fireStateChanged();
return this.showingValue;
if (this.value > 9999) {
this.value = 9999;
this.showingValue = String.valueOf(this.value);
} else if (this.value < 0) {
this.value = 0;
this.showingValue = String.valueOf(this.value);
} else {
this.value--;
this.showingValue = String.valueOf(value);
}
@Override
public Object getPreviousValue() {
if (this.value == 0) {
return null;
}
if (this.value > 9999) {
this.value = 9999;
this.showingValue = String.valueOf(this.value);
} else if (this.value < 0) {
this.value = 0;
this.showingValue = String.valueOf(this.value);
} else {
this.value--;
this.showingValue = String.valueOf(value);
}
this.fireStateChanged();
return this.showingValue;
}
this.fireStateChanged();
return this.showingValue;
}
}

View File

@@ -25,80 +25,80 @@
package danielcortes.xyz.views.components.table_model;
import danielcortes.xyz.models.egreso.Egreso;
import javax.swing.table.AbstractTableModel;
import java.text.NumberFormat;
import java.util.ArrayList;
import javax.swing.table.AbstractTableModel;
public class EgresosTableModel extends AbstractTableModel {
private String[] columns;
private ArrayList<Egreso> rows;
private NumberFormat nf;
public EgresosTableModel() {
super();
this.columns = new String[]{"", "Descripcion", "Valor", "Tipo"};
this.rows = new ArrayList<>();
this.nf = NumberFormat.getIntegerInstance();
private String[] columns;
private ArrayList<Egreso> rows;
private NumberFormat nf;
public EgresosTableModel() {
super();
this.columns = new String[]{"", "Descripcion", "Valor", "Tipo"};
this.rows = new ArrayList<>();
this.nf = NumberFormat.getIntegerInstance();
}
@Override
public String getColumnName(int col) {
return columns[col];
}
@Override
public int getColumnCount() {
return columns.length;
}
@Override
public int getRowCount() {
return rows.size();
}
@Override
public Object getValueAt(int row, int col) {
switch (col) {
case 0:
return rows.get(row).getNro();
case 1:
return rows.get(row).getDescripcion();
case 2:
return nf.format(rows.get(row).getValor());
case 3:
return rows.get(row).getTipoEgreso().getNombre();
}
return null;
}
@Override
public String getColumnName(int col) {
return columns[col];
public void addRow(Egreso egreso) {
rows.add(egreso);
this.fireTableRowsInserted(getRowCount() - 1, getRowCount() - 1);
}
public void removeRow(int row) {
this.rows.remove(row);
this.fireTableRowsDeleted(row, row);
}
public void removeRows() {
int rowCount = getRowCount();
if (rowCount > 0) {
this.rows.clear();
this.fireTableRowsDeleted(0, rowCount - 1);
}
}
@Override
public int getColumnCount() {
return columns.length;
}
public Egreso getEgreso(int row) {
return rows.get(row);
}
@Override
public int getRowCount() {
return rows.size();
}
@Override
public Object getValueAt(int row, int col) {
switch (col) {
case 0:
return rows.get(row).getNro();
case 1:
return rows.get(row).getDescripcion();
case 2:
return nf.format(rows.get(row).getValor());
case 3:
return rows.get(row).getTipoEgreso().getNombre();
}
return null;
}
public void addRow(Egreso egreso) {
rows.add(egreso);
this.fireTableRowsInserted(getRowCount() - 1, getRowCount() - 1);
}
public void removeRow(int row) {
this.rows.remove(row);
this.fireTableRowsDeleted(row, row);
}
public void removeRows() {
int rowCount = getRowCount();
if (rowCount > 0) {
this.rows.clear();
this.fireTableRowsDeleted(0, rowCount - 1);
}
}
public Egreso getEgreso(int row) {
return rows.get(row);
}
public void setEgreso(int editingId, Egreso egreso) {
this.rows.set(editingId, egreso);
this.fireTableRowsUpdated(0, getRowCount() - 1);
}
public void setEgreso(int editingId, Egreso egreso) {
this.rows.set(editingId, egreso);
this.fireTableRowsUpdated(0, getRowCount() - 1);
}
}

View File

@@ -25,77 +25,76 @@
package danielcortes.xyz.views.components.table_model;
import danielcortes.xyz.models.calculo_fondo.CalculoFondo;
import javax.swing.table.AbstractTableModel;
import java.text.NumberFormat;
import java.util.ArrayList;
import javax.swing.table.AbstractTableModel;
public class FondoTableModel extends AbstractTableModel {
private String[] columns;
private ArrayList<CalculoFondo> rows;
private NumberFormat nf;
private String[] columns;
private ArrayList<CalculoFondo> rows;
private NumberFormat nf;
public FondoTableModel() {
super();
this.columns = new String[]{"Valor", "Descripcion"};
this.rows = new ArrayList<>();
this.nf = NumberFormat.getIntegerInstance();
public FondoTableModel() {
super();
this.columns = new String[]{"Valor", "Descripcion"};
this.rows = new ArrayList<>();
this.nf = NumberFormat.getIntegerInstance();
}
@Override
public String getColumnName(int col) {
return columns[col];
}
@Override
public int getColumnCount() {
return columns.length;
}
@Override
public int getRowCount() {
return rows.size();
}
public void addRow(CalculoFondo calculoFondo) {
rows.add(calculoFondo);
this.fireTableRowsInserted(getRowCount() - 1, getRowCount() - 1);
}
public void removeRow(int row) {
this.rows.remove(row);
this.fireTableRowsDeleted(row, row);
}
public void removeRows() {
int rowCount = getRowCount();
if (rowCount > 0) {
this.rows.clear();
this.fireTableRowsDeleted(0, rowCount - 1);
}
}
@Override
public String getColumnName(int col) {
return columns[col];
public void setCalculoFondo(int editingId, CalculoFondo calculoFondo) {
this.rows.set(editingId, calculoFondo);
this.fireTableRowsUpdated(0, getRowCount() - 1);
}
@Override
public Object getValueAt(int row, int col) {
switch (col) {
case 0:
return nf.format(rows.get(row).getValor());
case 1:
return rows.get(row).getDescripcion();
}
return null;
}
@Override
public int getColumnCount() {
return columns.length;
}
@Override
public int getRowCount() {
return rows.size();
}
public void addRow(CalculoFondo calculoFondo) {
rows.add(calculoFondo);
this.fireTableRowsInserted(getRowCount() - 1, getRowCount() - 1);
}
public void removeRow(int row) {
this.rows.remove(row);
this.fireTableRowsDeleted(row, row);
}
public void removeRows() {
int rowCount = getRowCount();
if (rowCount > 0) {
this.rows.clear();
this.fireTableRowsDeleted(0, rowCount - 1);
}
}
public void setCalculoFondo(int editingId, CalculoFondo calculoFondo) {
this.rows.set(editingId, calculoFondo);
this.fireTableRowsUpdated(0, getRowCount() - 1);
}
@Override
public Object getValueAt(int row, int col) {
switch (col) {
case 0:
return nf.format(rows.get(row).getValor());
case 1:
return rows.get(row).getDescripcion();
}
return null;
}
public CalculoFondo getCalculoFondo(int row) {
return rows.get(row);
}
public CalculoFondo getCalculoFondo(int row) {
return rows.get(row);
}
}

View File

@@ -25,82 +25,83 @@
package danielcortes.xyz.views.components.table_model;
import danielcortes.xyz.models.ingreso.Ingreso;
import javax.swing.table.AbstractTableModel;
import java.text.NumberFormat;
import java.util.ArrayList;
import javax.swing.table.AbstractTableModel;
public class IngresosTableModel extends AbstractTableModel {
private String[] columns;
private ArrayList<Ingreso> rows;
private NumberFormat nf;
public IngresosTableModel() {
super();
this.columns = new String[]{"Valor", "N° Z Inicial", "N° Z Final", "N° Inicial", "N° Final", "Tipo"};
this.rows = new ArrayList<>();
this.nf = NumberFormat.getIntegerInstance();
}
private String[] columns;
private ArrayList<Ingreso> rows;
private NumberFormat nf;
@Override
public String getColumnName(int col) {
return this.columns[col];
}
public IngresosTableModel() {
super();
this.columns = new String[]{"Valor", "N° Z Inicial", "N° Z Final", "N° Inicial", "N° Final",
"Tipo"};
this.rows = new ArrayList<>();
this.nf = NumberFormat.getIntegerInstance();
}
@Override
public int getColumnCount() {
return this.columns.length;
}
@Override
public String getColumnName(int col) {
return this.columns[col];
}
@Override
public int getRowCount() {
return this.rows.size();
}
@Override
public int getColumnCount() {
return this.columns.length;
}
@Override
public Object getValueAt(int row, int col) {
switch (col) {
case 0:
return nf.format(this.rows.get(row).getValor());
case 1:
return this.rows.get(row).getNroZInicial();
case 2:
return this.rows.get(row).getNroZFinal();
case 3:
return this.rows.get(row).getNroInicial();
case 4:
return this.rows.get(row).getNroFinal();
case 5:
return this.rows.get(row).getTipoIngreso().getNombre();
}
return null;
}
@Override
public int getRowCount() {
return this.rows.size();
}
public void addRow(Ingreso ingreso) {
this.rows.add(ingreso);
this.fireTableRowsInserted(getRowCount() - 1, getRowCount() - 1);
@Override
public Object getValueAt(int row, int col) {
switch (col) {
case 0:
return nf.format(this.rows.get(row).getValor());
case 1:
return this.rows.get(row).getNroZInicial();
case 2:
return this.rows.get(row).getNroZFinal();
case 3:
return this.rows.get(row).getNroInicial();
case 4:
return this.rows.get(row).getNroFinal();
case 5:
return this.rows.get(row).getTipoIngreso().getNombre();
}
return null;
}
public void removeRow(int row) {
this.rows.remove(row);
this.fireTableRowsDeleted(row, row);
}
public void addRow(Ingreso ingreso) {
this.rows.add(ingreso);
this.fireTableRowsInserted(getRowCount() - 1, getRowCount() - 1);
}
public void removeRows() {
int rowCount = getRowCount();
if (rowCount > 0) {
this.rows.clear();
this.fireTableRowsDeleted(0, rowCount - 1);
}
}
public void removeRow(int row) {
this.rows.remove(row);
this.fireTableRowsDeleted(row, row);
}
public Ingreso getIngreso(int row) {
return this.rows.get(row);
public void removeRows() {
int rowCount = getRowCount();
if (rowCount > 0) {
this.rows.clear();
this.fireTableRowsDeleted(0, rowCount - 1);
}
}
public void setIngreso(int editingId, Ingreso ingreso) {
this.rows.set(editingId, ingreso);
this.fireTableRowsUpdated(getRowCount() - 2, getRowCount() - 1);
}
public Ingreso getIngreso(int row) {
return this.rows.get(row);
}
public void setIngreso(int editingId, Ingreso ingreso) {
this.rows.set(editingId, ingreso);
this.fireTableRowsUpdated(getRowCount() - 2, getRowCount() - 1);
}
}

View File

@@ -1,33 +1,34 @@
package danielcortes.xyz.views.dialogs;
import javax.swing.*;
import java.awt.*;
import java.awt.Desktop;
import java.io.IOException;
import java.nio.file.Path;
import javax.swing.JOptionPane;
public class InformeGeneratedConfirmation {
private Path path;
public InformeGeneratedConfirmation(Path path){
this.path = path;
}
public void execute(){
int result = JOptionPane.showConfirmDialog(
null,
"El informes se a generado" + "\n" + "¿Desea abrirlo?",
"Confirmacion",
JOptionPane.YES_NO_OPTION,
JOptionPane.QUESTION_MESSAGE
);
if (result == 0) {
try {
Desktop.getDesktop().open(this.path.toFile());
} catch (IOException e) {
e.printStackTrace();
}
}
private Path path;
public InformeGeneratedConfirmation(Path path) {
this.path = path;
}
public void execute() {
int result = JOptionPane.showConfirmDialog(
null,
"El informes se a generado" + "\n" + "¿Desea abrirlo?",
"Confirmacion",
JOptionPane.YES_NO_OPTION,
JOptionPane.QUESTION_MESSAGE
);
if (result == 0) {
try {
Desktop.getDesktop().open(this.path.toFile());
} catch (IOException e) {
e.printStackTrace();
}
}
}
}

View File

@@ -29,160 +29,201 @@ import com.intellij.uiDesigner.core.GridLayoutManager;
import com.intellij.uiDesigner.core.Spacer;
import danielcortes.xyz.views.components.YearSpinnerModel;
import danielcortes.xyz.views.listeners.WindowClosingListener;
import javax.swing.*;
import java.awt.*;
import java.awt.Insets;
import java.awt.event.KeyEvent;
import java.time.LocalDate;
import java.time.YearMonth;
import java.util.ArrayList;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JComponent;
import javax.swing.JDialog;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JSpinner;
import javax.swing.KeyStroke;
import javax.swing.SpinnerModel;
public class MonthSelectDialog extends JDialog {
private JPanel contentPane;
private JButton buttonOK;
private JButton buttonCancel;
private JComboBox<String> monthCombo;
private JSpinner yearSpinner;
private ArrayList<String> months;
private JPanel contentPane;
private JButton buttonOK;
private JButton buttonCancel;
private JComboBox<String> monthCombo;
private JSpinner yearSpinner;
private boolean acepted;
private ArrayList<String> months;
public MonthSelectDialog() {
$$$setupUI$$$();
setup();
private boolean acepted;
public MonthSelectDialog() {
$$$setupUI$$$();
setup();
}
private void setup() {
this.setContentPane(contentPane);
this.setModalityType(ModalityType.APPLICATION_MODAL);
this.getRootPane().setDefaultButton(buttonOK);
this.buttonOK.addActionListener(e -> onOK());
this.buttonCancel.addActionListener(e -> onCancel());
this.setDefaultCloseOperation(DO_NOTHING_ON_CLOSE);
this.addWindowListener((WindowClosingListener) e -> onCancel());
this.contentPane
.registerKeyboardAction(e -> onCancel(), KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0),
JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT);
this.setLocationRelativeTo(null);
pack();
}
public YearMonth execute() {
setVisible(true);
if (this.isAcepted()) {
return this.getMonth();
} else {
return null;
}
}
private void onOK() {
this.acepted = true;
dispose();
}
private void onCancel() {
this.acepted = false;
dispose();
}
private boolean isAcepted() {
return this.acepted;
}
private YearMonth getMonth() {
int year = Integer.valueOf((String) yearSpinner.getValue());
int month = this.months.indexOf(this.monthCombo.getSelectedItem()) + 1;
return YearMonth.of(year, month);
}
private void createUIComponents() {
createYearSpinner();
createMonthCombo();
}
private void createYearSpinner() {
SpinnerModel model = new YearSpinnerModel();
this.yearSpinner = new JSpinner();
this.yearSpinner.setModel(model);
((JSpinner.DefaultEditor) this.yearSpinner.getEditor()).getTextField().setEditable(true);
}
private void createMonthCombo() {
months = new ArrayList<>();
months.add("Enero");
months.add("Febrero");
months.add("Marzo");
months.add("Abril");
months.add("Mayo");
months.add("Junio");
months.add("Julio");
months.add("Agosto");
months.add("Septiembre");
months.add("Octubre");
months.add("Noviembre");
months.add("Diciembre");
monthCombo = new JComboBox<>();
for (String month : months) {
monthCombo.addItem(month);
}
private void setup() {
this.setContentPane(contentPane);
this.setModalityType(ModalityType.APPLICATION_MODAL);
this.getRootPane().setDefaultButton(buttonOK);
int currentMonth = LocalDate.now().getMonth().getValue() - 1;
monthCombo.setSelectedIndex(currentMonth);
}
this.buttonOK.addActionListener(e -> onOK());
/**
* Method generated by IntelliJ IDEA GUI Designer >>> IMPORTANT!! <<< DO NOT edit this method OR
* call it in your code!
*
* @noinspection ALL
*/
private void $$$setupUI$$$() {
createUIComponents();
contentPane = new JPanel();
contentPane.setLayout(new GridLayoutManager(2, 1, new Insets(10, 10, 10, 10), -1, -1));
final JPanel panel1 = new JPanel();
panel1.setLayout(new GridLayoutManager(1, 2, new Insets(0, 0, 0, 0), -1, -1));
contentPane.add(panel1,
new GridConstraints(1, 0, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_BOTH,
GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, 1, null,
null, null, 0, false));
final Spacer spacer1 = new Spacer();
panel1.add(spacer1, new GridConstraints(0, 0, 1, 1, GridConstraints.ANCHOR_CENTER,
GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_WANT_GROW, 1, null, null, null,
0, false));
final JPanel panel2 = new JPanel();
panel2.setLayout(new GridLayoutManager(1, 2, new Insets(0, 0, 0, 0), -1, -1, true, false));
panel1.add(panel2,
new GridConstraints(0, 1, 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));
buttonOK = new JButton();
buttonOK.setText("OK");
panel2.add(buttonOK, new GridConstraints(0, 0, 1, 1, GridConstraints.ANCHOR_CENTER,
GridConstraints.FILL_HORIZONTAL,
GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW,
GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
buttonCancel = new JButton();
buttonCancel.setText("Cancelar");
panel2.add(buttonCancel, new GridConstraints(0, 1, 1, 1, GridConstraints.ANCHOR_CENTER,
GridConstraints.FILL_HORIZONTAL,
GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW,
GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
final JPanel panel3 = new JPanel();
panel3.setLayout(new GridLayoutManager(3, 2, new Insets(0, 0, 0, 0), -1, -1));
contentPane.add(panel3,
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));
final JLabel label1 = new JLabel();
label1.setText("Mes");
panel3.add(label1,
new GridConstraints(1, 0, 1, 1, GridConstraints.ANCHOR_EAST, GridConstraints.FILL_NONE,
GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0,
false));
panel3.add(monthCombo, new GridConstraints(1, 1, 1, 1, GridConstraints.ANCHOR_WEST,
GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_CAN_GROW,
GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
final JLabel label2 = new JLabel();
label2.setText("Año");
panel3.add(label2,
new GridConstraints(2, 0, 1, 1, GridConstraints.ANCHOR_EAST, GridConstraints.FILL_NONE,
GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0,
false));
panel3.add(yearSpinner, new GridConstraints(2, 1, 1, 1, GridConstraints.ANCHOR_WEST,
GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_WANT_GROW,
GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
final JLabel label3 = new JLabel();
label3.setText("Seleccione Mes y Año");
panel3.add(label3,
new GridConstraints(0, 0, 1, 2, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_NONE,
GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0,
false));
}
this.buttonCancel.addActionListener(e -> onCancel());
this.setDefaultCloseOperation(DO_NOTHING_ON_CLOSE);
this.addWindowListener((WindowClosingListener) e -> onCancel());
this.contentPane.registerKeyboardAction(e -> onCancel(), KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0), JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT);
this.setLocationRelativeTo(null);
pack();
}
public YearMonth execute() {
setVisible(true);
if (this.isAcepted()) {
return this.getMonth();
} else {
return null;
}
}
private void onOK() {
this.acepted = true;
dispose();
}
private void onCancel() {
this.acepted = false;
dispose();
}
private boolean isAcepted() {
return this.acepted;
}
private YearMonth getMonth() {
int year = Integer.valueOf((String) yearSpinner.getValue());
int month = this.months.indexOf(this.monthCombo.getSelectedItem()) + 1;
return YearMonth.of(year, month);
}
private void createUIComponents() {
createYearSpinner();
createMonthCombo();
}
private void createYearSpinner() {
SpinnerModel model = new YearSpinnerModel();
this.yearSpinner = new JSpinner();
this.yearSpinner.setModel(model);
((JSpinner.DefaultEditor) this.yearSpinner.getEditor()).getTextField().setEditable(true);
}
private void createMonthCombo() {
months = new ArrayList<>();
months.add("Enero");
months.add("Febrero");
months.add("Marzo");
months.add("Abril");
months.add("Mayo");
months.add("Junio");
months.add("Julio");
months.add("Agosto");
months.add("Septiembre");
months.add("Octubre");
months.add("Noviembre");
months.add("Diciembre");
monthCombo = new JComboBox<>();
for (String month : months) {
monthCombo.addItem(month);
}
int currentMonth = LocalDate.now().getMonth().getValue() - 1;
monthCombo.setSelectedIndex(currentMonth);
}
/**
* Method generated by IntelliJ IDEA GUI Designer
* >>> IMPORTANT!! <<<
* DO NOT edit this method OR call it in your code!
*
* @noinspection ALL
*/
private void $$$setupUI$$$() {
createUIComponents();
contentPane = new JPanel();
contentPane.setLayout(new GridLayoutManager(2, 1, new Insets(10, 10, 10, 10), -1, -1));
final JPanel panel1 = new JPanel();
panel1.setLayout(new GridLayoutManager(1, 2, new Insets(0, 0, 0, 0), -1, -1));
contentPane.add(panel1, new GridConstraints(1, 0, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_BOTH, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, 1, null, null, null, 0, false));
final Spacer spacer1 = new Spacer();
panel1.add(spacer1, new GridConstraints(0, 0, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_WANT_GROW, 1, null, null, null, 0, false));
final JPanel panel2 = new JPanel();
panel2.setLayout(new GridLayoutManager(1, 2, new Insets(0, 0, 0, 0), -1, -1, true, false));
panel1.add(panel2, new GridConstraints(0, 1, 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));
buttonOK = new JButton();
buttonOK.setText("OK");
panel2.add(buttonOK, new GridConstraints(0, 0, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
buttonCancel = new JButton();
buttonCancel.setText("Cancelar");
panel2.add(buttonCancel, new GridConstraints(0, 1, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
final JPanel panel3 = new JPanel();
panel3.setLayout(new GridLayoutManager(3, 2, new Insets(0, 0, 0, 0), -1, -1));
contentPane.add(panel3, 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));
final JLabel label1 = new JLabel();
label1.setText("Mes");
panel3.add(label1, new GridConstraints(1, 0, 1, 1, GridConstraints.ANCHOR_EAST, GridConstraints.FILL_NONE, GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
panel3.add(monthCombo, new GridConstraints(1, 1, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_CAN_GROW, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
final JLabel label2 = new JLabel();
label2.setText("Año");
panel3.add(label2, new GridConstraints(2, 0, 1, 1, GridConstraints.ANCHOR_EAST, GridConstraints.FILL_NONE, GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
panel3.add(yearSpinner, new GridConstraints(2, 1, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_WANT_GROW, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
final JLabel label3 = new JLabel();
label3.setText("Seleccione Mes y Año");
panel3.add(label3, new GridConstraints(0, 0, 1, 2, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_NONE, GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
}
/**
* @noinspection ALL
*/
public JComponent $$$getRootComponent$$$() {
return contentPane;
}
/**
* @noinspection ALL
*/
public JComponent $$$getRootComponent$$$() {
return contentPane;
}
}

View File

@@ -30,116 +30,145 @@ import danielcortes.xyz.data.DAOManager;
import danielcortes.xyz.models.tipo_egreso.TipoEgreso;
import danielcortes.xyz.models.tipo_egreso.TipoEgresoToStringWrapper;
import danielcortes.xyz.views.listeners.WindowClosingListener;
import javax.swing.*;
import java.awt.*;
import java.awt.Insets;
import java.awt.event.KeyEvent;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JComponent;
import javax.swing.JDialog;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.KeyStroke;
public class TipoEgresoSelectDialog extends JDialog {
private JPanel contentPane;
private JButton buttonOK;
private JButton buttonCancel;
private JComboBox<TipoEgresoToStringWrapper> tipoEgresoCombo;
private boolean acepted;
private JPanel contentPane;
private JButton buttonOK;
private JButton buttonCancel;
private JComboBox<TipoEgresoToStringWrapper> tipoEgresoCombo;
public TipoEgresoSelectDialog() {
$$$setupUI$$$();
this.setup();
private boolean acepted;
public TipoEgresoSelectDialog() {
$$$setupUI$$$();
this.setup();
}
private void setup() {
this.setContentPane(contentPane);
this.setModalityType(ModalityType.APPLICATION_MODAL);
this.getRootPane().setDefaultButton(buttonOK);
this.buttonOK.addActionListener(e -> onOK());
this.buttonCancel.addActionListener(e -> onCancel());
this.setDefaultCloseOperation(DO_NOTHING_ON_CLOSE);
this.addWindowListener((WindowClosingListener) e -> onCancel());
this.contentPane
.registerKeyboardAction(e -> onCancel(), KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0),
JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT);
this.setLocationRelativeTo(null);
this.pack();
}
public TipoEgreso execute() {
this.setVisible(true);
if (this.isAcepted()) {
return this.getTipoEgreso();
} else {
return null;
}
}
private void setup() {
this.setContentPane(contentPane);
this.setModalityType(ModalityType.APPLICATION_MODAL);
this.getRootPane().setDefaultButton(buttonOK);
private void onOK() {
this.acepted = true;
dispose();
}
this.buttonOK.addActionListener(e -> onOK());
this.buttonCancel.addActionListener(e -> onCancel());
private void onCancel() {
this.acepted = false;
dispose();
}
this.setDefaultCloseOperation(DO_NOTHING_ON_CLOSE);
this.addWindowListener((WindowClosingListener) e -> onCancel());
this.contentPane.registerKeyboardAction(e -> onCancel(), KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0), JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT);
public boolean isAcepted() {
return this.acepted;
}
this.setLocationRelativeTo(null);
this.pack();
public TipoEgreso getTipoEgreso() {
return (TipoEgreso) tipoEgresoCombo.getSelectedItem();
}
private void createUIComponents() {
createTipoEgresoCombo();
}
private void createTipoEgresoCombo() {
tipoEgresoCombo = new JComboBox<>();
for (TipoEgreso tipoEgreso : DAOManager.getTipoEgresoDAO().findAll()) {
tipoEgresoCombo.addItem(new TipoEgresoToStringWrapper(tipoEgreso));
}
}
public TipoEgreso execute() {
this.setVisible(true);
/**
* Method generated by IntelliJ IDEA GUI Designer >>> IMPORTANT!! <<< DO NOT edit this method OR
* call it in your code!
*
* @noinspection ALL
*/
private void $$$setupUI$$$() {
createUIComponents();
contentPane = new JPanel();
contentPane.setLayout(new GridLayoutManager(2, 1, new Insets(10, 10, 10, 10), -1, -1));
final JPanel panel1 = new JPanel();
panel1.setLayout(new GridLayoutManager(1, 1, new Insets(0, 0, 0, 0), -1, -1));
contentPane.add(panel1,
new GridConstraints(1, 0, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_BOTH,
GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, 1, null,
null, null, 0, false));
final JPanel panel2 = new JPanel();
panel2.setLayout(new GridLayoutManager(1, 2, new Insets(0, 0, 0, 0), -1, -1, true, false));
panel1.add(panel2,
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));
buttonOK = new JButton();
buttonOK.setText("OK");
panel2.add(buttonOK, new GridConstraints(0, 0, 1, 1, GridConstraints.ANCHOR_CENTER,
GridConstraints.FILL_HORIZONTAL,
GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW,
GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
buttonCancel = new JButton();
buttonCancel.setText("Cancel");
panel2.add(buttonCancel, new GridConstraints(0, 1, 1, 1, GridConstraints.ANCHOR_CENTER,
GridConstraints.FILL_HORIZONTAL,
GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW,
GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
final JPanel panel3 = new JPanel();
panel3.setLayout(new GridLayoutManager(2, 1, new Insets(0, 0, 0, 0), -1, -1));
contentPane.add(panel3,
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));
panel3.add(tipoEgresoCombo, new GridConstraints(1, 0, 1, 1, GridConstraints.ANCHOR_WEST,
GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_CAN_GROW,
GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
final JLabel label1 = new JLabel();
label1.setText("Seleccione el Tipo de Egreso:");
panel3.add(label1,
new GridConstraints(0, 0, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_NONE,
GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0,
false));
}
if (this.isAcepted()) {
return this.getTipoEgreso();
} else {
return null;
}
}
private void onOK() {
this.acepted = true;
dispose();
}
private void onCancel() {
this.acepted = false;
dispose();
}
public boolean isAcepted() {
return this.acepted;
}
public TipoEgreso getTipoEgreso() {
return (TipoEgreso) tipoEgresoCombo.getSelectedItem();
}
private void createUIComponents() {
createTipoEgresoCombo();
}
private void createTipoEgresoCombo() {
tipoEgresoCombo = new JComboBox<>();
for (TipoEgreso tipoEgreso : DAOManager.getTipoEgresoDAO().findAll()) {
tipoEgresoCombo.addItem(new TipoEgresoToStringWrapper(tipoEgreso));
}
}
/**
* Method generated by IntelliJ IDEA GUI Designer
* >>> IMPORTANT!! <<<
* DO NOT edit this method OR call it in your code!
*
* @noinspection ALL
*/
private void $$$setupUI$$$() {
createUIComponents();
contentPane = new JPanel();
contentPane.setLayout(new GridLayoutManager(2, 1, new Insets(10, 10, 10, 10), -1, -1));
final JPanel panel1 = new JPanel();
panel1.setLayout(new GridLayoutManager(1, 1, new Insets(0, 0, 0, 0), -1, -1));
contentPane.add(panel1, new GridConstraints(1, 0, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_BOTH, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, 1, null, null, null, 0, false));
final JPanel panel2 = new JPanel();
panel2.setLayout(new GridLayoutManager(1, 2, new Insets(0, 0, 0, 0), -1, -1, true, false));
panel1.add(panel2, 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));
buttonOK = new JButton();
buttonOK.setText("OK");
panel2.add(buttonOK, new GridConstraints(0, 0, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
buttonCancel = new JButton();
buttonCancel.setText("Cancel");
panel2.add(buttonCancel, new GridConstraints(0, 1, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
final JPanel panel3 = new JPanel();
panel3.setLayout(new GridLayoutManager(2, 1, new Insets(0, 0, 0, 0), -1, -1));
contentPane.add(panel3, 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));
panel3.add(tipoEgresoCombo, new GridConstraints(1, 0, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_CAN_GROW, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
final JLabel label1 = new JLabel();
label1.setText("Seleccione el Tipo de Egreso:");
panel3.add(label1, new GridConstraints(0, 0, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_NONE, GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
}
/**
* @noinspection ALL
*/
public JComponent $$$getRootComponent$$$() {
return contentPane;
}
/**
* @noinspection ALL
*/
public JComponent $$$getRootComponent$$$() {
return contentPane;
}
}

View File

@@ -1,79 +1,85 @@
package danielcortes.xyz.views.dialogs;
import javax.swing.*;
import javax.swing.filechooser.FileNameExtensionFilter;
import java.io.File;
import java.io.IOException;
import java.nio.file.*;
import java.nio.file.FileAlreadyExistsException;
import java.nio.file.Files;
import java.nio.file.InvalidPathException;
import java.nio.file.Path;
import java.nio.file.Paths;
import javax.swing.JFileChooser;
import javax.swing.JOptionPane;
import javax.swing.filechooser.FileNameExtensionFilter;
public class XLSFileChooser {
private JFileChooser chooser;
public XLSFileChooser(String suggestedName){
this.chooser = new JFileChooser();
this.chooser.setDialogType(JFileChooser.SAVE_DIALOG);
this.chooser.setSelectedFile(new File(suggestedName + ".xls"));
this.chooser.setFileFilter(new FileNameExtensionFilter("Excel 2007", "xls"));
private JFileChooser chooser;
public XLSFileChooser(String suggestedName) {
this.chooser = new JFileChooser();
this.chooser.setDialogType(JFileChooser.SAVE_DIALOG);
this.chooser.setSelectedFile(new File(suggestedName + ".xls"));
this.chooser.setFileFilter(new FileNameExtensionFilter("Excel 2007", "xls"));
}
public Path execute() {
boolean accepted = this.chooser.showSaveDialog(null) == JFileChooser.APPROVE_OPTION;
if (accepted) {
Path path = processFilePath(this.chooser.getSelectedFile().getPath());
return path;
} else {
return null;
}
}
private Path processFilePath(String pathString) {
Path path;
if (!pathString.endsWith(".xls")) {
pathString = pathString + ".xls";
}
public Path execute(){
boolean accepted = this.chooser.showSaveDialog(null) == JFileChooser.APPROVE_OPTION;
if(accepted){
Path path = processFilePath(this.chooser.getSelectedFile().getPath());
return path;
}else{
return null;
}
try {
path = Paths.get(pathString);
} catch (InvalidPathException e) {
e.printStackTrace();
JOptionPane.showMessageDialog(
null,
"El nombre de archivo entregado es invalido",
"Error!",
JOptionPane.ERROR_MESSAGE
);
return null;
}
private Path processFilePath(String pathString) {
Path path;
try {
Files.createFile(path);
} catch (FileAlreadyExistsException e) {
int response = JOptionPane.showConfirmDialog(
null,
"El archivo ya existe" + "\n" + "¿Desea sobreescribirlo?",
"Confirmacion",
JOptionPane.YES_NO_OPTION,
JOptionPane.WARNING_MESSAGE
);
if (!pathString.endsWith(".xls")) {
pathString = pathString + ".xls";
}
if (response != 0) {
return null;
}
try {
path = Paths.get(pathString);
} catch (InvalidPathException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
JOptionPane.showMessageDialog(
null,
"No a sido posible crear el archivo",
"Error!",
JOptionPane.ERROR_MESSAGE
);
JOptionPane.showMessageDialog(
null,
"El nombre de archivo entregado es invalido",
"Error!",
JOptionPane.ERROR_MESSAGE
);
return null;
}
try {
Files.createFile(path);
} catch (FileAlreadyExistsException e) {
int response = JOptionPane.showConfirmDialog(
null,
"El archivo ya existe" + "\n" + "¿Desea sobreescribirlo?",
"Confirmacion",
JOptionPane.YES_NO_OPTION,
JOptionPane.WARNING_MESSAGE
);
if (response != 0) {
return null;
}
} catch (IOException e) {
e.printStackTrace();
JOptionPane.showMessageDialog(
null,
"No a sido posible crear el archivo",
"Error!",
JOptionPane.ERROR_MESSAGE
);
return null;
}
return path;
return null;
}
return path;
}
}

View File

@@ -4,10 +4,12 @@ import java.awt.event.FocusEvent;
import java.awt.event.FocusListener;
public interface FocusLostListener extends FocusListener {
@Override
default void focusGained(FocusEvent e){ }
@Override
void focusLost(FocusEvent e);
@Override
default void focusGained(FocusEvent e) {
}
@Override
void focusLost(FocusEvent e);
}

View File

@@ -7,12 +7,24 @@ import java.awt.event.WindowListener;
* Simple wraper for WindowListener to simple use the windowClosing method in a lambda function
*/
public interface WindowClosingListener extends WindowListener {
default void windowOpened(WindowEvent e){}
default void windowClosed(WindowEvent e){}
default void windowIconified(WindowEvent e){}
default void windowDeiconified(WindowEvent e){}
default void windowActivated(WindowEvent e){}
default void windowDeactivated(WindowEvent e){}
void windowClosing(WindowEvent e);
default void windowOpened(WindowEvent e) {
}
default void windowClosed(WindowEvent e) {
}
default void windowIconified(WindowEvent e) {
}
default void windowDeiconified(WindowEvent e) {
}
default void windowActivated(WindowEvent e) {
}
default void windowDeactivated(WindowEvent e) {
}
void windowClosing(WindowEvent e);
}