From 4c087680cd98bf84d405916220a54191a068d838 Mon Sep 17 00:00:00 2001 From: Daniel Cortes Date: Sat, 5 Jan 2019 18:15:49 -0300 Subject: [PATCH] Agregado nro z inicial y nro z final a tabla ingresos --- .idea/dataSources.xml | 2 +- .../6e2ee496-6ca2-4cc4-a2b0-4f122e6bfd50.xml | 36 +- .idea/workspace.xml | 639 ++++++++++-------- database/sqlite.sql | 10 +- dist/caja.jar | Bin 11338171 -> 11339040 bytes dist/database.sqlite | Bin 32768 -> 32768 bytes .../xyz/controllers/IngresosController.java | 81 ++- .../xyz/models/ingreso/Ingreso.java | 18 + .../xyz/models/ingreso/IngresoDAO.java | 2 + .../xyz/models/ingreso/SQLiteIngresoDAO.java | 26 +- src/danielcortes/xyz/views/IngresosView.form | 76 ++- src/danielcortes/xyz/views/IngresosView.java | 73 +- .../views/components/IngresosTableModel.java | 17 +- 13 files changed, 636 insertions(+), 344 deletions(-) diff --git a/.idea/dataSources.xml b/.idea/dataSources.xml index 7f27263..482786e 100644 --- a/.idea/dataSources.xml +++ b/.idea/dataSources.xml @@ -19,7 +19,7 @@ sqlite.xerial true org.sqlite.JDBC - jdbc:sqlite:$PROJECT_DIR$/database.sqlite + jdbc:sqlite:$PROJECT_DIR$/dist/database.sqlite diff --git a/.idea/dataSources/6e2ee496-6ca2-4cc4-a2b0-4f122e6bfd50.xml b/.idea/dataSources/6e2ee496-6ca2-4cc4-a2b0-4f122e6bfd50.xml index f1eea48..96521f8 100644 --- a/.idea/dataSources/6e2ee496-6ca2-4cc4-a2b0-4f122e6bfd50.xml +++ b/.idea/dataSources/6e2ee496-6ca2-4cc4-a2b0-4f122e6bfd50.xml @@ -205,67 +205,75 @@ integer unsigned|0s 1 - + + 7 + text|0s + + + 8 + text|0s + + id 1 - + tipo_ingreso_id tipos_ingreso id restrict cascade - + caja_id caja id restrict cascade - + 1 text|0s - + 2 text|0s - + 3 text|0s - + 4 int|0s - + 5 text|0s - + 1 integer|0s - + 2 text|0s 1 - + id 1 - + 1 integer|0s - + 2 text|0s 1 - + id 1 diff --git a/.idea/workspace.xml b/.idea/workspace.xml index f069337..f0f9c3b 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -6,61 +6,23 @@ - + - - - - + + + - - - - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - - @@ -103,7 +65,7 @@ - + - - @@ -326,7 +317,7 @@ - + @@ -339,7 +330,7 @@ - + @@ -507,6 +498,7 @@ + 1545280618093 @@ -690,11 +682,18 @@ - - @@ -707,17 +706,18 @@ + - + - + - + @@ -727,7 +727,7 @@ - + @@ -821,17 +821,14 @@ - - - - - @@ -841,13 +838,7 @@ - - - - - - - + @@ -875,13 +866,6 @@ - - - - - - - @@ -918,22 +902,6 @@ - - - - - - - - - - - - - - - - @@ -953,31 +921,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - @@ -1026,78 +969,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -1154,61 +1025,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -1288,20 +1104,305 @@ - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/database/sqlite.sql b/database/sqlite.sql index abb87a2..83ed8f9 100644 --- a/database/sqlite.sql +++ b/database/sqlite.sql @@ -98,7 +98,6 @@ create table documentos foreign key (caja_id) references caja (id) on update cascade on delete restrict ); - insert into tipos_egreso (nombre) values ('Factura Materia Prima'), ('Factura Gastos Generales'), @@ -116,5 +115,12 @@ insert into tipos_ingreso (nombre) values ('Boletas Fiscales'), ('Boletas Manuales'), ('Facturas'), - ('Guias') + ('Guias'); + +/* + Primera Migracion, se agrega las columnas de nro de z inicial y final para el ingreso. +*/ + +alter table ingresos add column nro_z_inicial text; +alter table ingresos add column nro_z_final text; diff --git a/dist/caja.jar b/dist/caja.jar index 4b9041780ad9f21f7da0c5d193633023472d4162..460f489f44c23b9d5a2737a2529b0aae8cd1ee44 100644 GIT binary patch delta 59528 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 delta 57988 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 delta 1660 zcmZvce`p*<6vuaV?sj)>cjn#Yvbmh+k+l6I5qjZf?=Hz9g6B21fuwg_F2O1YYdj?- zCLy^9p~wX-B!7r#V_U^Pv@Q6L_=gQb|EfhxDW%w=Aozp+p%_x6f2b%FL4CWqqzk(2 z@%Hnb_ukCBH*>42>guZcW-4}CQ4|AzyU&5Q4(3v)m4W`_93|Z_6gUU{e8##L`IAKr zV>1?gL*For10=k8(72&SUTcQ+L^@5@9^L#STp$~Z!ro};7dGx$?~>5w8h=II5748) zuka&$4Oih)_z=#*I;_BPcm~GcF&Kaz%z9t6I8bGula<9xR%WsVE_QG@Bb|(s<2-=b zBDVr4v)l~E=6EEClCvN>+z7PVUT97Yfh`+_p;+8lsE{WI0qIg;y7Fp5F|KY#$ zE&eUPi6uJ4TjoQ$0zeqa=R>BMY(p+bO|!cVj-#59ga?cfDa}NeuGndnkeA)r#<)A} zE;i=ez9OKlT-n{`GpBDt4jw&^ax2P`g7^_JpI>91q* zRi@a0>h40S?)1zHt(j^0J?peQZ@T0C9bYrBtC%9Zg-d9-pg{6mP^;Xp*SG*&N7n3pI`hfv;|zf!BzD-*p_Beg>#{&0%w zO4{3yQ;<>?hla*W&mODPMknf}ho7Rhsw+vaWI5>+hh%y3aH-xgPi@kc3vzI%nDgbn z@2Gc~0a^;&$BVcHcilB# zej0>pmTxT$d<$B{w-LtBqU)7wOf!7R&~)GGn&w+Hz71<3--Z}Piy@cKP)+qEHB8W| z2D?}#(G)Bz3>w}a#~ru@pTWoQKAeJ+(0~T6a}-(v`%2<5Mh2XG-pQNZ7D)`bTo@W0 zHZ5!)0Yr|++cdFh1g``M<)vw1t5grzio0Y+u{$JgGjaki0lqm?U}LBks-NqXGAlTC zg8IQ{uS>~dSb8=7M4XU;&t+cXODV^?`z~~QOUib=V+#BRKjG@Hz$b7XYkU$Gz=ar; zArJeZhWq$Mw7|5mwyNPjB))D&g{9CP#F|t7xZvD#X+H!hh!%$+0*?eS(!mfhoj(B~ yf89Sulvf^#^Pa9orn34tpQOFb@SW)IkyV@~iJe@n~~3=%QLAfb3tO4-tL< diff --git a/src/danielcortes/xyz/controllers/IngresosController.java b/src/danielcortes/xyz/controllers/IngresosController.java index fd7c802..2523c1b 100644 --- a/src/danielcortes/xyz/controllers/IngresosController.java +++ b/src/danielcortes/xyz/controllers/IngresosController.java @@ -31,7 +31,6 @@ import danielcortes.xyz.models.tipo_ingreso.TipoIngreso; import danielcortes.xyz.models.tipo_ingreso.TipoIngresoDAO; import danielcortes.xyz.views.IngresosView; import danielcortes.xyz.views.components.IngresosTableModel; -import org.jetbrains.annotations.Contract; import javax.swing.*; import java.awt.event.*; @@ -121,11 +120,15 @@ public class IngresosController { */ private void setupViewEvents() { this.view.getValorField().getInputMap(JComponent.WHEN_FOCUSED).put(KeyStroke.getKeyStroke("ENTER"), "nextField"); + this.view.getNroZInicialField().getInputMap(JComponent.WHEN_FOCUSED).put(KeyStroke.getKeyStroke("ENTER"), "nextField"); + this.view.getNroZFinalField().getInputMap(JComponent.WHEN_FOCUSED).put(KeyStroke.getKeyStroke("ENTER"), "nextField"); this.view.getNroInicialField().getInputMap(JComponent.WHEN_FOCUSED).put(KeyStroke.getKeyStroke("ENTER"), "nextField"); this.view.getNroFinalField().getInputMap(JComponent.WHEN_FOCUSED).put(KeyStroke.getKeyStroke("ENTER"), "nextField"); this.view.getTipoCombo().getInputMap(JComponent.WHEN_FOCUSED).put(KeyStroke.getKeyStroke("ENTER"), "save"); - this.view.getValorField().getActionMap().put("nextField", new NextAction(this.view.getNroInicialField())); + this.view.getValorField().getActionMap().put("nextField", new NextAction(this.view.getNroZInicialField())); + this.view.getNroZInicialField().getActionMap().put("nextField", new NextAction(this.view.getNroZFinalField())); + this.view.getNroZFinalField().getActionMap().put("nextField", new NextAction(this.view.getNroInicialField())); this.view.getNroInicialField().getActionMap().put("nextField", new NextAction(this.view.getNroFinalField())); this.view.getNroFinalField().getActionMap().put("nextField", new NextAction(this.view.getTipoCombo())); this.view.getTipoCombo().getActionMap().put("save", new GuardarAction(this)); @@ -156,14 +159,16 @@ public class IngresosController { this.hideErrorMessages(); String valor = this.view.getValorField().getText(); + 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, nroInicial, nroFinal, tipoIngreso, this.caja); + this.editarIngreso(valor, nroZInicial, nroZFinal, nroInicial, nroFinal, tipoIngreso, this.caja); } else { - this.guardarIngreso(valor, nroInicial, nroFinal, tipoIngreso, this.caja); + this.guardarIngreso(valor, nroZInicial, nroZFinal, nroInicial, nroFinal, tipoIngreso, this.caja); } this.resetFocus(); } @@ -204,6 +209,8 @@ public class IngresosController { this.view.getTipoCombo().setSelectedItem(ingreso.getTipoIngreso()); this.view.getValorField().setText(String.valueOf(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())); } @@ -236,12 +243,14 @@ 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 nroInicial, String nroFinal, TipoIngreso tipoIngreso, Caja caja){ - if(this.validateInput(valor, nroInicial, nroFinal, tipoIngreso, caja)){ + 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)){ Ingreso ingreso = new Ingreso(); ingreso.setTipoIngreso(tipoIngreso); ingreso.setCaja(caja); ingreso.setValor(Integer.valueOf(valor)); + ingreso.setNroZInicial(nroZInicial); + ingreso.setNroZFinal(nroZFinal); ingreso.setNroInicial(nroInicial); ingreso.setNroFinal(nroFinal); @@ -258,10 +267,12 @@ 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 nroInicial, String nroFinal, TipoIngreso tipoIngreso, Caja caja){ - if(this.validateInput(valor, nroInicial, nroFinal, tipoIngreso, caja)){ + 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)){ this.editingIngreso.setTipoIngreso(tipoIngreso); this.editingIngreso.setValor(Integer.valueOf(valor)); + this.editingIngreso.setNroZInicial(nroZInicial); + this.editingIngreso.setNroZFinal(nroZFinal); this.editingIngreso.setNroInicial(nroInicial); this.editingIngreso.setNroFinal(nroFinal); this.ingresoDAO.updateIngreso(this.editingIngreso); @@ -276,10 +287,12 @@ 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 nroInicial, String nroFinal, TipoIngreso tipoIngreso, Caja caja) { + private boolean validateInput(String valor, 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); boolean nroFinalValidation = this.validateNroFinal(nroFinal); boolean tipoIngresoValidation = this.validateTipoIngreso(tipoIngreso); @@ -335,6 +348,50 @@ public class IngresosController { } + /** + * 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 validateNroZInicial(String nroZInicial){ + if (nroZInicial == null) { + this.view.getErrorNroInicial().setText("Hubo un problema con los datos"); + this.view.getErrorNroInicial().setVisible(true); + return false; + } + + if (nroZInicial.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 validateNroZFinal(String nroZFinal){ + if (nroZFinal == null) { + this.view.getErrorNroFinal().setText("Hubo un problema con los datos"); + this.view.getErrorNroFinal().setVisible(true); + return false; + } + + if (nroZFinal.isEmpty()) { + this.view.getErrorNroFinal().setText("El campo esta vacio"); + this.view.getErrorNroFinal().setVisible(true); + return false; + } + return true; + } + /** * Valida la variable nroInicial contra los casos * - Es null @@ -400,6 +457,8 @@ 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); this.view.getErrorNroFinal().setVisible(false); } @@ -410,6 +469,8 @@ public class IngresosController { private void clearInputs() { this.view.getTipoCombo().setSelectedIndex(0); this.view.getValorField().setText(""); + this.view.getNroZInicialField().setText(""); + this.view.getNroZFinalField().setText(""); this.view.getNroInicialField().setText(""); this.view.getNroFinalField().setText(""); } @@ -419,6 +480,8 @@ public class IngresosController { */ 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()); this.view.getNroFinalField().setText(this.view.getNroFinalField().getText().trim()); } diff --git a/src/danielcortes/xyz/models/ingreso/Ingreso.java b/src/danielcortes/xyz/models/ingreso/Ingreso.java index fb497b9..86992c2 100644 --- a/src/danielcortes/xyz/models/ingreso/Ingreso.java +++ b/src/danielcortes/xyz/models/ingreso/Ingreso.java @@ -30,6 +30,8 @@ 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; @@ -51,6 +53,22 @@ public class Ingreso { this.valor = valor; } + public String getNroZInicial() { + return nroZInicial; + } + + public void setNroZInicial(String nroZInicial) { + this.nroZInicial = nroZInicial; + } + + public String getNroZFinal() { + return nroZFinal; + } + + public void setNroZFinal(String nroZFinal) { + this.nroZFinal = nroZFinal; + } + public String getNroInicial() { return nroInicial; } diff --git a/src/danielcortes/xyz/models/ingreso/IngresoDAO.java b/src/danielcortes/xyz/models/ingreso/IngresoDAO.java index 9a1c066..826ac93 100644 --- a/src/danielcortes/xyz/models/ingreso/IngresoDAO.java +++ b/src/danielcortes/xyz/models/ingreso/IngresoDAO.java @@ -67,6 +67,8 @@ public abstract class IngresoDAO { 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); diff --git a/src/danielcortes/xyz/models/ingreso/SQLiteIngresoDAO.java b/src/danielcortes/xyz/models/ingreso/SQLiteIngresoDAO.java index 0148206..9884afd 100644 --- a/src/danielcortes/xyz/models/ingreso/SQLiteIngresoDAO.java +++ b/src/danielcortes/xyz/models/ingreso/SQLiteIngresoDAO.java @@ -129,12 +129,14 @@ public class SQLiteIngresoDAO extends IngresoDAO { int updates; try { Connection conn = connectionHolder.getConnection(); - PreparedStatement ps = conn.prepareStatement("insert into ingresos (valor, nro_inicial, nro_final, tipo_ingreso_id, caja_id) values (?,?,?,?,?)"); + PreparedStatement ps = conn.prepareStatement("insert into ingresos (valor, nro_z_inicial, nro_z_final, nro_inicial, nro_final, tipo_ingreso_id, caja_id) values (?,?,?,?,?,?,?)"); ps.setInt(1, ingreso.getValor()); - ps.setString(2, ingreso.getNroInicial()); - ps.setString(3, ingreso.getNroFinal()); - ps.setInt(4, ingreso.getTipoIngreso().getId()); - ps.setInt(5, ingreso.getCaja().getId()); + 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(); ps.close(); @@ -158,13 +160,15 @@ public class SQLiteIngresoDAO extends IngresoDAO { int updates; try { Connection conn = connectionHolder.getConnection(); - PreparedStatement ps = conn.prepareStatement("update ingresos set valor = ? , nro_inicial = ?, nro_final = ?, tipo_ingreso_id = ?, caja_id = ? where id = ?"); + PreparedStatement ps = conn.prepareStatement("update ingresos set valor = ?, nro_z_inicial = ?, nro_z_final = ?, nro_inicial = ?, nro_final = ?, tipo_ingreso_id = ?, caja_id = ? where id = ?"); ps.setInt(1,ingreso.getValor()); - ps.setString(2, ingreso.getNroInicial()); - ps.setString(3, ingreso.getNroFinal()); - ps.setInt(4, ingreso.getTipoIngreso().getId()); - ps.setInt(5, ingreso.getCaja().getId()); - ps.setInt(6, ingreso.getId()); + 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(); diff --git a/src/danielcortes/xyz/views/IngresosView.form b/src/danielcortes/xyz/views/IngresosView.form index 70cea4f..0b83138 100644 --- a/src/danielcortes/xyz/views/IngresosView.form +++ b/src/danielcortes/xyz/views/IngresosView.form @@ -3,7 +3,7 @@ - + @@ -29,17 +29,19 @@ - + - + + + - + @@ -47,7 +49,7 @@ - + @@ -73,7 +75,7 @@ - + @@ -81,7 +83,7 @@ - + @@ -89,7 +91,7 @@ - + @@ -97,7 +99,7 @@ - + @@ -105,7 +107,7 @@ - + @@ -125,7 +127,7 @@ - + @@ -134,6 +136,58 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/danielcortes/xyz/views/IngresosView.java b/src/danielcortes/xyz/views/IngresosView.java index 4ff1a33..125e8aa 100644 --- a/src/danielcortes/xyz/views/IngresosView.java +++ b/src/danielcortes/xyz/views/IngresosView.java @@ -28,7 +28,6 @@ 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.views.components.EgresosTableModel; import danielcortes.xyz.views.components.IngresosTableModel; import javax.swing.*; @@ -50,6 +49,10 @@ public class IngresosView { private JTextField nroFinalField; private JLabel errorNroInicial; private JLabel errorNroFinal; + private JTextField nroZInicialField; + private JTextField nroZFinalField; + private JLabel errorNroZFinal; + private JLabel errorNroZInicial; private IngresosTableModel ingresosTableModel; @@ -126,6 +129,21 @@ public class IngresosView { 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 @@ -153,35 +171,35 @@ public class IngresosView { 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, 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)); + 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, 3, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_NONE, GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false)); + 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)); tipoCombo = new JComboBox(); final DefaultComboBoxModel defaultComboBoxModel1 = new DefaultComboBoxModel(); tipoCombo.setModel(defaultComboBoxModel1); - panel2.add(tipoCombo, 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)); + 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 JTextField(); 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, 1, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_NONE, GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false)); + label3.setText("N° Boleta 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, 2, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_NONE, GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false)); + label4.setText("N° Boleta 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, 1, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_WANT_GROW, GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(150, -1), null, 0, false)); + 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, 2, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_WANT_GROW, GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(150, -1), null, 0, false)); + 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, 3, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_NONE, GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, 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)); errorValor = new JLabel(); errorValor.setForeground(new Color(-65536)); errorValor.setText("Label"); @@ -191,21 +209,41 @@ public class IngresosView { errorNroInicial.setForeground(new Color(-65536)); errorNroInicial.setText("Label"); errorNroInicial.setVisible(false); - panel2.add(errorNroInicial, new GridConstraints(2, 1, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_NONE, GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, 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, 2, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_NONE, GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, 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 label5 = new JLabel(); - label5.setText("Total Ingresos"); - panel4.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)); + 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.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)); @@ -233,4 +271,5 @@ public class IngresosView { public JComponent $$$getRootComponent$$$() { return contentPanel; } + } diff --git a/src/danielcortes/xyz/views/components/IngresosTableModel.java b/src/danielcortes/xyz/views/components/IngresosTableModel.java index 2b4c986..a1d8a35 100644 --- a/src/danielcortes/xyz/views/components/IngresosTableModel.java +++ b/src/danielcortes/xyz/views/components/IngresosTableModel.java @@ -35,7 +35,7 @@ public class IngresosTableModel extends AbstractTableModel { public IngresosTableModel() { super(); - this.columns = new String[]{"Valor", "N° Inicial", "N° Final", "Tipo"}; + this.columns = new String[]{"Valor","N° Z Inicial", "N° Z Final", "N° Inicial", "N° Final", "Tipo"}; this.rows = new ArrayList<>(); } @@ -78,10 +78,14 @@ public class IngresosTableModel extends AbstractTableModel { case 0: return this.rows.get(row).getValor(); case 1: - return this.rows.get(row).getNroInicial(); + return this.rows.get(row).getNroZInicial(); case 2: - return this.rows.get(row).getNroFinal(); + 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; @@ -96,11 +100,4 @@ public class IngresosTableModel extends AbstractTableModel { this.fireTableRowsUpdated(getRowCount() - 2, getRowCount() - 1); } - @Override - public Class getColumnClass(int columnIndex) { - if (rows.isEmpty()) { - return Object.class; - } - return getValueAt(0, columnIndex).getClass(); - } }