Terminado de reescribir documentos

Ademas se soluciono un bug en el controlador de arqueo, habia anotado
mal el listener del boton de documentos :c
This commit is contained in:
Daniel Cortes
2019-03-07 03:09:15 -03:00
parent 979dbbe4ab
commit c2529756f2
5 changed files with 132 additions and 164 deletions

BIN
dist/Programa Caja.jar vendored

Binary file not shown.

View File

@@ -91,7 +91,7 @@ public class ArqueoController extends BaseController {
* Rellea los campos de documentos con la instancia de documentos que pertenece a la caja * Rellea los campos de documentos con la instancia de documentos que pertenece a la caja
*/ */
private void fillDocumentos() { private void fillDocumentos() {
this.documentos = DAOManager.getDocumentosDAO().findByCaja(caja); this.documentos = DAOManager.getDocumentosDAO().findByCaja(caja).orElse(Documentos.EMPTY);
this.view.getTarjetasField().setValue(documentos.getTarjetas()); this.view.getTarjetasField().setValue(documentos.getTarjetas());
this.view.getChequesField().setValue(documentos.getCheques()); this.view.getChequesField().setValue(documentos.getCheques());
this.view.getRetiroField().setValue(documentos.getRetiros()); this.view.getRetiroField().setValue(documentos.getRetiros());
@@ -179,7 +179,7 @@ public class ArqueoController extends BaseController {
this.view.getGuardarEfectivoButton() this.view.getGuardarEfectivoButton()
.addActionListener(e -> this.guardarEfectivoActionListener()); .addActionListener(e -> this.guardarEfectivoActionListener());
this.view.getGuardarDocumentosButton() this.view.getGuardarDocumentosButton()
.addActionListener(e -> this.guardarEfectivoActionListener()); .addActionListener(e -> this.guardarDocumentosActionListener());
this.view.getCalcularFondoButton().addActionListener(e -> this.calcularFondoActionListener()); this.view.getCalcularFondoButton().addActionListener(e -> this.calcularFondoActionListener());
} }

View File

@@ -27,7 +27,7 @@ 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();
private int id; private int id;
private int cheques; private int cheques;
private int tarjetas; private int tarjetas;

View File

@@ -26,22 +26,23 @@ package danielcortes.xyz.models.documentos;
import danielcortes.xyz.models.caja.Caja; import danielcortes.xyz.models.caja.Caja;
import java.util.List; import java.util.List;
import java.util.Optional;
public interface DocumentosDAO { public interface DocumentosDAO {
List<Documentos> findAll(); List<Documentos> findAll();
Documentos findById(int id); Optional<Documentos> findById(int id);
Documentos findByCaja(Caja caja); Optional<Documentos> findByCaja(Caja caja);
boolean insertDocumentos(Documentos documentos); void insertDocumentos(Documentos documentos);
boolean insertDefaultDocumentos(Documentos documentos); void insertDefaultDocumentos(Documentos documentos);
boolean updateDocumentos(Documentos documentos); void updateDocumentos(Documentos documentos);
boolean deleteDocumentos(Documentos documentos); void deleteDocumentos(Documentos documentos);
int getTotalDocumentos(Caja caja); int getTotalDocumentos(Caja caja);

View File

@@ -28,13 +28,13 @@ import danielcortes.xyz.data.ConnectionHolder;
import danielcortes.xyz.data.DAOManager; 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;
@@ -43,6 +43,7 @@ public class SQLiteDocumentosDAO implements DocumentosDAO {
private static final Logger LOGGER = Logger.getLogger(SQLiteDocumentosDAO.class.getName()); private static final Logger LOGGER = Logger.getLogger(SQLiteDocumentosDAO.class.getName());
private ConnectionHolder connectionHolder; private ConnectionHolder connectionHolder;
public SQLiteDocumentosDAO() { public SQLiteDocumentosDAO() {
this.connectionHolder = new SQLiteConnectionHolder(); this.connectionHolder = new SQLiteConnectionHolder();
} }
@@ -50,209 +51,16 @@ public class SQLiteDocumentosDAO implements DocumentosDAO {
@Override @Override
public List<Documentos> findAll() { public List<Documentos> findAll() {
List<Documentos> documentosList = new ArrayList<>(); List<Documentos> documentosList = new ArrayList<>();
try (Connection conn = connectionHolder.getConnection()) {
String query = "select * from documentos"; String query = "select * from documentos";
PreparedStatement ps = conn.prepareStatement(query); try (Connection conn = connectionHolder.getConnection()) {
ResultSet rs = ps.executeQuery(); try (PreparedStatement ps = conn.prepareStatement(query)) {
try (ResultSet rs = ps.executeQuery()) {
LOGGER.log(Level.FINE, "QUERY: {0}", query); 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 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} | values: {1}", new Object[]{query, id});
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;
}
@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, caja.getId()});
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;
}
@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}, {2}, {3}, {4}] | updates: {5}",
new Object[]{query, documentos.getCheques(), documentos.getTarjetas(),
documentos.getRetiros(), documentos.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();
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 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} | updates: {2}",
new Object[]{query, documentos.getCaja().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;
}
@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}, {2}, {3}, {4}] | updates: {5}",
new Object[]{query, documentos.getCheques(), documentos.getTarjetas(),
documentos.getRetiros(), documentos.getCaja().getId(), documentos.getId(), updates});
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();
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;
}
@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;
}
protected List<Documentos> documentosFromResultSet(ResultSet rs) throws SQLException {
List<Documentos> documentosList = new ArrayList<>();
while (rs.next()) { while (rs.next()) {
CajaDAO cajaDAO = DAOManager.getCajaDAO(); //Confio en que la base de datos mapeo correctamente la caja_id
Caja caja = cajaDAO.getById(rs.getInt("caja_id")).get(); @SuppressWarnings("OptionalGetWithoutIsPresent")
Caja caja = DAOManager.getCajaDAO().getById(rs.getInt("caja_id")).get();
Documentos documentos = new Documentos(); Documentos documentos = new Documentos();
documentos.setCaja(caja); documentos.setCaja(caja);
@@ -261,11 +69,170 @@ public class SQLiteDocumentosDAO implements DocumentosDAO {
documentos.setTarjetas(rs.getInt("tarjetas")); documentos.setTarjetas(rs.getInt("tarjetas"));
documentos.setRetiros(rs.getInt("retiros")); documentos.setRetiros(rs.getInt("retiros"));
LOGGER.log(Level.FINER, "Se a creo: {0}", documentos);
documentosList.add(documentos); documentosList.add(documentos);
}
}
}
} catch (SQLException e) {
LOGGER.log(Level.SEVERE, e.toString(), e);
} }
return documentosList; return documentosList;
} }
@Override
public Optional<Documentos> findById(int id) {
Documentos documentos = null;
try (Connection conn = connectionHolder.getConnection()) {
String query = "select * from documentos where id = ?";
try (PreparedStatement ps = conn.prepareStatement(query)) {
ps.setInt(1, id);
try (ResultSet rs = ps.executeQuery()) {
LOGGER.log(Level.FINE, "QUERY: {0} | values: {1}", new Object[]{query, id});
if (rs.next()) {
//Confio en que la base de datos mapeo correctamente la caja_id
@SuppressWarnings("OptionalGetWithoutIsPresent")
Caja caja = DAOManager.getCajaDAO().getById(rs.getInt("caja_id")).get();
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"));
}
}
}
} catch (SQLException e) {
LOGGER.log(Level.SEVERE, e.toString(), e);
}
return Optional.ofNullable(documentos);
}
@Override
public Optional<Documentos> findByCaja(Caja caja) {
Documentos documentos = null;
if (Caja.EMPTY == caja) {
return Optional.ofNullable(documentos);
}
String query = "select * from documentos where caja_id = ?";
try (Connection conn = connectionHolder.getConnection()) {
try (PreparedStatement ps = conn.prepareStatement(query)) {
ps.setInt(1, caja.getId());
try (ResultSet rs = ps.executeQuery()) {
LOGGER.log(Level.FINE, "QUERY: {0} | values: {1}", new Object[]{query, caja.getId()});
if (rs.next()) {
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"));
}
}
}
} catch (SQLException e) {
LOGGER.log(Level.SEVERE, e.toString(), e);
}
return Optional.ofNullable(documentos);
}
@Override
public void insertDocumentos(Documentos documentos) {
String query = "insert into documentos (cheques, tarjetas, retiros, caja_id) values (?,?,?,?)";
try (Connection conn = connectionHolder.getConnection()) {
try (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());
ps.executeUpdate();
}
try (PreparedStatement ps = conn.prepareStatement("select last_insert_rowid()")) {
try (ResultSet rs = ps.executeQuery()) {
rs.next();
documentos.setId(rs.getInt(1));
}
}
} catch (SQLException e) {
LOGGER.log(Level.SEVERE, e.toString(), e);
}
}
@Override
public void insertDefaultDocumentos(Documentos documentos) {
String query = "insert into documentos (cheques, tarjetas, retiros, caja_id) values (0,0,0,?)";
try (Connection conn = connectionHolder.getConnection()) {
try (PreparedStatement ps = conn.prepareStatement(query)) {
ps.setInt(1, documentos.getCaja().getId());
ps.executeUpdate();
}
try (PreparedStatement ps = conn.prepareStatement("select last_insert_rowid()")) {
try (ResultSet rs = ps.executeQuery()) {
rs.next();
documentos.setId(rs.getInt(1));
}
}
} catch (SQLException e) {
LOGGER.log(Level.SEVERE, e.toString(), e);
}
}
@Override
public void updateDocumentos(Documentos documentos) {
String query = "update documentos set tarjetas = ?, cheques = ?, retiros = ?, caja_id = ? where id = ?";
try (Connection conn = connectionHolder.getConnection()) {
try (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());
ps.executeUpdate();
}
} catch (SQLException e) {
LOGGER.log(Level.SEVERE, e.toString(), e);
}
}
@Override
public void deleteDocumentos(Documentos documentos) {
String query = "delete from documentos where id = ?";
try (Connection conn = connectionHolder.getConnection()) {
try (PreparedStatement ps = conn.prepareStatement(query)) {
ps.setInt(1, documentos.getId());
}
} catch (SQLException e) {
LOGGER.log(Level.SEVERE, e.toString(), e);
}
}
@Override
public int getTotalDocumentos(Caja caja) {
int total = 0;
if (Caja.EMPTY == caja) {
return total;
}
String query = "select cheques + tarjetas + retiros from documentos where caja_id = ?";
try (Connection conn = connectionHolder.getConnection()) {
try (PreparedStatement ps = conn.prepareStatement(query)) {
ps.setInt(1, caja.getId());
try (ResultSet rs = ps.executeQuery()) {
if (rs.next()) {
total = rs.getInt(1);
}
}
}
} catch (SQLException e) {
LOGGER.log(Level.SEVERE, e.toString(), e);
}
return total;
}
} }