Creo que esta funciona jajaja, inclusion de cajas en Egresos

This commit is contained in:
Daniel Cortes
2018-12-27 17:55:34 -03:00
parent ca6970a1ba
commit d8ae0e1222
8 changed files with 128 additions and 53 deletions

View File

@@ -24,6 +24,7 @@
package danielcortes.xyz.controllers; package danielcortes.xyz.controllers;
import danielcortes.xyz.models.caja.Caja;
import danielcortes.xyz.models.egreso.Egreso; import danielcortes.xyz.models.egreso.Egreso;
import danielcortes.xyz.models.egreso.EgresoDAO; import danielcortes.xyz.models.egreso.EgresoDAO;
import danielcortes.xyz.models.tipo_egreso.TipoEgreso; import danielcortes.xyz.models.tipo_egreso.TipoEgreso;
@@ -41,6 +42,7 @@ public class EgresosController {
private EgresosView view; private EgresosView view;
private EgresoDAO egresoDAO; private EgresoDAO egresoDAO;
private TipoEgresoDAO tipoEgresoDAO; private TipoEgresoDAO tipoEgresoDAO;
private Caja caja;
private int editingId; private int editingId;
private boolean editing; private boolean editing;
@@ -50,11 +52,9 @@ public class EgresosController {
this.view = view; this.view = view;
this.egresoDAO = egresoDAO; this.egresoDAO = egresoDAO;
this.tipoEgresoDAO = tipoEgresoDAO; this.tipoEgresoDAO = tipoEgresoDAO;
// this.setUpViewEvents(); this.setUpViewEvents();
// this.fillEgresosTable(); this.fillTipoEgresoCombo();
// this.fillTipoEgresoCombo(); this.updateButtonsEnabled();
// this.updateTotalEgresos();
// this.updateButtonsEnabled();
} }
public EgresoDAO getEgresoDAO() { public EgresoDAO getEgresoDAO() {
@@ -65,6 +65,12 @@ public class EgresosController {
return tipoEgresoDAO; return tipoEgresoDAO;
} }
public void updateCaja(Caja caja){
this.caja = caja;
this.fillEgresosTable();
this.updateTotalEgresos();
}
private void fillTipoEgresoCombo() { private void fillTipoEgresoCombo() {
JComboBox<TipoEgreso> tipoCombo = view.getTipoCombo(); JComboBox<TipoEgreso> tipoCombo = view.getTipoCombo();
for (TipoEgreso tipoEgreso : this.tipoEgresoDAO.findAll()) { for (TipoEgreso tipoEgreso : this.tipoEgresoDAO.findAll()) {
@@ -74,7 +80,8 @@ public class EgresosController {
private void fillEgresosTable() { private void fillEgresosTable() {
EgresosTableModel egresosTableModel = view.getEgresosTableModel(); EgresosTableModel egresosTableModel = view.getEgresosTableModel();
for (Egreso egreso : this.egresoDAO.findAll()) { egresosTableModel.removeRows();
for (Egreso egreso : this.egresoDAO.findByCaja(this.caja)) {
egresosTableModel.addRow(egreso); egresosTableModel.addRow(egreso);
} }
} }
@@ -111,9 +118,9 @@ public class EgresosController {
String valor = this.view.getValorField().getText(); String valor = this.view.getValorField().getText();
TipoEgreso tipo = (TipoEgreso) this.view.getTipoCombo().getSelectedItem(); TipoEgreso tipo = (TipoEgreso) this.view.getTipoCombo().getSelectedItem();
if(editing){ if(editing){
this.editarEgreso(nro, descripcion, valor, tipo); this.editarEgreso(nro, descripcion, valor, tipo, this.caja);
}else { }else {
this.guardarEgreso(nro, descripcion, valor, tipo); this.guardarEgreso(nro, descripcion, valor, tipo, this.caja);
} }
this.resetFocus(); this.resetFocus();
} }
@@ -151,7 +158,7 @@ public class EgresosController {
} }
private void updateTotalEgresos() { private void updateTotalEgresos() {
int total = this.egresoDAO.getTotalEgreso(); int total = this.egresoDAO.getTotalEgreso(this.caja);
this.view.getTotalEgresosField().setText(String.valueOf(total)); this.view.getTotalEgresosField().setText(String.valueOf(total));
} }
@@ -165,13 +172,14 @@ public class EgresosController {
} }
} }
private void guardarEgreso(String nro, String descripcion, String valor, TipoEgreso tipo) { private void guardarEgreso(String nro, String descripcion, String valor, TipoEgreso tipo, Caja caja) {
if (this.validateInput(nro, descripcion, valor, tipo)) { if (this.validateInput(nro, descripcion, valor, tipo, caja)) {
Egreso egreso = new Egreso(); Egreso egreso = new Egreso();
egreso.setValor(Integer.valueOf(valor)); egreso.setValor(Integer.valueOf(valor));
egreso.setDescripcion(descripcion); egreso.setDescripcion(descripcion);
egreso.setNro(nro); egreso.setNro(nro);
egreso.setTipo(tipo); egreso.setTipoEgreso(tipo);
egreso.setCaja(caja);
egresoDAO.insertEgreso(egreso); egresoDAO.insertEgreso(egreso);
this.view.getEgresosTableModel().addRow(egreso); this.view.getEgresosTableModel().addRow(egreso);
this.updateTotalEgresos(); this.updateTotalEgresos();
@@ -179,12 +187,12 @@ public class EgresosController {
} }
} }
private void editarEgreso(String nro, String descripcion, String valor, TipoEgreso tipo) { private void editarEgreso(String nro, String descripcion, String valor, TipoEgreso tipo, Caja caja) {
if (this.validateInput(nro, descripcion, valor, tipo)) { if (this.validateInput(nro, descripcion, valor, tipo, caja)) {
this.editingEgreso.setValor(Integer.valueOf(valor)); this.editingEgreso.setValor(Integer.valueOf(valor));
this.editingEgreso.setDescripcion(descripcion); this.editingEgreso.setDescripcion(descripcion);
this.editingEgreso.setNro(nro); this.editingEgreso.setNro(nro);
this.editingEgreso.setTipo(tipo); this.editingEgreso.setTipoEgreso(tipo);
egresoDAO.updateEgreso(this.editingEgreso); egresoDAO.updateEgreso(this.editingEgreso);
this.view.getEgresosTableModel().setEgreso(this.editingId, this.editingEgreso); this.view.getEgresosTableModel().setEgreso(this.editingId, this.editingEgreso);
this.updateTotalEgresos(); this.updateTotalEgresos();
@@ -193,13 +201,14 @@ public class EgresosController {
} }
} }
private boolean validateInput(String nro, String descripcion, String valor, TipoEgreso tipoEgreso) { private boolean validateInput(String nro, String descripcion, String valor, TipoEgreso tipoEgreso, Caja caja) {
this.hideErrorMessages(); this.hideErrorMessages();
boolean nroValidation = this.validateNro(nro); boolean nroValidation = this.validateNro(nro);
boolean descripcionValidation = this.validateDescripcion(descripcion); boolean descripcionValidation = this.validateDescripcion(descripcion);
boolean valorValidation = this.validateValor(valor); boolean valorValidation = this.validateValor(valor);
boolean tipoEgresoValidation = this.validateTipoEgreso(tipoEgreso); boolean tipoEgresoValidation = this.validateTipoEgreso(tipoEgreso);
boolean cajaValidation = this.validateCaja(caja);
return nroValidation && descripcionValidation && valorValidation && tipoEgresoValidation; return nroValidation && descripcionValidation && valorValidation && tipoEgresoValidation;
} }
@@ -276,6 +285,10 @@ public class EgresosController {
return true; return true;
} }
private boolean validateCaja(Caja caja){
return caja != null;
}
private void hideErrorMessages() { private void hideErrorMessages() {
this.view.getErrorTipoEgreso().setVisible(false); this.view.getErrorTipoEgreso().setVisible(false);
this.view.getErrorValor().setVisible(false); this.view.getErrorValor().setVisible(false);

View File

@@ -85,7 +85,7 @@ public class ManagerController {
this.cajaDAO.insertCaja(caja); this.cajaDAO.insertCaja(caja);
} }
this.ingresosController.updateCaja(caja); this.ingresosController.updateCaja(caja);
// this.egresosController.updateCaja(caja); this.egresosController.updateCaja(caja);
// this.arqueoController.updateCaja(caja); // this.arqueoController.updateCaja(caja);
}); });

View File

@@ -24,6 +24,7 @@
package danielcortes.xyz.models.egreso; package danielcortes.xyz.models.egreso;
import danielcortes.xyz.models.caja.Caja;
import danielcortes.xyz.models.tipo_egreso.TipoEgreso; import danielcortes.xyz.models.tipo_egreso.TipoEgreso;
public class Egreso { public class Egreso {
@@ -32,24 +33,8 @@ public class Egreso {
private String nro; private String nro;
private String descripcion; private String descripcion;
private int valor; private int valor;
private TipoEgreso tipo; private TipoEgreso tipoEgreso;
private Caja caja;
public Egreso(int id, String nro, String descripcion, int valor, TipoEgreso tipo) {
this.id = id;
this.nro = nro;
this.descripcion = descripcion;
this.valor = valor;
this.tipo = tipo;
}
public Egreso(String nro, String descripcion, int valor, TipoEgreso tipo) {
this.nro = nro;
this.descripcion = descripcion;
this.valor = valor;
this.tipo = tipo;
}
public Egreso(){}
public int getId() { public int getId() {
return id; return id;
@@ -84,10 +69,18 @@ public class Egreso {
} }
public TipoEgreso getTipoEgreso() { public TipoEgreso getTipoEgreso() {
return tipo; return tipoEgreso;
} }
public void setTipo(TipoEgreso tipo) { public void setTipoEgreso(TipoEgreso tipoEgreso) {
this.tipo = tipo; this.tipoEgreso = tipoEgreso;
}
public Caja getCaja() {
return caja;
}
public void setCaja(Caja caja) {
this.caja = caja;
} }
} }

View File

@@ -24,17 +24,23 @@
package danielcortes.xyz.models.egreso; package danielcortes.xyz.models.egreso;
import danielcortes.xyz.models.caja.Caja;
import danielcortes.xyz.models.egreso.Egreso; import danielcortes.xyz.models.egreso.Egreso;
import danielcortes.xyz.models.tipo_egreso.TipoEgreso;
import java.util.List; import java.util.List;
public interface EgresoDAO { public interface EgresoDAO {
List<Egreso> findAll(); List<Egreso> findAll();
List<Egreso> findById(int id); List<Egreso> findById(int id);
List<Egreso> findByCaja(Caja caja);
List<Egreso> findByNro(String nro); List<Egreso> findByNro(String nro);
List<Egreso> findByTipoEgreso(TipoEgreso tipoEgreso);
boolean insertEgreso(Egreso egreso); boolean insertEgreso(Egreso egreso);
boolean updateEgreso(Egreso egreso); boolean updateEgreso(Egreso egreso);
boolean deleteEgreso(Egreso egreso); boolean deleteEgreso(Egreso egreso);
int getTotalEgreso();
int getTotalEgreso(Caja caja);
} }

View File

@@ -25,6 +25,9 @@
package danielcortes.xyz.models.egreso; package danielcortes.xyz.models.egreso;
import danielcortes.xyz.data.MysqlConnection; import danielcortes.xyz.data.MysqlConnection;
import danielcortes.xyz.models.caja.Caja;
import danielcortes.xyz.models.caja.CajaDAO;
import danielcortes.xyz.models.caja.MysqlCajaDAO;
import danielcortes.xyz.models.tipo_egreso.TipoEgreso; import danielcortes.xyz.models.tipo_egreso.TipoEgreso;
import danielcortes.xyz.models.tipo_egreso.TipoEgresoDAO; import danielcortes.xyz.models.tipo_egreso.TipoEgresoDAO;
import danielcortes.xyz.models.tipo_egreso.MysqlTipoEgresoDAO; import danielcortes.xyz.models.tipo_egreso.MysqlTipoEgresoDAO;
@@ -62,6 +65,26 @@ public class MysqlEgresoDAO implements EgresoDAO {
return egresoList; return egresoList;
} }
@Override
public List<Egreso> findByCaja(Caja caja) {
List<Egreso> egresoList = new ArrayList<>();
try {
Connection conn = mysqlConnection.getConnection();
PreparedStatement ps = conn.prepareStatement("select * from egresos where caja_id = ?");
ps.setInt(1, caja.getId());
ResultSet rs = ps.executeQuery();
egresoList = this.egresosFromResultSet(rs);
rs.close();
ps.close();
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
return egresoList;
}
@Override @Override
public List<Egreso> findById(int id) { public List<Egreso> findById(int id) {
List<Egreso> egresoList = new ArrayList<>(); List<Egreso> egresoList = new ArrayList<>();
@@ -102,16 +125,38 @@ public class MysqlEgresoDAO implements EgresoDAO {
return egresoList; return egresoList;
} }
@Override
public List<Egreso> findByTipoEgreso(TipoEgreso tipoEgreso) {
List<Egreso> egresoList = new ArrayList<>();
try {
Connection conn = mysqlConnection.getConnection();
PreparedStatement ps = conn.prepareStatement("select * from egresos where tipo_egreso_id = ?");
ps.setInt(1, tipoEgreso.getId());
ResultSet rs = ps.executeQuery();
egresoList = this.egresosFromResultSet(rs);
rs.close();
ps.close();
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
return egresoList;
}
@Override @Override
public boolean insertEgreso(Egreso egreso) { public boolean insertEgreso(Egreso egreso) {
int updates; int updates;
try { try {
Connection conn = mysqlConnection.getConnection(); Connection conn = mysqlConnection.getConnection();
PreparedStatement ps = conn.prepareStatement("insert into egresos (nro, descripcion, valor, tipo_egreso_id) values (?,?,?,?)"); PreparedStatement ps = conn.prepareStatement("insert into egresos (nro, descripcion, valor, tipo_egreso_id, caja_id) values (?,?,?,?,?)");
ps.setString(1,egreso.getNro()); ps.setString(1,egreso.getNro());
ps.setString(2,egreso.getDescripcion()); ps.setString(2,egreso.getDescripcion());
ps.setInt(3,egreso.getValor()); ps.setInt(3,egreso.getValor());
ps.setInt(4,egreso.getTipoEgreso().getId()); ps.setInt(4,egreso.getTipoEgreso().getId());
ps.setInt(5, egreso.getCaja().getId());
updates = ps.executeUpdate(); updates = ps.executeUpdate();
ps.close(); ps.close();
@@ -134,12 +179,13 @@ public class MysqlEgresoDAO implements EgresoDAO {
int updates; int updates;
try { try {
Connection conn = mysqlConnection.getConnection(); Connection conn = mysqlConnection.getConnection();
PreparedStatement ps = conn.prepareStatement("update egresos set nro = ?, descripcion = ?, valor = ?, tipo_egreso_id = ? where id = ? "); PreparedStatement ps = conn.prepareStatement("update egresos set nro = ?, descripcion = ?, valor = ?, tipo_egreso_id = ?, caja_id = ? where id = ? ");
ps.setString(1,egreso.getNro()); ps.setString(1,egreso.getNro());
ps.setString(2,egreso.getDescripcion()); ps.setString(2,egreso.getDescripcion());
ps.setInt(3,egreso.getValor()); ps.setInt(3,egreso.getValor());
ps.setInt(4,egreso.getTipoEgreso().getId()); ps.setInt(4,egreso.getTipoEgreso().getId());
ps.setInt(5, egreso.getId()); ps.setInt(5, egreso.getCaja().getId());
ps.setInt(6, egreso.getId());
updates = ps.executeUpdate(); updates = ps.executeUpdate();
@@ -172,11 +218,12 @@ public class MysqlEgresoDAO implements EgresoDAO {
} }
@Override @Override
public int getTotalEgreso() { public int getTotalEgreso(Caja caja) {
int total = 0; int total = 0;
try { try {
Connection conn = mysqlConnection.getConnection(); Connection conn = mysqlConnection.getConnection();
PreparedStatement ps = conn.prepareStatement("select sum(valor) from egresos"); PreparedStatement ps = conn.prepareStatement("select sum(valor) from egresos where caja_id = ?");
ps.setInt(1, caja.getId());
ResultSet rs = ps.executeQuery(); ResultSet rs = ps.executeQuery();
rs.next(); rs.next();
@@ -198,13 +245,18 @@ public class MysqlEgresoDAO implements EgresoDAO {
TipoEgresoDAO tipoEgresoDAO = new MysqlTipoEgresoDAO(); TipoEgresoDAO tipoEgresoDAO = new MysqlTipoEgresoDAO();
TipoEgreso tipoEgreso = tipoEgresoDAO.findById(tipoEgresoId).get(0); TipoEgreso tipoEgreso = tipoEgresoDAO.findById(tipoEgresoId).get(0);
int cajaId = rs.getInt("caja_id");
CajaDAO cajaDAO = new MysqlCajaDAO();
Caja caja = cajaDAO.findById(cajaId);
Egreso egreso = new Egreso(); Egreso egreso = new Egreso();
egreso.setId(rs.getInt("id")); egreso.setId(rs.getInt("id"));
egreso.setNro(rs.getString("nro")); egreso.setNro(rs.getString("nro"));
egreso.setDescripcion(rs.getString("descripcion")); egreso.setDescripcion(rs.getString("descripcion"));
egreso.setValor(rs.getInt("valor")); egreso.setValor(rs.getInt("valor"));
egreso.setTipo(tipoEgreso); egreso.setTipoEgreso(tipoEgreso);
egreso.setCaja(caja);
egresoList.add(egreso); egresoList.add(egreso);
} }

View File

@@ -143,6 +143,7 @@ public class MysqlIngresoDAO implements IngresoDAO{
rs.next(); rs.next();
ingreso.setId(rs.getInt(1)); ingreso.setId(rs.getInt(1));
rs.close();
conn.close(); conn.close();
} catch (SQLException e) { } catch (SQLException e) {
e.printStackTrace(); e.printStackTrace();
@@ -161,7 +162,9 @@ public class MysqlIngresoDAO implements IngresoDAO{
ps.setInt(2, ingreso.getTipoIngreso().getId()); ps.setInt(2, ingreso.getTipoIngreso().getId());
ps.setInt(3, ingreso.getCaja().getId()); ps.setInt(3, ingreso.getCaja().getId());
ps.setInt(4, ingreso.getId()); ps.setInt(4, ingreso.getId());
updates = ps.executeUpdate(); updates = ps.executeUpdate();
ps.close(); ps.close();
conn.close(); conn.close();
} catch (SQLException e) { } catch (SQLException e) {

View File

@@ -53,12 +53,26 @@ public class EgresosTableModel extends AbstractTableModel {
public void addRow(Egreso egreso) { public void addRow(Egreso egreso) {
rows.add(egreso); rows.add(egreso);
this.fireTableRowsInserted(0,getRowCount()-1); this.fireTableRowsInserted(getRowCount()-1, getRowCount()-1);
} }
public void removeRow(int row){ public void removeRow(int row){
this.rows.remove(row); this.rows.remove(row);
this.fireTableRowsDeleted(0,getRowCount()-1); this.fireTableRowsDeleted(row,row);
}
public void removeRows(){
int rowCount = getRowCount();
if(rowCount > 0){
this.rows.clear();
this.fireTableRowsDeleted(0, rowCount-1);
}
}
public void setEgreso(int editingId, Egreso egreso) {
this.rows.set(editingId, egreso);
this.fireTableRowsUpdated(0,getRowCount()-1);
} }
public Object getValueAt(int row, int col) { public Object getValueAt(int row, int col) {
@@ -79,8 +93,4 @@ public class EgresosTableModel extends AbstractTableModel {
return rows.get(row); return rows.get(row);
} }
public void setEgreso(int editingId, Egreso egreso) {
this.rows.set(editingId, egreso);
this.fireTableRowsUpdated(0,getRowCount()-1);
}
} }

View File

@@ -65,12 +65,10 @@ public class IngresosTableModel extends AbstractTableModel {
int rowCount = getRowCount(); int rowCount = getRowCount();
if(rowCount > 0){ if(rowCount > 0){
this.rows.clear(); this.rows.clear();
System.out.println("deleted from " + 0 + " to " + rowCount);
this.fireTableRowsDeleted(0, rowCount-1); this.fireTableRowsDeleted(0, rowCount-1);
} }
} }
public Object getValueAt(int row, int col) { public Object getValueAt(int row, int col) {
switch (col) { switch (col) {
case 0: case 0: