diff --git a/src/danielcortes/xyz/models/calculo_fondo/SQLiteCalculoFondoDAO.java b/src/danielcortes/xyz/models/calculo_fondo/SQLiteCalculoFondoDAO.java index adb6179..d0d561f 100644 --- a/src/danielcortes/xyz/models/calculo_fondo/SQLiteCalculoFondoDAO.java +++ b/src/danielcortes/xyz/models/calculo_fondo/SQLiteCalculoFondoDAO.java @@ -38,18 +38,26 @@ 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 objeto CalculoFondo + * En especifico esta implementacion se comunica con la base de datos SQLite + */ public class SQLiteCalculoFondoDAO implements CalculoFondoDAO { - private static final Logger LOGGER = LogManager.getLogger(SQLiteCalculoFondoDAO.class); - private ConnectionHolder connectionHolder; public SQLiteCalculoFondoDAO() { this.connectionHolder = new SQLiteConnectionHolder(); } + /** + * Obtiene todas las instancias de CalculoFondo existentes en la base de datos, las + * cuales mapea a el objeto CalculoFondo y devuelve una lista con todos estos + * @return Una lista con todos las instancias de CalculoFondo en la base de datos + */ @Override public List getAll() { + LOGGER.info("Se intentara conseguir todos los CalculosFondo"); List calculoFondoList = new ArrayList<>(); String query = "select * from calculo_fondo"; try (Connection conn = connectionHolder.getConnection()) { @@ -72,11 +80,22 @@ public class SQLiteCalculoFondoDAO implements CalculoFondoDAO { } catch (SQLException e) { LOGGER.error("Error al intentar conseguir todos los CalculoFondo", e); } + LOGGER.trace("Se encontraron " + calculoFondoList.size() + " CalculosFondo"); return calculoFondoList; } + /** + * Obtiene todas las instancias de CalculoFondo que estan relacionadas a una caja. + * En caso que la caja entregada sea igual a Caja.EMPTY, se retornara automaticamente + * una lista vacia sin realizar ninguna query. + * + * @param caja Instancia de una caja existente en la base de datos, o que al menos + * tenga un id que exista en ella. + * @return Una lista de todos los CalculoFondo de la caja entregada + */ @Override public List getByCaja(Caja caja) { + LOGGER.info("Se intentara conseguir todos los calculos fondo de la caja " + caja); List calculoFondoList = new ArrayList<>(); if (Caja.EMPTY == caja) { return calculoFondoList; @@ -102,11 +121,19 @@ public class SQLiteCalculoFondoDAO implements CalculoFondoDAO { } catch (SQLException e) { LOGGER.error("Error al intentar conseguir los CalculoFondo de la caja " + caja, e); } + LOGGER.trace("Se consiguieron " + calculoFondoList.size() + "CalculoFondo pertencientes a la caja " + caja); return calculoFondoList; } + /** + * Obtiene una instancia de CalculoFondo desde la base de datos + * @param id el id de la fila de CalculoFondo en la base de datos + * @return Un optional que puede estar 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 un CalculoFondo con id " + id); CalculoFondo calculoFondo = null; String query = "select * from calculo_fondo where id = ?"; try (Connection conn = connectionHolder.getConnection()) { @@ -128,14 +155,25 @@ public class SQLiteCalculoFondoDAO implements CalculoFondoDAO { } catch (SQLException e) { LOGGER.error("Error al intentar conseguir un CalculoFondo por su id " + id, e); } + LOGGER.trace("El calculoFondo que se consiguio es " + calculoFondo); return Optional.ofNullable(calculoFondo); } + /** + * Obtiene la suma de los valores de CalculoFondo de una caja. + * En caso que la caja sea igual a Caja.EMPY, se retornara automaticamente 0 sin + * realizar ninguna query. + * @param caja Instancia de una caja existente en la base de datos, o que al menos + * tenga un id que exista. + * @return La suma de los valores de CalculoFondo en la caja entregada. + */ @Override public int getTotalCalculoFondo(Caja caja) { + LOGGER.info("Se intentara conseguir la suma de los valores de los CalculosFondo de la caja " + caja); int sum = 0; if (Caja.EMPTY == caja) { + LOGGER.trace("La caja que se entrego era Caja.EMPTY"); return sum; } @@ -153,11 +191,19 @@ public class SQLiteCalculoFondoDAO implements CalculoFondoDAO { LOGGER.error("Error al intentar conseguir el total de calculo fondo de la caja " + caja, e); } + LOGGER.trace("La suma conseguida de los CalculoFondo de la caja " + caja + " es " + sum); return sum; } + /** + * Inserta en la base de datos una instancia de CalculoFondo nueva. + * Una vez que sea insertado, se le agrega un id al objeto entregado. + * @param calculoFondo instancia que se insertara. + */ @Override public void insertCalculoFondo(CalculoFondo calculoFondo) { + LOGGER.info("Se intentara insertar el calculoFondo " + calculoFondo); + String query = "insert into calculo_fondo (valor, descripcion, caja_id) values (?, ?, ?)"; try (Connection conn = connectionHolder.getConnection()) { try (PreparedStatement ps = conn.prepareStatement(query)) { @@ -176,10 +222,18 @@ public class SQLiteCalculoFondoDAO implements CalculoFondoDAO { } catch (SQLException e) { LOGGER.error("Error al intentar insertar el CalculoFondo " + calculoFondo, e); } + + LOGGER.trace("Se inserto el calculoFondo " + calculoFondo); } + /** + * Actualiza un calculo fondo existente en la base de datos. + * La instancia que se actualizara sera la del id que tenga el objeto entregado. + * @param calculoFondo instancia de CalculoFondo a ser actualizada. + */ @Override public void updateCalculoFondo(CalculoFondo calculoFondo) { + LOGGER.info("Se intentara actualizar el CalculoFondo " + calculoFondo); String query = "update calculo_fondo set valor = ?, descripcion = ?, caja_id = ? where id = ?"; try (Connection conn = connectionHolder.getConnection()) { try (PreparedStatement ps = conn.prepareStatement(query)) { @@ -193,10 +247,17 @@ public class SQLiteCalculoFondoDAO implements CalculoFondoDAO { } catch (SQLException e) { LOGGER.error("Error al intentar actualizar el CalculoFondo " + calculoFondo, e); } + LOGGER.trace("Se actualizo el CalculoFondo " + calculoFondo); } + /** + * Elimina de la base de datos el objeto CalculoFondo entregado. + * La instancia en especifico sera la del id del objeto entregado + * @param calculoFondo instancia de CalculoFondo a eliminar. + */ @Override public void deleteCalculoFondo(CalculoFondo calculoFondo) { + LOGGER.info("Se intentara eliminar el CalculoFondo" + calculoFondo); String query = "delete from calculo_fondo where id = ?"; try (Connection conn = connectionHolder.getConnection()) { try (PreparedStatement ps = conn.prepareStatement(query)) { @@ -206,5 +267,6 @@ public class SQLiteCalculoFondoDAO implements CalculoFondoDAO { } catch (SQLException e) { LOGGER.error("Error al intentar eliminar el CalculoFondo " + calculoFondo, e); } + LOGGER.trace("El CalculoFondo " + calculoFondo + " fue eliminado de la base de datos"); } }