diff --git a/dist/Programa Caja.jar b/dist/Programa Caja.jar index dad3fe1..86b7e39 100644 Binary files a/dist/Programa Caja.jar and b/dist/Programa Caja.jar differ diff --git a/src/danielcortes/xyz/models/documentos/SQLiteDocumentosDAO.java b/src/danielcortes/xyz/models/documentos/SQLiteDocumentosDAO.java index fbe5ab0..7520923 100644 --- a/src/danielcortes/xyz/models/documentos/SQLiteDocumentosDAO.java +++ b/src/danielcortes/xyz/models/documentos/SQLiteDocumentosDAO.java @@ -35,16 +35,28 @@ import java.sql.SQLException; import java.util.ArrayList; import java.util.List; import java.util.Optional; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; +/** + * Objeto DAO que realiza las querys y mapeos necesarios del objecto Documentos + * En especifico esta implementacion se comunica con la base de datos SQLite + */ public class SQLiteDocumentosDAO implements DocumentosDAO { + private static final Logger LOGGER = LogManager.getLogger(SQLiteDocumentosDAO.class); private ConnectionHolder connectionHolder; public SQLiteDocumentosDAO() { this.connectionHolder = new SQLiteConnectionHolder(); } + /** + * Obtiene todas las instancias de Documentos que existen en la base de datos + * @return Una lista con los Documentos + */ @Override public List getAll() { + LOGGER.info("Se intentaran conseguir todos los Documentos"); List documentosList = new ArrayList<>(); String query = "select * from documentos"; try (Connection conn = connectionHolder.getConnection()) { @@ -67,12 +79,21 @@ public class SQLiteDocumentosDAO implements DocumentosDAO { } } } catch (SQLException e) { + LOGGER.error("Error al intentar conseguir todos los Documentos de la base de datos", e); } + LOGGER.trace("Se consiguieron " + documentosList.size() + " Documentos"); return documentosList; } + /** + * Obtiene un Documento dado su id en la base de datos + * @param id el id de la fila del documento en la base de datos + * @return Un optional que contiene el documento que puede ser vacio, dado que no es + * 100% seguro que el id entregado sea valido o exista en la base de datos. + */ @Override public Optional getById(int id) { + LOGGER.info("Se intentara conseguir el Documentos con id " + id); Documentos documentos = null; try (Connection conn = connectionHolder.getConnection()) { @@ -95,12 +116,21 @@ public class SQLiteDocumentosDAO implements DocumentosDAO { } } } catch (SQLException e) { + LOGGER.error("Error al intentar conseguir el Documentos con id " + id, e); } + LOGGER.trace("Se consiguio el Documentos " + documentos); return Optional.ofNullable(documentos); } + /** + * Obtiene el Documentos que esta relacionado con la Caja + * @param caja caja con la cual esta relacionado el Documentos + * @return Un optional que contiene el Documentos el cual puede ser vacio, dado que no + * es 100% seguro que exista un Documentos con esa caja. + */ @Override public Optional getByCaja(Caja caja) { + LOGGER.info("Se intentara conseguir el Documentos de la caja " + caja); Documentos documentos = null; if (Caja.EMPTY == caja) { @@ -123,14 +153,25 @@ public class SQLiteDocumentosDAO implements DocumentosDAO { } } } catch (SQLException e) { + LOGGER.error("Error al intentar conseguir el documentos de la caja " + caja, e); } + + LOGGER.trace("Se consiguio el Documentos " + documentos); return Optional.ofNullable(documentos); } + /** + * Obtiene la suma de los documentos pertenecientes a una caja + * @param caja caja a la que pertenecen los documentos que se sumaran + * @return Un int con la suma obtenida, en caso que la caja entregada sea igual a + * Caja.EMPTY se retornara 0, al igual que si no existe ningun documentos para la caja + */ @Override public int getTotalDocumentos(Caja caja) { + LOGGER.info("Se intentara conseguir el total de Documentos de la caja " + caja); int total = 0; if (Caja.EMPTY == caja) { + LOGGER.trace("La caja entregada era Caja.EMPTY"); return total; } @@ -145,12 +186,19 @@ public class SQLiteDocumentosDAO implements DocumentosDAO { } } } catch (SQLException e) { + LOGGER.error("Error al intentar conseguir la suma de los documentos de la caja " + caja); } + LOGGER.trace("La suma obtenida es " + total); return total; } + /** + * Inserta en la base de datos una instancia de Documentos nuevo + * @param documentos Documentos a insertar, una vez que ocurra se le otorgara un id + */ @Override public void insertDocumentos(Documentos documentos) { + LOGGER.info("Se intentara insertar un nuevo documentos " + documentos); String query = "insert into documentos (cheques, tarjetas, retiros, caja_id) values (?,?,?,?)"; try (Connection conn = connectionHolder.getConnection()) { try (PreparedStatement ps = conn.prepareStatement(query)) { @@ -169,11 +217,20 @@ public class SQLiteDocumentosDAO implements DocumentosDAO { } } catch (SQLException e) { + LOGGER.error("Error al intentar insertar el documentos " + documentos); } + LOGGER.trace("Se inserto el documentos " + documentos); } + /** + * Inserta un documentos por default, teniendo los campos cheques, tarjetas y retiros + * siendo 0. + * @param documentos Instancia de documentos la cual se guardara con esas caracteristicas + * Solo se tomara el objecto caja para obtener el id de esta y asociarlo en la base de datos + */ @Override public void insertDefaultDocumentos(Documentos documentos) { + LOGGER.info("Se intentara insertar el documento default " + 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)) { @@ -187,11 +244,18 @@ public class SQLiteDocumentosDAO implements DocumentosDAO { } } } catch (SQLException e) { + LOGGER.error("Error al intentar insertar el documento por default " + documentos, e); } + LOGGER.trace("Se inserto el documento por default " + documentos); } + /** + * Actualiza un Documentos existente en la base de datos + * @param documentos el documentos a insertar + */ @Override public void updateDocumentos(Documentos documentos) { + LOGGER.info("Se intentara actualizar el 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)) { @@ -203,18 +267,26 @@ public class SQLiteDocumentosDAO implements DocumentosDAO { ps.executeUpdate(); } } catch (SQLException e) { + LOGGER.error("Error al actualizar el documentos " + documentos, e); } + LOGGER.trace("Se actualizo el documentos " + documentos); } + /** + * Elimina un Documentos existente en la base de datos + * @param documentos El documentos a eliminar + */ @Override public void deleteDocumentos(Documentos documentos) { + LOGGER.info("Se intentara eliminar el 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.error("Error al eliminar el documentos " + documentos, e); } + LOGGER.trace("Se elimino el documentos " + documentos); } - }