Se agregaron logs y documentacion a la clase
This commit is contained in:
BIN
dist/Programa Caja.jar
vendored
BIN
dist/Programa Caja.jar
vendored
Binary file not shown.
@@ -40,16 +40,30 @@ import java.time.YearMonth;
|
||||
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 objeto EstadoResultado. En especifico
|
||||
* esta implementacion se comunica con la base de datos SQLite
|
||||
*/
|
||||
public class SQLiteIngresoDAO implements IngresoDAO {
|
||||
|
||||
private static final Logger log = LogManager.getLogger(SQLiteIngresoDAO.class);
|
||||
private ConnectionHolder connectionHolder;
|
||||
|
||||
public SQLiteIngresoDAO() {
|
||||
this.connectionHolder = new SQLiteConnectionHolder();
|
||||
}
|
||||
|
||||
/**
|
||||
* Obtiene todos los Ingreso
|
||||
*
|
||||
* @return Una lista con los Ingreso
|
||||
*/
|
||||
@Override
|
||||
public List<Ingreso> getAll() {
|
||||
log.debug("Se intententaran conseguir todos los Ingreso");
|
||||
List<Ingreso> ingresosList = new ArrayList<>();
|
||||
String query = "select * from ingresos";
|
||||
|
||||
@@ -83,15 +97,25 @@ public class SQLiteIngresoDAO implements IngresoDAO {
|
||||
}
|
||||
}
|
||||
} catch (SQLException e) {
|
||||
log.error("Error al intentar conseguir todos los Egreso", e);
|
||||
}
|
||||
|
||||
log.debug("Se consiguieron " + ingresosList.size() + " Ingreso");
|
||||
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
|
||||
public List<Ingreso> getByCaja(Caja caja) {
|
||||
log.debug("Se intentara buscar los ingresos de la caja " + caja);
|
||||
List<Ingreso> ingresosList = new ArrayList<>();
|
||||
if (Caja.EMPTY == caja) {
|
||||
log.debug("La Caja era Caja.EMPTY");
|
||||
return ingresosList;
|
||||
}
|
||||
|
||||
@@ -122,13 +146,22 @@ public class SQLiteIngresoDAO implements IngresoDAO {
|
||||
}
|
||||
}
|
||||
} 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;
|
||||
}
|
||||
|
||||
/**
|
||||
* 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
|
||||
public Optional<Ingreso> getById(int id) {
|
||||
log.debug("Se intentara conseguir un Ingreso con id " + id);
|
||||
Ingreso ingreso = null;
|
||||
String query = "select * from ingresos where id = ?";
|
||||
try (Connection conn = connectionHolder.getConnection()) {
|
||||
@@ -162,12 +195,21 @@ public class SQLiteIngresoDAO implements IngresoDAO {
|
||||
}
|
||||
} catch (
|
||||
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);
|
||||
}
|
||||
|
||||
/**
|
||||
* Obtiene los Ingreso pertenecientes a un tipoIngreso
|
||||
*
|
||||
* @param tipoIngreso TipoIngreso al que pertenece los Ingreso deseados
|
||||
* @return Lista con los ingreso.
|
||||
*/
|
||||
@Override
|
||||
public List<Ingreso> getByTipoIngreso(TipoIngreso tipoIngreso) {
|
||||
log.debug("Se intentara conseguir los Ingreso con TipoIngreso" + tipoIngreso);
|
||||
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 = ?";
|
||||
try (Connection conn = connectionHolder.getConnection()) {
|
||||
@@ -197,14 +239,24 @@ public class SQLiteIngresoDAO implements IngresoDAO {
|
||||
}
|
||||
}
|
||||
} catch (SQLException e) {
|
||||
log.error("Error al intentar conseguir los Ingreso con tipoIngreso " + tipoIngreso);
|
||||
}
|
||||
log.debug("Se consiguieron " + ingresosList.size() + " Ingresos");
|
||||
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
|
||||
public int getTotalIngreso(Caja caja) {
|
||||
log.debug("Se intentara conseguir el total de ingreso en la caja " + caja);
|
||||
int total = 0;
|
||||
if (Caja.EMPTY == caja) {
|
||||
log.debug("La caja era Caja.EMPTY");
|
||||
return total;
|
||||
}
|
||||
|
||||
@@ -219,12 +271,21 @@ public class SQLiteIngresoDAO implements IngresoDAO {
|
||||
}
|
||||
}
|
||||
} 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;
|
||||
}
|
||||
|
||||
/**
|
||||
* Obtiene la suma de ingresos en un mes
|
||||
*
|
||||
* @param mes Mes dentro del cual estan los ingresos
|
||||
* @return la suma de los ingresos.
|
||||
*/
|
||||
@Override
|
||||
public int getTotalIngresoMes(YearMonth mes) {
|
||||
log.debug("Se intentara conseguir la suma de los ingreso en el mes " + mes);
|
||||
int total = 0;
|
||||
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";
|
||||
@@ -242,12 +303,21 @@ public class SQLiteIngresoDAO implements IngresoDAO {
|
||||
}
|
||||
}
|
||||
} 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;
|
||||
}
|
||||
|
||||
/**
|
||||
* 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
|
||||
public int getTotalExentasMes(YearMonth mes) {
|
||||
log.debug("Se intentara conseguir el total de boletas exentas en el mes " + mes);
|
||||
int total = 0;
|
||||
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";
|
||||
@@ -264,12 +334,23 @@ public class SQLiteIngresoDAO implements IngresoDAO {
|
||||
}
|
||||
}
|
||||
} 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;
|
||||
}
|
||||
|
||||
/**
|
||||
* 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
|
||||
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;
|
||||
if (caja == Caja.EMPTY) {
|
||||
return total;
|
||||
@@ -286,15 +367,29 @@ public class SQLiteIngresoDAO implements IngresoDAO {
|
||||
}
|
||||
}
|
||||
} 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;
|
||||
}
|
||||
|
||||
/**
|
||||
* 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
|
||||
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;
|
||||
|
||||
if (caja == Caja.EMPTY) {
|
||||
log.debug("La caja era Caja.EMPY");
|
||||
return Optional.ofNullable(nroInicial);
|
||||
}
|
||||
|
||||
@@ -310,14 +405,29 @@ public class SQLiteIngresoDAO implements IngresoDAO {
|
||||
}
|
||||
}
|
||||
} 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);
|
||||
}
|
||||
|
||||
/**
|
||||
* 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
|
||||
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;
|
||||
if (caja == Caja.EMPTY) {
|
||||
log.debug("La caja era Caja.EMPY");
|
||||
return Optional.ofNullable(nroFinal);
|
||||
}
|
||||
|
||||
@@ -333,16 +443,27 @@ public class SQLiteIngresoDAO implements IngresoDAO {
|
||||
}
|
||||
}
|
||||
} 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);
|
||||
}
|
||||
|
||||
/**
|
||||
* 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
|
||||
public Optional<String> getPrimerNroZInicialDeCaja(Caja caja) {
|
||||
log.debug("Se intentara conseguir el primero numero z inicial dentro de la caja " + caja);
|
||||
String nroZInicial = null;
|
||||
|
||||
if (caja == Caja.EMPTY) {
|
||||
log.debug("La caja era Caja.EMPTY");
|
||||
return Optional.ofNullable(nroZInicial);
|
||||
}
|
||||
|
||||
@@ -357,15 +478,25 @@ public class SQLiteIngresoDAO implements IngresoDAO {
|
||||
}
|
||||
}
|
||||
} 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);
|
||||
}
|
||||
|
||||
/**
|
||||
* 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
|
||||
public Optional<String> getUltimoNroZFinalDeCaja(Caja caja) {
|
||||
log.debug("Se intentara conseguir el ultimo numero z final dentro de la caja " + caja);
|
||||
String nroZFinal = null;
|
||||
if (caja == Caja.EMPTY) {
|
||||
log.debug("La caja era Caja.EMPTY");
|
||||
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";
|
||||
@@ -379,13 +510,19 @@ public class SQLiteIngresoDAO implements IngresoDAO {
|
||||
}
|
||||
}
|
||||
} 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);
|
||||
}
|
||||
|
||||
/**
|
||||
* Inserta un ingreso en la base de datos
|
||||
* @param ingreso Ingreso a insertar
|
||||
*/
|
||||
@Override
|
||||
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 (?,?,?,?,?,?,?)";
|
||||
try (Connection conn = connectionHolder.getConnection()) {
|
||||
try (PreparedStatement ps = conn.prepareStatement(query)) {
|
||||
@@ -406,11 +543,18 @@ public class SQLiteIngresoDAO implements IngresoDAO {
|
||||
}
|
||||
}
|
||||
} 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
|
||||
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 = ?";
|
||||
try (Connection conn = connectionHolder.getConnection()) {
|
||||
try (PreparedStatement ps = conn.prepareStatement(query)) {
|
||||
@@ -425,11 +569,18 @@ public class SQLiteIngresoDAO implements IngresoDAO {
|
||||
ps.executeUpdate();
|
||||
}
|
||||
} 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
|
||||
public void delete(Ingreso ingreso) {
|
||||
log.debug("Se intentara eliminar el ingreso " + ingreso);
|
||||
String query = "delete from ingresos where id = ?";
|
||||
try (Connection conn = connectionHolder.getConnection()) {
|
||||
try (PreparedStatement ps = conn.prepareStatement(query)) {
|
||||
@@ -437,6 +588,8 @@ public class SQLiteIngresoDAO implements IngresoDAO {
|
||||
ps.executeUpdate();
|
||||
}
|
||||
} catch (SQLException e) {
|
||||
}
|
||||
log.error("Error al intentar eliminar el ingreso " + ingreso, e);
|
||||
}
|
||||
log.debug("Se elimino el ingreso " + ingreso);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user