Se agregaron logs y documentacion a la clase

This commit is contained in:
Daniel Cortes
2019-03-16 21:32:41 -03:00
parent 6bbb5b4a14
commit 0c36c3fd9f
2 changed files with 157 additions and 4 deletions

BIN
dist/Programa Caja.jar vendored

Binary file not shown.

View File

@@ -40,16 +40,30 @@ import java.time.YearMonth;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Optional; 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 EstadoResultado. En especifico
* esta implementacion se comunica con la base de datos SQLite
*/
public class SQLiteIngresoDAO implements IngresoDAO { public class SQLiteIngresoDAO implements IngresoDAO {
private static final Logger log = LogManager.getLogger(SQLiteIngresoDAO.class);
private ConnectionHolder connectionHolder; private ConnectionHolder connectionHolder;
public SQLiteIngresoDAO() { public SQLiteIngresoDAO() {
this.connectionHolder = new SQLiteConnectionHolder(); this.connectionHolder = new SQLiteConnectionHolder();
} }
/**
* Obtiene todos los Ingreso
*
* @return Una lista con los Ingreso
*/
@Override @Override
public List<Ingreso> getAll() { public List<Ingreso> getAll() {
log.debug("Se intententaran conseguir todos los Ingreso");
List<Ingreso> ingresosList = new ArrayList<>(); List<Ingreso> ingresosList = new ArrayList<>();
String query = "select * from ingresos"; String query = "select * from ingresos";
@@ -83,15 +97,25 @@ public class SQLiteIngresoDAO implements IngresoDAO {
} }
} }
} catch (SQLException e) { } catch (SQLException e) {
log.error("Error al intentar conseguir todos los Egreso", e);
} }
log.debug("Se consiguieron " + ingresosList.size() + " Ingreso");
return ingresosList; return ingresosList;
} }
/**
* Obtiene la lista de Ingreso perteneciente a una Caja
*
* @param caja Caja a la que pertence los Ingreso buscados
* @return Una lista de ingreso, en caso que la caja sea Caja.EMPTY se retoranara una lista vacia.
*/
@Override @Override
public List<Ingreso> getByCaja(Caja caja) { public List<Ingreso> getByCaja(Caja caja) {
log.debug("Se intentara buscar los ingresos de la caja " + caja);
List<Ingreso> ingresosList = new ArrayList<>(); List<Ingreso> ingresosList = new ArrayList<>();
if (Caja.EMPTY == caja) { if (Caja.EMPTY == caja) {
log.debug("La Caja era Caja.EMPTY");
return ingresosList; return ingresosList;
} }
@@ -122,13 +146,22 @@ public class SQLiteIngresoDAO implements IngresoDAO {
} }
} }
} catch (SQLException e) { } catch (SQLException e) {
e.printStackTrace(); log.error("Error al intentar buscar los Ingreso de la caja " + caja, e);
} }
log.debug("Se consiguieron " + ingresosList.size() + " Ingreso");
return ingresosList; return ingresosList;
} }
/**
* Obtiene un Ingreso dado su id en la base de datos
*
* @param id de la fila de Ingreso en la base de datos
* @return Un Optional que contiene el Ingreso que puede estar vacio,esto porque no es 100% seguro
* que exista en la base de datos o que sea valido
*/
@Override @Override
public Optional<Ingreso> getById(int id) { public Optional<Ingreso> getById(int id) {
log.debug("Se intentara conseguir un Ingreso con id " + id);
Ingreso ingreso = null; Ingreso ingreso = null;
String query = "select * from ingresos where id = ?"; String query = "select * from ingresos where id = ?";
try (Connection conn = connectionHolder.getConnection()) { try (Connection conn = connectionHolder.getConnection()) {
@@ -162,12 +195,21 @@ public class SQLiteIngresoDAO implements IngresoDAO {
} }
} catch ( } catch (
SQLException e) { SQLException e) {
log.error("Error al intentar conseguir un Ingreso con el id " + id);
} }
log.debug("Se consiguio el Ingreso " + ingreso);
return Optional.ofNullable(ingreso); return Optional.ofNullable(ingreso);
} }
/**
* Obtiene los Ingreso pertenecientes a un tipoIngreso
*
* @param tipoIngreso TipoIngreso al que pertenece los Ingreso deseados
* @return Lista con los ingreso.
*/
@Override @Override
public List<Ingreso> getByTipoIngreso(TipoIngreso tipoIngreso) { public List<Ingreso> getByTipoIngreso(TipoIngreso tipoIngreso) {
log.debug("Se intentara conseguir los Ingreso con TipoIngreso" + tipoIngreso);
List<Ingreso> ingresosList = new ArrayList<>(); List<Ingreso> ingresosList = new ArrayList<>();
String query = "select ingresos.* from ingresos inner join tipos_ingreso on (ingresos.tipo_ingreso_id = tipos_ingreso.id) where ingresos.tipo_ingreso_id = ?"; String query = "select ingresos.* from ingresos inner join tipos_ingreso on (ingresos.tipo_ingreso_id = tipos_ingreso.id) where ingresos.tipo_ingreso_id = ?";
try (Connection conn = connectionHolder.getConnection()) { try (Connection conn = connectionHolder.getConnection()) {
@@ -197,14 +239,24 @@ public class SQLiteIngresoDAO implements IngresoDAO {
} }
} }
} catch (SQLException e) { } catch (SQLException e) {
log.error("Error al intentar conseguir los Ingreso con tipoIngreso " + tipoIngreso);
} }
log.debug("Se consiguieron " + ingresosList.size() + " Ingresos");
return ingresosList; return ingresosList;
} }
/**
* Obtiene la suma de los ingresos en una caja
*
* @param caja Caja a la que pertencen los ingresos a sumar
* @return la suma de los ingresos, en caso que la caja sea Caja.EMPTY siempre retoranara 0
*/
@Override @Override
public int getTotalIngreso(Caja caja) { public int getTotalIngreso(Caja caja) {
log.debug("Se intentara conseguir el total de ingreso en la caja " + caja);
int total = 0; int total = 0;
if (Caja.EMPTY == caja) { if (Caja.EMPTY == caja) {
log.debug("La caja era Caja.EMPTY");
return total; return total;
} }
@@ -219,12 +271,21 @@ public class SQLiteIngresoDAO implements IngresoDAO {
} }
} }
} catch (SQLException e) { } catch (SQLException e) {
log.error("Error al intentar conseguir el total de ingreso en la caja " + caja);
} }
log.debug("Se el total de ingreso es " + total);
return total; return total;
} }
/**
* Obtiene la suma de ingresos en un mes
*
* @param mes Mes dentro del cual estan los ingresos
* @return la suma de los ingresos.
*/
@Override @Override
public int getTotalIngresoMes(YearMonth mes) { public int getTotalIngresoMes(YearMonth mes) {
log.debug("Se intentara conseguir la suma de los ingreso en el mes " + mes);
int total = 0; int total = 0;
String query = String query =
"select sum(valor) from ingresos inner join caja on (ingresos.caja_id == caja.id) where caja.fecha between ? and ? and ingresos.tipo_ingreso_id != 5"; "select sum(valor) from ingresos inner join caja on (ingresos.caja_id == caja.id) where caja.fecha between ? and ? and ingresos.tipo_ingreso_id != 5";
@@ -242,12 +303,21 @@ public class SQLiteIngresoDAO implements IngresoDAO {
} }
} }
} catch (SQLException e) { } catch (SQLException e) {
log.error("Error al intentar conseguir la suma de los ingresos en el mes " + mes);
} }
log.debug("La suma de los ingresos es " + total);
return total; return total;
} }
/**
* Obtiene el total de ingresos con el tipo boleta exenta dentro de un mes
*
* @param mes Mes al cual pertenecen los ingresos
* @return La suma de los ingresos con el tipo boleta exenta en el mes
*/
@Override @Override
public int getTotalExentasMes(YearMonth mes) { public int getTotalExentasMes(YearMonth mes) {
log.debug("Se intentara conseguir el total de boletas exentas en el mes " + mes);
int total = 0; int total = 0;
String query = String query =
"select sum(valor) from ingresos inner join caja on (ingresos.caja_id == caja.id) where caja.fecha between ? and ? and ingresos.tipo_ingreso_id = 5"; "select sum(valor) from ingresos inner join caja on (ingresos.caja_id == caja.id) where caja.fecha between ? and ? and ingresos.tipo_ingreso_id = 5";
@@ -264,12 +334,23 @@ public class SQLiteIngresoDAO implements IngresoDAO {
} }
} }
} catch (SQLException e) { } catch (SQLException e) {
log.error("Error al intentar conseguir el total de boletas exentas en el mes " + mes);
} }
log.debug("El total conseguido es " + total);
return total; return total;
} }
/**
* Obtiene el total de ingresos en una caja, de un tipo especifico
*
* @param caja Caja a la que pertenen los ingresos
* @param tipoIngreso TipoIngreso al cual pertencen los ingresos
* @return La suma de los ingresos.
*/
@Override @Override
public int getTotalIngresoEnCajaPorTipo(Caja caja, TipoIngreso tipoIngreso) { public int getTotalIngresoEnCajaPorTipo(Caja caja, TipoIngreso tipoIngreso) {
log.debug("Se intentara obtener el total de ingresos de la caja " + caja + " y el tipo "
+ tipoIngreso);
int total = 0; int total = 0;
if (caja == Caja.EMPTY) { if (caja == Caja.EMPTY) {
return total; return total;
@@ -286,15 +367,29 @@ public class SQLiteIngresoDAO implements IngresoDAO {
} }
} }
} catch (SQLException e) { } catch (SQLException e) {
log.error("Error al intentar obtener el total de ingresos de la caja " + caja + " y el tipo "
+ tipoIngreso);
} }
log.debug("Se obtuvo el total " + total);
return total; return total;
} }
/**
* Obtiene el primer numero inicial de ingreso de un tipo de ingreso, dentro de una caja.
*
* @param caja Caja a la que pertencen los ingreso
* @param tipoIngreso TipoIngreso al cual pertenecen los ingreso
* @return Un Optional que contiene el primer numero inicial de ingreso,este puede estar vacio ya
* que no es seguro que exista tal numero inicial.
*/
@Override @Override
public Optional<String> getPrimerNroInicialDeCajaDeTipo(Caja caja, TipoIngreso tipoIngreso) { public Optional<String> getPrimerNroInicialDeCajaDeTipo(Caja caja, TipoIngreso tipoIngreso) {
log.debug("Se intentara conseguir el primer numero inicial de ingreso en la caja " + caja
+ " de tipo " + tipoIngreso);
String nroInicial = null; String nroInicial = null;
if (caja == Caja.EMPTY) { if (caja == Caja.EMPTY) {
log.debug("La caja era Caja.EMPY");
return Optional.ofNullable(nroInicial); return Optional.ofNullable(nroInicial);
} }
@@ -310,14 +405,29 @@ public class SQLiteIngresoDAO implements IngresoDAO {
} }
} }
} catch (SQLException e) { } catch (SQLException e) {
log.error("Error al intentar conseguir el primer numero inicial de ingreso en la caja " + caja
+ " de tipo " + tipoIngreso);
} }
log.debug("Se consiguio el primero numero inicial " + nroInicial);
return Optional.ofNullable(nroInicial); return Optional.ofNullable(nroInicial);
} }
/**
* Obtiene el ultimo numero final de ingreso de un tipo de ingrso, dentro de una caja
*
* @param caja Caja a la que pertencen los ingreso
* @param tipoIngreso TipoIngreso al cual pertenecen los ingreso
* @return Un Optional que contiene el ultimo numero final de ingreso, este puede estar vacio ya
* que no es seguro que exista tal numero final.
*/
@Override @Override
public Optional<String> getUltimoNroFinalDeCajaDeTipo(Caja caja, TipoIngreso tipoIngreso) { public Optional<String> getUltimoNroFinalDeCajaDeTipo(Caja caja, TipoIngreso tipoIngreso) {
log.debug(
"Se intentara conseguir el ultimo numero final de ingreso en la caja " + caja + " de tipo "
+ tipoIngreso);
String nroFinal = null; String nroFinal = null;
if (caja == Caja.EMPTY) { if (caja == Caja.EMPTY) {
log.debug("La caja era Caja.EMPY");
return Optional.ofNullable(nroFinal); return Optional.ofNullable(nroFinal);
} }
@@ -333,16 +443,27 @@ public class SQLiteIngresoDAO implements IngresoDAO {
} }
} }
} catch (SQLException e) { } catch (SQLException e) {
e.printStackTrace(); log.error("Error al intentar conseguir el ultimo numero final de ingreso en la caja " + caja
+ " de tipo " + tipoIngreso);
} }
log.debug("Se consiguio el ultimo numero final " + nroFinal);
return Optional.ofNullable(nroFinal); return Optional.ofNullable(nroFinal);
} }
/**
* Obtiene el primer numero z inicial dentro de una caja
*
* @param caja caja a la que pertenecen los ingresos en los que buscar
* @return Un optional que contiene el primer numero z inicial, este puede estar vacio ya que no
* es seguro que exista tal numero z inicial
*/
@Override @Override
public Optional<String> getPrimerNroZInicialDeCaja(Caja caja) { public Optional<String> getPrimerNroZInicialDeCaja(Caja caja) {
log.debug("Se intentara conseguir el primero numero z inicial dentro de la caja " + caja);
String nroZInicial = null; String nroZInicial = null;
if (caja == Caja.EMPTY) { if (caja == Caja.EMPTY) {
log.debug("La caja era Caja.EMPTY");
return Optional.ofNullable(nroZInicial); return Optional.ofNullable(nroZInicial);
} }
@@ -357,15 +478,25 @@ public class SQLiteIngresoDAO implements IngresoDAO {
} }
} }
} catch (SQLException e) { } catch (SQLException e) {
e.printStackTrace(); log.error("Error al intentar conseguir el primer numero z inicial dentro de la caja " + caja);
} }
log.debug("Se consiguio el primer numero z inicial " + nroZInicial);
return Optional.ofNullable(nroZInicial); return Optional.ofNullable(nroZInicial);
} }
/**
* Obtiene el ultimo numero z final dentro de una caja
*
* @param caja caja a la que pertenecen los ingresos en los que buscar
* @return Un optional que contiene el ultimo numero z final, este puede estar vacio ya que no
* es seguro que exista tal numero z final
*/
@Override @Override
public Optional<String> getUltimoNroZFinalDeCaja(Caja caja) { public Optional<String> getUltimoNroZFinalDeCaja(Caja caja) {
log.debug("Se intentara conseguir el ultimo numero z final dentro de la caja " + caja);
String nroZFinal = null; String nroZFinal = null;
if (caja == Caja.EMPTY) { if (caja == Caja.EMPTY) {
log.debug("La caja era Caja.EMPTY");
return Optional.ofNullable(nroZFinal); return Optional.ofNullable(nroZFinal);
} }
String query = "select nro_z_final from ingresos where caja_id = ? and tipo_ingreso_id = 1 order by nro_inicial desc limit 1"; String query = "select nro_z_final from ingresos where caja_id = ? and tipo_ingreso_id = 1 order by nro_inicial desc limit 1";
@@ -379,13 +510,19 @@ public class SQLiteIngresoDAO implements IngresoDAO {
} }
} }
} catch (SQLException e) { } catch (SQLException e) {
e.printStackTrace(); log.error("Error al intentar conseguir el ultimo numero z final dentro de la caja " + caja, e);
} }
log.debug("Se consiguio el ultimo numero z final " + nroZFinal);
return Optional.ofNullable(nroZFinal); return Optional.ofNullable(nroZFinal);
} }
/**
* Inserta un ingreso en la base de datos
* @param ingreso Ingreso a insertar
*/
@Override @Override
public void insert(Ingreso ingreso) { public void insert(Ingreso ingreso) {
log.debug("Se intentara insertar el ingreso " + ingreso);
String query = "insert into ingresos (valor, nro_z_inicial, nro_z_final, nro_inicial, nro_final, tipo_ingreso_id, caja_id) values (?,?,?,?,?,?,?)"; String query = "insert into ingresos (valor, nro_z_inicial, nro_z_final, nro_inicial, nro_final, tipo_ingreso_id, caja_id) values (?,?,?,?,?,?,?)";
try (Connection conn = connectionHolder.getConnection()) { try (Connection conn = connectionHolder.getConnection()) {
try (PreparedStatement ps = conn.prepareStatement(query)) { try (PreparedStatement ps = conn.prepareStatement(query)) {
@@ -406,11 +543,18 @@ public class SQLiteIngresoDAO implements IngresoDAO {
} }
} }
} catch (SQLException e) { } catch (SQLException e) {
log.error("Error al intentar insertar el ingreso " + ingreso, e);
} }
log.debug("Se inserto el ingreso " + ingreso);
} }
/**
* Actualiza un ingreso existente en la base de datos
* @param ingreso Ingreso a actualizar
*/
@Override @Override
public void update(Ingreso ingreso) { public void update(Ingreso ingreso) {
log.debug("Se intentara actualizar el ingreso " + ingreso);
String query = "update ingresos set valor = ?, nro_z_inicial = ?, nro_z_final = ?, nro_inicial = ?, nro_final = ?, tipo_ingreso_id = ?, caja_id = ? where id = ?"; String query = "update ingresos set valor = ?, nro_z_inicial = ?, nro_z_final = ?, nro_inicial = ?, nro_final = ?, tipo_ingreso_id = ?, caja_id = ? where id = ?";
try (Connection conn = connectionHolder.getConnection()) { try (Connection conn = connectionHolder.getConnection()) {
try (PreparedStatement ps = conn.prepareStatement(query)) { try (PreparedStatement ps = conn.prepareStatement(query)) {
@@ -425,11 +569,18 @@ public class SQLiteIngresoDAO implements IngresoDAO {
ps.executeUpdate(); ps.executeUpdate();
} }
} catch (SQLException e) { } catch (SQLException e) {
log.error("Error al intentar actualizar el ingreso " + ingreso, e);
} }
log.debug("Se actualizo el ingreso " + ingreso);
} }
/**
* Elimnina un ingreso existente en la base de datos
* @param ingreso Ingreso a eliminar
*/
@Override @Override
public void delete(Ingreso ingreso) { public void delete(Ingreso ingreso) {
log.debug("Se intentara eliminar el ingreso " + ingreso);
String query = "delete from ingresos where id = ?"; String query = "delete from ingresos where id = ?";
try (Connection conn = connectionHolder.getConnection()) { try (Connection conn = connectionHolder.getConnection()) {
try (PreparedStatement ps = conn.prepareStatement(query)) { try (PreparedStatement ps = conn.prepareStatement(query)) {
@@ -437,6 +588,8 @@ public class SQLiteIngresoDAO implements IngresoDAO {
ps.executeUpdate(); ps.executeUpdate();
} }
} catch (SQLException e) { } catch (SQLException e) {
} log.error("Error al intentar eliminar el ingreso " + ingreso, e);
}
log.debug("Se elimino el ingreso " + ingreso);
} }
} }