|
|
|
|
@@ -28,13 +28,13 @@ import danielcortes.xyz.data.ConnectionHolder;
|
|
|
|
|
import danielcortes.xyz.data.DAOManager;
|
|
|
|
|
import danielcortes.xyz.data.SQLiteConnectionHolder;
|
|
|
|
|
import danielcortes.xyz.models.caja.Caja;
|
|
|
|
|
import danielcortes.xyz.models.caja.CajaDAO;
|
|
|
|
|
import java.sql.Connection;
|
|
|
|
|
import java.sql.PreparedStatement;
|
|
|
|
|
import java.sql.ResultSet;
|
|
|
|
|
import java.sql.SQLException;
|
|
|
|
|
import java.util.ArrayList;
|
|
|
|
|
import java.util.List;
|
|
|
|
|
import java.util.Optional;
|
|
|
|
|
import java.util.logging.Level;
|
|
|
|
|
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 ConnectionHolder connectionHolder;
|
|
|
|
|
|
|
|
|
|
public SQLiteDocumentosDAO() {
|
|
|
|
|
this.connectionHolder = new SQLiteConnectionHolder();
|
|
|
|
|
}
|
|
|
|
|
@@ -50,17 +51,28 @@ public class SQLiteDocumentosDAO implements DocumentosDAO {
|
|
|
|
|
@Override
|
|
|
|
|
public List<Documentos> findAll() {
|
|
|
|
|
List<Documentos> documentosList = new ArrayList<>();
|
|
|
|
|
String query = "select * from documentos";
|
|
|
|
|
try (Connection conn = connectionHolder.getConnection()) {
|
|
|
|
|
String query = "select * from documentos";
|
|
|
|
|
PreparedStatement ps = conn.prepareStatement(query);
|
|
|
|
|
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);
|
|
|
|
|
while (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();
|
|
|
|
|
|
|
|
|
|
documentosList = this.documentosFromResultSet(rs);
|
|
|
|
|
Documentos 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"));
|
|
|
|
|
|
|
|
|
|
rs.close();
|
|
|
|
|
ps.close();
|
|
|
|
|
documentosList.add(documentos);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
} catch (SQLException e) {
|
|
|
|
|
LOGGER.log(Level.SEVERE, e.toString(), e);
|
|
|
|
|
}
|
|
|
|
|
@@ -68,204 +80,159 @@ public class SQLiteDocumentosDAO implements DocumentosDAO {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public Documentos findById(int id) {
|
|
|
|
|
public Optional<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();
|
|
|
|
|
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});
|
|
|
|
|
|
|
|
|
|
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();
|
|
|
|
|
|
|
|
|
|
List<Documentos> documentosList = this.documentosFromResultSet(rs);
|
|
|
|
|
if (documentosList.size() > 0) {
|
|
|
|
|
documentos = documentosList.get(0);
|
|
|
|
|
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"));
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
rs.close();
|
|
|
|
|
ps.close();
|
|
|
|
|
} catch (SQLException e) {
|
|
|
|
|
LOGGER.log(Level.SEVERE, e.toString(), e);
|
|
|
|
|
}
|
|
|
|
|
return documentos;
|
|
|
|
|
return Optional.ofNullable(documentos);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public Documentos findByCaja(Caja caja) {
|
|
|
|
|
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()) {
|
|
|
|
|
String query = "select * from documentos where caja_id = ?";
|
|
|
|
|
PreparedStatement ps = conn.prepareStatement(query);
|
|
|
|
|
ps.setInt(1, caja.getId());
|
|
|
|
|
ResultSet rs = ps.executeQuery();
|
|
|
|
|
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()});
|
|
|
|
|
|
|
|
|
|
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);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
List<Documentos> documentosList = this.documentosFromResultSet(rs);
|
|
|
|
|
if (documentosList.size() > 0) {
|
|
|
|
|
documentos = documentosList.get(0);
|
|
|
|
|
@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));
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
rs.close();
|
|
|
|
|
ps.close();
|
|
|
|
|
} catch (SQLException e) {
|
|
|
|
|
LOGGER.log(Level.SEVERE, e.toString(), e);
|
|
|
|
|
}
|
|
|
|
|
return documentos;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public boolean insertDocumentos(Documentos documentos) {
|
|
|
|
|
int updates;
|
|
|
|
|
public void insertDefaultDocumentos(Documentos documentos) {
|
|
|
|
|
String query = "insert into documentos (cheques, tarjetas, retiros, caja_id) values (0,0,0,?)";
|
|
|
|
|
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();
|
|
|
|
|
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);
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
return updates > 0;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public boolean insertDefaultDocumentos(Documentos documentos) {
|
|
|
|
|
int updates;
|
|
|
|
|
public void updateDocumentos(Documentos documentos) {
|
|
|
|
|
String query = "update documentos set tarjetas = ?, cheques = ?, retiros = ?, caja_id = ? where id = ?";
|
|
|
|
|
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();
|
|
|
|
|
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);
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
return updates > 0;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public boolean updateDocumentos(Documentos documentos) {
|
|
|
|
|
int updates;
|
|
|
|
|
public void deleteDocumentos(Documentos documentos) {
|
|
|
|
|
String query = "delete from documentos where id = ?";
|
|
|
|
|
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();
|
|
|
|
|
try (PreparedStatement ps = conn.prepareStatement(query)) {
|
|
|
|
|
ps.setInt(1, documentos.getId());
|
|
|
|
|
}
|
|
|
|
|
} 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;
|
|
|
|
|
if (Caja.EMPTY == caja) {
|
|
|
|
|
return total;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
String query = "select cheques + tarjetas + retiros from documentos where caja_id = ?";
|
|
|
|
|
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();
|
|
|
|
|
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;
|
|
|
|
|
}
|
|
|
|
|
protected List<Documentos> documentosFromResultSet(ResultSet rs) throws SQLException {
|
|
|
|
|
List<Documentos> documentosList = new ArrayList<>();
|
|
|
|
|
while (rs.next()) {
|
|
|
|
|
CajaDAO cajaDAO = DAOManager.getCajaDAO();
|
|
|
|
|
Caja caja = cajaDAO.getById(rs.getInt("caja_id")).get();
|
|
|
|
|
|
|
|
|
|
Documentos 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"));
|
|
|
|
|
|
|
|
|
|
LOGGER.log(Level.FINER, "Se a creo: {0}", documentos);
|
|
|
|
|
|
|
|
|
|
documentosList.add(documentos);
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
return documentosList;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|