Se limpio el modelo de EfectivoDAO

Se llevaron a cabo los mismos pasos que en los previos;
This commit is contained in:
Daniel Cortes
2019-03-07 14:56:39 -03:00
parent c2529756f2
commit f5bbb7e0e8
6 changed files with 182 additions and 204 deletions

BIN
dist/Programa Caja.jar vendored

Binary file not shown.

View File

@@ -75,7 +75,7 @@ public class ArqueoController extends BaseController {
* Rellena los campos del efectivo con la instancia de efectivo que pertenece a la caja * Rellena los campos del efectivo con la instancia de efectivo que pertenece a la caja
*/ */
private void fillEfectivo() { private void fillEfectivo() {
this.efectivo = DAOManager.getEfectivoDAO().findByCaja(this.caja); this.efectivo = DAOManager.getEfectivoDAO().findByCaja(this.caja).orElse(Efectivo.EMPTY);
this.view.getVeinteMilField().setValue(efectivo.getVeinteMil()); this.view.getVeinteMilField().setValue(efectivo.getVeinteMil());
this.view.getDiezMilField().setValue(efectivo.getDiezMil()); this.view.getDiezMilField().setValue(efectivo.getDiezMil());
this.view.getCincoMilField().setValue(efectivo.getCincoMil()); this.view.getCincoMilField().setValue(efectivo.getCincoMil());

View File

@@ -27,7 +27,13 @@ package danielcortes.xyz.models.documentos;
import danielcortes.xyz.models.caja.Caja; import danielcortes.xyz.models.caja.Caja;
public class Documentos { public class Documentos {
public final static Documentos EMPTY = new Documentos(); public final static Documentos EMPTY;
static{
EMPTY = new Documentos();
EMPTY.setCaja(Caja.EMPTY);
}
private int id; private int id;
private int cheques; private int cheques;
private int tarjetas; private int tarjetas;

View File

@@ -27,6 +27,12 @@ package danielcortes.xyz.models.efectivo;
import danielcortes.xyz.models.caja.Caja; import danielcortes.xyz.models.caja.Caja;
public class Efectivo { public class Efectivo {
public final static Efectivo EMPTY;
static {
EMPTY = new Efectivo();
EMPTY.setCaja(Caja.EMPTY);
}
private int id; private int id;
private int veinteMil; private int veinteMil;

View File

@@ -24,62 +24,25 @@
package danielcortes.xyz.models.efectivo; package danielcortes.xyz.models.efectivo;
import danielcortes.xyz.data.ConnectionHolder;
import danielcortes.xyz.models.caja.Caja; 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;
import java.util.List; import java.util.List;
import java.util.logging.Level; import java.util.Optional;
import java.util.logging.Logger;
public abstract class EfectivoDAO { public interface EfectivoDAO {
private static final Logger LOGGER = Logger.getLogger(EfectivoDAO.class.getName()); List<Efectivo> findAll();
protected ConnectionHolder connectionHolder; Optional<Efectivo> findById(int id);
public abstract List<Efectivo> findAll(); Optional<Efectivo> findByCaja(Caja caja);
public abstract Efectivo findById(int id); void insertEfectivo(Efectivo efectivo);
public abstract Efectivo findByCaja(Caja caja); void insertDefaultEfectivo(Efectivo efectivo);
public abstract boolean insertEfectivo(Efectivo efectivo); void updateEfectivo(Efectivo efectivo);
public abstract boolean insertDefaultEfectivo(Efectivo efectivo); void deleteEfectivo(Efectivo efectivo);
public abstract boolean updateEfectivo(Efectivo efectivo); int getTotalEfectivo(Caja caja);
public abstract boolean deleteEfectivo(Efectivo efectivo);
public abstract int getTotalEfectivo(Caja caja);
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();
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"));
LOGGER.log(Level.FINER, "Se a creo: {0}", efectivo);
efectivoList.add(efectivo);
}
return efectivoList;
}
} }

View File

@@ -24,20 +24,25 @@
package danielcortes.xyz.models.efectivo; package danielcortes.xyz.models.efectivo;
import danielcortes.xyz.data.ConnectionHolder;
import danielcortes.xyz.data.DAOManager;
import danielcortes.xyz.data.SQLiteConnectionHolder; import danielcortes.xyz.data.SQLiteConnectionHolder;
import danielcortes.xyz.models.caja.Caja; import danielcortes.xyz.models.caja.Caja;
import danielcortes.xyz.models.caja.CajaDAO;
import java.sql.Connection; import java.sql.Connection;
import java.sql.PreparedStatement; import java.sql.PreparedStatement;
import java.sql.ResultSet; import java.sql.ResultSet;
import java.sql.SQLException; import java.sql.SQLException;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Optional;
import java.util.logging.Level; import java.util.logging.Level;
import java.util.logging.Logger; import java.util.logging.Logger;
public class SQLiteEfectivoDAO extends EfectivoDAO { public class SQLiteEfectivoDAO implements EfectivoDAO {
private static final Logger LOGGER = Logger.getLogger(SQLiteEfectivoDAO.class.getName()); private static final Logger LOGGER = Logger.getLogger(SQLiteEfectivoDAO.class.getName());
private ConnectionHolder connectionHolder;
public SQLiteEfectivoDAO() { public SQLiteEfectivoDAO() {
this.connectionHolder = new SQLiteConnectionHolder(); this.connectionHolder = new SQLiteConnectionHolder();
@@ -46,17 +51,33 @@ public class SQLiteEfectivoDAO extends EfectivoDAO {
@Override @Override
public List<Efectivo> findAll() { public List<Efectivo> findAll() {
List<Efectivo> efectivoList = new ArrayList<>(); List<Efectivo> efectivoList = new ArrayList<>();
String query = "select * from efectivos";
try (Connection conn = connectionHolder.getConnection()) { try (Connection conn = connectionHolder.getConnection()) {
String query = "select * from efectivos"; try (PreparedStatement ps = conn.prepareStatement(query)) {
PreparedStatement ps = conn.prepareStatement(query); try (ResultSet rs = ps.executeQuery()) {
ResultSet rs = ps.executeQuery(); CajaDAO cajaDAO = DAOManager.getCajaDAO();
while (rs.next()) {
//Confio en que la base de datos me entregara un id existente.
@SuppressWarnings("OptionalGetWithoutIsPresent")
Caja caja = cajaDAO.getById(rs.getInt("caja_id")).get();
LOGGER.log(Level.FINE, "QUERY: {0}", query); 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 = this.efectivosFromResultSet(rs); efectivoList.add(efectivo);
}
rs.close(); }
ps.close(); }
} catch (SQLException e) { } catch (SQLException e) {
LOGGER.log(Level.SEVERE, e.toString(), e); LOGGER.log(Level.SEVERE, e.toString(), e);
} }
@@ -65,195 +86,177 @@ public class SQLiteEfectivoDAO extends EfectivoDAO {
} }
@Override @Override
public Efectivo findById(int id) { public Optional<Efectivo> findById(int id) {
Efectivo efectivo = null; Efectivo efectivo = null;
String query = "select * from efectivos where id = ?";
try (Connection conn = connectionHolder.getConnection()) { try (Connection conn = connectionHolder.getConnection()) {
String query = "select * from efectivos where id = ?"; try (PreparedStatement ps = conn.prepareStatement(query)) {
PreparedStatement ps = conn.prepareStatement(query); ps.setInt(1, id);
ps.setInt(1, id); try (ResultSet rs = ps.executeQuery()) {
ResultSet rs = ps.executeQuery(); CajaDAO cajaDAO = DAOManager.getCajaDAO();
if (rs.next()) {
//Confio en que la base de datos me entregara un id existente.
@SuppressWarnings("OptionalGetWithoutIsPresent")
Caja caja = cajaDAO.getById(rs.getInt("caja_id")).get();
LOGGER.log(Level.FINE, "QUERY: {0} | values: {1}", new Object[]{query, id}); efectivo = new Efectivo();
efectivo.setCaja(caja);
efectivo = this.efectivosFromResultSet(rs).get(0); efectivo.setId(rs.getInt("id"));
efectivo.setVeinteMil(rs.getInt("veinte_mil"));
rs.close(); efectivo.setDiezMil(rs.getInt("diez_mil"));
ps.close(); efectivo.setCincoMil(rs.getInt("cinco_mil"));
} catch (SQLException e) { efectivo.setDosMil(rs.getInt("dos_mil"));
LOGGER.log(Level.SEVERE, e.toString(), e); efectivo.setMil(rs.getInt("mil"));
} efectivo.setQuinientos(rs.getInt("quinientos"));
efectivo.setCien(rs.getInt("cien"));
return efectivo; efectivo.setCincuenta(rs.getInt("cincuenta"));
} efectivo.setDiez(rs.getInt("diez"));
}
@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();
LOGGER.log(Level.FINE, "QUERY: {0} | values: {1}", new Object[]{query, caja.getId()});
List<Efectivo> efectivoList = this.efectivosFromResultSet(rs);
if (efectivoList.size() > 0) {
efectivo = efectivoList.get(0);
} }
rs.close();
ps.close();
} catch (SQLException e) { } catch (SQLException e) {
LOGGER.log(Level.SEVERE, e.toString(), e); LOGGER.log(Level.SEVERE, e.toString(), e);
} }
return efectivo; return Optional.ofNullable(efectivo);
} }
@Override @Override
public boolean insertEfectivo(Efectivo efectivo) { public Optional<Efectivo> findByCaja(Caja caja) {
int updates; Efectivo efectivo = null;
if (Caja.EMPTY == caja) {
return Optional.ofNullable(efectivo);
}
String query = "select * from efectivos where caja_id = ?";
try (Connection conn = connectionHolder.getConnection()) { 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 (?,?,?,?,?,?,?,?,?,?)"; try (PreparedStatement ps = conn.prepareStatement(query)) {
PreparedStatement ps = conn.prepareStatement(query); ps.setInt(1, caja.getId());
ps.setInt(1, efectivo.getVeinteMil()); try (ResultSet rs = ps.executeQuery()) {
ps.setInt(2, efectivo.getDiezMil()); if (rs.next()) {
ps.setInt(3, efectivo.getCincoMil()); efectivo = new Efectivo();
ps.setInt(4, efectivo.getDosMil()); efectivo.setCaja(caja);
ps.setInt(5, efectivo.getMil()); efectivo.setId(rs.getInt("id"));
ps.setInt(6, efectivo.getQuinientos()); efectivo.setVeinteMil(rs.getInt("veinte_mil"));
ps.setInt(7, efectivo.getCien()); efectivo.setDiezMil(rs.getInt("diez_mil"));
ps.setInt(8, efectivo.getCincuenta()); efectivo.setCincoMil(rs.getInt("cinco_mil"));
ps.setInt(9, efectivo.getDiez()); efectivo.setDosMil(rs.getInt("dos_mil"));
ps.setInt(10, efectivo.getCaja().getId()); efectivo.setMil(rs.getInt("mil"));
updates = ps.executeUpdate(); efectivo.setQuinientos(rs.getInt("quinientos"));
efectivo.setCien(rs.getInt("cien"));
LOGGER.log(Level.FINE, efectivo.setCincuenta(rs.getInt("cincuenta"));
"QUERY: {0} | values: [{1},{2},{3},{4},{5},{6},{7},{8},{9},{10}] | updates: {11}", efectivo.setDiez(rs.getInt("diez"));
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});
ps.close();
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) { } catch (SQLException e) {
LOGGER.log(Level.SEVERE, e.toString(), e); LOGGER.log(Level.SEVERE, e.toString(), e);
return false;
} }
return updates > 0;
return Optional.ofNullable(efectivo);
} }
@Override @Override
public boolean insertDefaultEfectivo(Efectivo efectivo) { public void insertEfectivo(Efectivo efectivo) {
int updates; String query = "insert into efectivos (veinte_mil, diez_mil, cinco_mil, dos_mil, mil, quinientos, cien, cincuenta, diez, caja_id) values (?,?,?,?,?,?,?,?,?,?)";
try (Connection conn = connectionHolder.getConnection()) { 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,?)"; try (PreparedStatement ps = conn.prepareStatement(query)) {
PreparedStatement ps = conn.prepareStatement(query); ps.setInt(1, efectivo.getVeinteMil());
ps.setInt(1, efectivo.getCaja().getId()); ps.setInt(2, efectivo.getDiezMil());
updates = ps.executeUpdate(); ps.setInt(3, efectivo.getCincoMil());
ps.setInt(4, efectivo.getDosMil());
LOGGER.log(Level.FINE, "QUERY: {0} | values: {1} | updates: {2}", ps.setInt(5, efectivo.getMil());
new Object[]{query, efectivo.getCaja().getId(), updates}); ps.setInt(6, efectivo.getQuinientos());
ps.setInt(7, efectivo.getCien());
ps.close(); ps.setInt(8, efectivo.getCincuenta());
ps.setInt(9, efectivo.getDiez());
ps = conn.prepareStatement("select last_insert_rowid()"); ps.setInt(10, efectivo.getCaja().getId());
ResultSet rs = ps.executeQuery(); ps.executeUpdate();
rs.next(); }
efectivo.setId(rs.getInt(1)); try (PreparedStatement ps = conn.prepareStatement("select last_insert_rowid()")) {
try (ResultSet rs = ps.executeQuery()) {
rs.close(); rs.next();
ps.close(); efectivo.setId(rs.getInt(1));
}
}
} catch (SQLException e) { } catch (SQLException e) {
LOGGER.log(Level.SEVERE, e.toString(), e); LOGGER.log(Level.SEVERE, e.toString(), e);
return false;
} }
return updates > 0;
} }
@Override @Override
public boolean updateEfectivo(Efectivo efectivo) { public void insertDefaultEfectivo(Efectivo efectivo) {
int updates; 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,?)";
try (Connection conn = connectionHolder.getConnection()) { 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 = ?"; try (PreparedStatement ps = conn.prepareStatement(query)) {
PreparedStatement ps = conn.prepareStatement(query); ps.setInt(1, efectivo.getCaja().getId());
ps.setInt(1, efectivo.getVeinteMil()); ps.executeUpdate();
ps.setInt(2, efectivo.getDiezMil()); }
ps.setInt(3, efectivo.getCincoMil()); try (PreparedStatement ps = conn.prepareStatement("select last_insert_rowid()")) {
ps.setInt(4, efectivo.getDosMil()); try (ResultSet rs = ps.executeQuery()) {
ps.setInt(5, efectivo.getMil()); rs.next();
ps.setInt(6, efectivo.getQuinientos()); efectivo.setId(rs.getInt(1));
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},{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) { } catch (SQLException e) {
LOGGER.log(Level.SEVERE, e.toString(), e); LOGGER.log(Level.SEVERE, e.toString(), e);
return false;
} }
return updates > 0;
} }
@Override @Override
public boolean deleteEfectivo(Efectivo efectivo) { public void updateEfectivo(Efectivo efectivo) {
int updates; String query = "update efectivos set veinte_mil = ?, diez_mil = ?, cinco_mil = ?, dos_mil = ?, mil = ?, quinientos = ?, cien = ?, cincuenta = ?, diez = ?, caja_id = ? where id = ?";
try (Connection conn = connectionHolder.getConnection()) { try (Connection conn = connectionHolder.getConnection()) {
String query = "delete from efectivos where id = ?"; try (PreparedStatement ps = conn.prepareStatement(query)) {
PreparedStatement ps = conn.prepareStatement(query); ps.setInt(1, efectivo.getVeinteMil());
ps.setInt(1, efectivo.getId()); ps.setInt(2, efectivo.getDiezMil());
updates = ps.executeUpdate(); 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());
LOGGER.log(Level.FINE, "QUERY: {0} | values: {1} | updates: {2}", ps.executeUpdate();
new Object[]{query, efectivo.getId(), updates}); }
} catch (SQLException e) {
ps.close(); LOGGER.log(Level.SEVERE, e.toString(), e);
}
}
@Override
public void deleteEfectivo(Efectivo efectivo) {
String query = "delete from efectivos where id = ?";
try (Connection conn = connectionHolder.getConnection()) {
try (PreparedStatement ps = conn.prepareStatement(query)) {
ps.setInt(1, efectivo.getId());
ps.executeUpdate();
}
} catch (SQLException e) { } catch (SQLException e) {
LOGGER.log(Level.SEVERE, e.toString(), e); LOGGER.log(Level.SEVERE, e.toString(), e);
return false;
} }
return updates > 0;
} }
@Override @Override
public int getTotalEfectivo(Caja caja) { public int getTotalEfectivo(Caja caja) {
int total = 0; int total = 0;
if (Caja.EMPTY == caja) {
return total;
}
String query = "select veinte_mil + diez_mil + cinco_mil + dos_mil + mil + quinientos + cien + cincuenta + diez from efectivos where caja_id = ?";
try (Connection conn = connectionHolder.getConnection()) { 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 = ?"; try (PreparedStatement ps = conn.prepareStatement(query)) {
PreparedStatement ps = conn.prepareStatement(query); ps.setInt(1, caja.getId());
ps.setInt(1, caja.getId()); try (ResultSet rs = ps.executeQuery()) {
if (rs.next()) {
LOGGER.log(Level.FINE, "QUERY: {0} | values: {1}", new Object[]{query, caja.getId()}); total = rs.getInt(1);
}
ResultSet rs = ps.executeQuery(); }
rs.next(); }
total = rs.getInt(1);
rs.close();
ps.close();
} catch (SQLException e) { } catch (SQLException e) {
LOGGER.log(Level.SEVERE, e.toString(), e); LOGGER.log(Level.SEVERE, e.toString(), e);
} }