diff --git a/dist/caja.jar b/dist/caja.jar index d5af263..559d843 100644 Binary files a/dist/caja.jar and b/dist/caja.jar differ diff --git a/dist/database.sqlite b/dist/database.sqlite index 6f21ed7..6b4bfee 100644 Binary files a/dist/database.sqlite and b/dist/database.sqlite differ diff --git a/src/danielcortes/xyz/controllers/IngresosController.java b/src/danielcortes/xyz/controllers/IngresosController.java index 2523c1b..c870f6a 100644 --- a/src/danielcortes/xyz/controllers/IngresosController.java +++ b/src/danielcortes/xyz/controllers/IngresosController.java @@ -158,7 +158,7 @@ public class IngresosController { this.normalizeInputs(); this.hideErrorMessages(); - String valor = this.view.getValorField().getText(); + int valor = this.view.getValorField().getValue(); String nroZInicial = this.view.getNroZInicialField().getText(); String nroZFinal = this.view.getNroZFinalField().getText(); String nroInicial = this.view.getNroInicialField().getText(); @@ -208,7 +208,7 @@ public class IngresosController { this.editing = true; this.view.getTipoCombo().setSelectedItem(ingreso.getTipoIngreso()); - this.view.getValorField().setText(String.valueOf(ingreso.getValor())); + 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())); @@ -221,7 +221,7 @@ public class IngresosController { */ private void updateTotalIngresos(){ int total = this.ingresoDAO.getTotalIngreso(this.caja); - this.view.getTotalIngresoField().setText(String.valueOf(total)); + this.view.getTotalIngresoField().setValue(total); } /** @@ -243,12 +243,12 @@ public class IngresosController { * 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(String valor, String nroZInicial, String nroZFinal, String nroInicial, String nroFinal, TipoIngreso tipoIngreso, Caja caja){ - if(this.validateInput(valor, nroZInicial, nroZFinal, nroInicial, nroFinal, tipoIngreso, caja)){ + 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(Integer.valueOf(valor)); + ingreso.setValor(valor); ingreso.setNroZInicial(nroZInicial); ingreso.setNroZFinal(nroZFinal); ingreso.setNroInicial(nroInicial); @@ -267,10 +267,10 @@ public class IngresosController { * 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(String valor, String nroZInicial, String nroZFinal, String nroInicial, String nroFinal, TipoIngreso tipoIngreso, Caja caja){ - if(this.validateInput(valor, nroZInicial, nroZFinal, nroInicial, nroFinal, tipoIngreso, caja)){ + 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(Integer.valueOf(valor)); + this.editingIngreso.setValor(valor); this.editingIngreso.setNroZInicial(nroZInicial); this.editingIngreso.setNroZFinal(nroZFinal); this.editingIngreso.setNroInicial(nroInicial); @@ -287,10 +287,9 @@ public class IngresosController { * Llama a los metodos necesarios para validar el input * @return true cuando todas las validaciones retoran true, si no, false */ - private boolean validateInput(String valor, String nroZInicial, String nroZFinal, String nroInicial, String nroFinal, TipoIngreso tipoIngreso, Caja caja) { + private boolean validateInput(String nroZInicial, String nroZFinal, String nroInicial, String nroFinal, TipoIngreso tipoIngreso, Caja caja) { this.hideErrorMessages(); - boolean valorValidation = this.validateValor(valor); boolean nroZInicialValidation = this.validateNroZInicial(nroZInicial); boolean nroZFinalValidation = this.validateNroZFinal(nroZFinal); boolean nroInicialValidation = this.validateNroInicial(nroInicial); @@ -298,7 +297,7 @@ public class IngresosController { boolean tipoIngresoValidation = this.validateTipoIngreso(tipoIngreso); boolean cajaValidation = this.validateCaja(caja); - return valorValidation && tipoIngresoValidation && cajaValidation; + return nroZInicialValidation && nroZFinalValidation && nroInicialValidation && nroFinalValidation && tipoIngresoValidation && cajaValidation; } /** @@ -310,44 +309,6 @@ public class IngresosController { return caja != null; } - /** - * Valida la variable valor contra los casos - * - Es null - * - Esta vacio - * - Los caracteres no son solamente digitos - * - El largo del string es mayor a 10 - * 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 validateValor(String valor) { - if (valor == null) { - this.view.getErrorValor().setText("Hubo un problema con los datos"); - this.view.getErrorValor().setVisible(true); - return false; - } - - if (valor.isEmpty()) { - this.view.getErrorValor().setText("El campo esta vacio"); - this.view.getErrorValor().setVisible(true); - return false; - } - - if (!valor.chars().allMatch(Character::isDigit)) { - this.view.getErrorValor().setText("Deben ser numeros"); - this.view.getErrorValor().setVisible(true); - return false; - } - - if(valor.length() > 10){ - this.view.getErrorValor().setText("El numero ingresado es demasiado largo"); - this.view.getErrorValor().setVisible(true); - return false; - } - - return true; - - } - /** * Valida la variable nroInicial contra los casos * - Es null @@ -456,7 +417,6 @@ public class IngresosController { */ private void hideErrorMessages() { this.view.getErrorTipoIngreso().setVisible(false); - this.view.getErrorValor().setVisible(false); this.view.getErrorNroZInicial().setVisible(false); this.view.getErrorNroZFinal().setVisible(false); this.view.getErrorNroInicial().setVisible(false); @@ -468,6 +428,7 @@ public class IngresosController { */ 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(""); @@ -479,7 +440,6 @@ public class IngresosController { * Ejecuta un trim sobre todos los jtextfield */ private void normalizeInputs(){ - this.view.getValorField().setText(this.view.getValorField().getText().trim()); 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()); diff --git a/src/danielcortes/xyz/views/IngresosView.form b/src/danielcortes/xyz/views/IngresosView.form index 0b83138..c25b730 100644 --- a/src/danielcortes/xyz/views/IngresosView.form +++ b/src/danielcortes/xyz/views/IngresosView.form @@ -65,7 +65,7 @@ - + @@ -223,7 +223,7 @@ - + diff --git a/src/danielcortes/xyz/views/IngresosView.java b/src/danielcortes/xyz/views/IngresosView.java index 0f2a86c..cf50b9c 100644 --- a/src/danielcortes/xyz/views/IngresosView.java +++ b/src/danielcortes/xyz/views/IngresosView.java @@ -29,6 +29,7 @@ import com.intellij.uiDesigner.core.GridLayoutManager; import com.intellij.uiDesigner.core.Spacer; import danielcortes.xyz.models.tipo_ingreso.TipoIngreso; import danielcortes.xyz.views.components.IngresosTableModel; +import danielcortes.xyz.views.components.NumberFormatedTextField; import javax.swing.*; import javax.swing.table.TableRowSorter; @@ -39,8 +40,8 @@ public class IngresosView { private JTable ingresosTable; private JButton guardarButton; private JButton eliminarButton; - private JTextField totalIngresoField; - private JTextField valorField; + private NumberFormatedTextField totalIngresoField; + private NumberFormatedTextField valorField; private JComboBox tipoCombo; private JLabel errorTipoIngreso; private JLabel errorValor; @@ -85,11 +86,11 @@ public class IngresosView { return eliminarButton; } - public JTextField getTotalIngresoField() { + public NumberFormatedTextField getTotalIngresoField() { return totalIngresoField; } - public JTextField getValorField() { + public NumberFormatedTextField getValorField() { return valorField; } @@ -183,7 +184,7 @@ public class IngresosView { 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 JTextField(); + 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"); @@ -244,7 +245,7 @@ public class IngresosView { 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 JTextField(); + 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(); diff --git a/src/danielcortes/xyz/views/components/EgresosTableModel.java b/src/danielcortes/xyz/views/components/EgresosTableModel.java index c1f8157..153ff21 100644 --- a/src/danielcortes/xyz/views/components/EgresosTableModel.java +++ b/src/danielcortes/xyz/views/components/EgresosTableModel.java @@ -27,16 +27,21 @@ package danielcortes.xyz.views.components; import danielcortes.xyz.models.egreso.Egreso; import javax.swing.table.AbstractTableModel; +import java.text.NumberFormat; import java.util.ArrayList; public class EgresosTableModel extends AbstractTableModel { private String[] columns; private ArrayList rows; + private NumberFormat nf; + public EgresosTableModel(){ super(); this.columns = new String[]{"N°", "Descripcion", "Valor", "Tipo"}; this.rows = new ArrayList<>(); + this.nf = NumberFormat.getIntegerInstance(); + } @Override @@ -86,7 +91,7 @@ public class EgresosTableModel extends AbstractTableModel { case 1: return rows.get(row).getDescripcion(); case 2: - return rows.get(row).getValor(); + return nf.format(rows.get(row).getValor()); case 3: return rows.get(row).getTipoEgreso(); } @@ -97,12 +102,4 @@ public class EgresosTableModel extends AbstractTableModel { return rows.get(row); } - @Override - public Class getColumnClass(int columnIndex) { - if (rows.isEmpty()) { - return Object.class; - } - return getValueAt(0, columnIndex).getClass(); - } - } diff --git a/src/danielcortes/xyz/views/components/IngresosTableModel.java b/src/danielcortes/xyz/views/components/IngresosTableModel.java index a1d8a35..85f7c4f 100644 --- a/src/danielcortes/xyz/views/components/IngresosTableModel.java +++ b/src/danielcortes/xyz/views/components/IngresosTableModel.java @@ -27,16 +27,19 @@ package danielcortes.xyz.views.components; import danielcortes.xyz.models.ingreso.Ingreso; import javax.swing.table.AbstractTableModel; +import java.text.NumberFormat; import java.util.ArrayList; public class IngresosTableModel extends AbstractTableModel { private String[] columns; private ArrayList 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(); } @Override @@ -76,7 +79,7 @@ public class IngresosTableModel extends AbstractTableModel { public Object getValueAt(int row, int col) { switch (col) { case 0: - return this.rows.get(row).getValor(); + return nf.format(this.rows.get(row).getValor()); case 1: return this.rows.get(row).getNroZInicial(); case 2: