limpiado el egresoDAO
This commit is contained in:
@@ -89,7 +89,7 @@ public class EgresosController extends BaseController {
|
|||||||
private void fillEgresosTable() {
|
private void fillEgresosTable() {
|
||||||
EgresosTableModel egresosTableModel = view.getEgresosTableModel();
|
EgresosTableModel egresosTableModel = view.getEgresosTableModel();
|
||||||
egresosTableModel.removeRows();
|
egresosTableModel.removeRows();
|
||||||
for (Egreso egreso : DAOManager.getEgresoDAO().findByCaja(this.caja)) {
|
for (Egreso egreso : DAOManager.getEgresoDAO().getByCaja(this.caja)) {
|
||||||
egresosTableModel.addRow(egreso);
|
egresosTableModel.addRow(egreso);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -24,73 +24,33 @@
|
|||||||
|
|
||||||
package danielcortes.xyz.models.egreso;
|
package danielcortes.xyz.models.egreso;
|
||||||
|
|
||||||
import danielcortes.xyz.data.ConnectionHolder;
|
|
||||||
import danielcortes.xyz.models.caja.Caja;
|
import danielcortes.xyz.models.caja.Caja;
|
||||||
import danielcortes.xyz.models.caja.CajaDAO;
|
|
||||||
import danielcortes.xyz.models.caja.SQLiteCajaDAO;
|
|
||||||
import danielcortes.xyz.models.tipo_egreso.SQLiteTipoEgresoDAO;
|
|
||||||
import danielcortes.xyz.models.tipo_egreso.TipoEgreso;
|
import danielcortes.xyz.models.tipo_egreso.TipoEgreso;
|
||||||
import danielcortes.xyz.models.tipo_egreso.TipoEgresoDAO;
|
|
||||||
import java.sql.ResultSet;
|
|
||||||
import java.sql.SQLException;
|
|
||||||
import java.time.YearMonth;
|
import java.time.YearMonth;
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.logging.Level;
|
import java.util.Optional;
|
||||||
import java.util.logging.Logger;
|
|
||||||
|
|
||||||
public abstract class EgresoDAO {
|
public interface EgresoDAO {
|
||||||
|
List<Egreso> getAll();
|
||||||
|
|
||||||
private static final Logger LOGGER = Logger.getLogger(EgresoDAO.class.getName());
|
Optional<Egreso> getById(int id);
|
||||||
|
|
||||||
protected ConnectionHolder connectionHolder;
|
List<Egreso> getByCaja(Caja caja);
|
||||||
|
|
||||||
public abstract List<Egreso> findAll();
|
List<Egreso> getByNro(String nro);
|
||||||
|
|
||||||
public abstract List<Egreso> findById(int id);
|
List<Egreso> getByTipoEgreso(TipoEgreso tipoEgreso);
|
||||||
|
|
||||||
public abstract List<Egreso> findByCaja(Caja caja);
|
List<Egreso> getByTipoEgresoEnCaja(TipoEgreso tipoEgreso, Caja caja);
|
||||||
|
|
||||||
public abstract List<Egreso> findByNro(String nro);
|
void insertEgreso(Egreso egreso);
|
||||||
|
|
||||||
public abstract List<Egreso> findByTipoEgreso(TipoEgreso tipoEgreso);
|
void updateEgreso(Egreso egreso);
|
||||||
|
|
||||||
public abstract List<Egreso> getByTipoEgresoEnCaja(TipoEgreso tipoEgreso, Caja caja);
|
void deleteEgreso(Egreso egreso);
|
||||||
|
|
||||||
public abstract boolean insertEgreso(Egreso egreso);
|
int getTotalEgreso(Caja caja);
|
||||||
|
|
||||||
public abstract boolean updateEgreso(Egreso egreso);
|
int getTotalEgresoMesPorTipo(YearMonth mes, TipoEgreso tipo);
|
||||||
|
|
||||||
public abstract boolean deleteEgreso(Egreso egreso);
|
|
||||||
|
|
||||||
public abstract int getTotalEgreso(Caja caja);
|
|
||||||
|
|
||||||
public abstract int getTotalEgresoMesPorTipo(YearMonth mes, TipoEgreso tipo);
|
|
||||||
|
|
||||||
List<Egreso> egresosFromResultSet(ResultSet rs) throws SQLException {
|
|
||||||
ArrayList<Egreso> egresoList = new ArrayList<>();
|
|
||||||
while (rs.next()) {
|
|
||||||
int tipoEgresoId = rs.getInt("tipo_egreso_id");
|
|
||||||
TipoEgresoDAO tipoEgresoDAO = new SQLiteTipoEgresoDAO();
|
|
||||||
TipoEgreso tipoEgreso = tipoEgresoDAO.findById(tipoEgresoId).get(0);
|
|
||||||
|
|
||||||
int cajaId = rs.getInt("caja_id");
|
|
||||||
CajaDAO cajaDAO = new SQLiteCajaDAO();
|
|
||||||
Caja caja = cajaDAO.getById(cajaId).get();
|
|
||||||
|
|
||||||
Egreso egreso = new Egreso();
|
|
||||||
|
|
||||||
egreso.setId(rs.getInt("id"));
|
|
||||||
egreso.setNro(rs.getString("nro"));
|
|
||||||
egreso.setDescripcion(rs.getString("descripcion"));
|
|
||||||
egreso.setValor(rs.getInt("valor"));
|
|
||||||
egreso.setTipoEgreso(tipoEgreso);
|
|
||||||
egreso.setCaja(caja);
|
|
||||||
|
|
||||||
LOGGER.log(Level.FINER, "Se a creado: {0}", egreso);
|
|
||||||
|
|
||||||
egresoList.add(egreso);
|
|
||||||
}
|
|
||||||
return egresoList;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -24,9 +24,13 @@
|
|||||||
|
|
||||||
package danielcortes.xyz.models.egreso;
|
package danielcortes.xyz.models.egreso;
|
||||||
|
|
||||||
|
import danielcortes.xyz.data.ConnectionHolder;
|
||||||
|
import danielcortes.xyz.data.DAOManager;
|
||||||
import danielcortes.xyz.data.SQLiteConnectionHolder;
|
import danielcortes.xyz.data.SQLiteConnectionHolder;
|
||||||
import danielcortes.xyz.models.caja.Caja;
|
import danielcortes.xyz.models.caja.Caja;
|
||||||
|
import danielcortes.xyz.models.caja.CajaDAO;
|
||||||
import danielcortes.xyz.models.tipo_egreso.TipoEgreso;
|
import danielcortes.xyz.models.tipo_egreso.TipoEgreso;
|
||||||
|
import danielcortes.xyz.models.tipo_egreso.TipoEgresoDAO;
|
||||||
import java.sql.Connection;
|
import java.sql.Connection;
|
||||||
import java.sql.PreparedStatement;
|
import java.sql.PreparedStatement;
|
||||||
import java.sql.ResultSet;
|
import java.sql.ResultSet;
|
||||||
@@ -35,31 +39,48 @@ import java.time.LocalDate;
|
|||||||
import java.time.YearMonth;
|
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.logging.Level;
|
import java.util.logging.Level;
|
||||||
import java.util.logging.Logger;
|
import java.util.logging.Logger;
|
||||||
|
|
||||||
public class SQLiteEgresoDAO extends EgresoDAO {
|
public class SQLiteEgresoDAO implements EgresoDAO {
|
||||||
|
|
||||||
private static final Logger LOGGER = Logger.getLogger(SQLiteEgresoDAO.class.getName());
|
private static final Logger LOGGER = Logger.getLogger(SQLiteEgresoDAO.class.getName());
|
||||||
|
private ConnectionHolder connectionHolder;
|
||||||
|
|
||||||
public SQLiteEgresoDAO() {
|
public SQLiteEgresoDAO() {
|
||||||
this.connectionHolder = new SQLiteConnectionHolder();
|
this.connectionHolder = new SQLiteConnectionHolder();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<Egreso> findAll() {
|
public List<Egreso> getAll() {
|
||||||
List<Egreso> egresoList = new ArrayList<>();
|
List<Egreso> egresoList = new ArrayList<>();
|
||||||
try (Connection conn = connectionHolder.getConnection()) {
|
|
||||||
String query = "select * from egresos";
|
String query = "select * from egresos";
|
||||||
PreparedStatement ps = conn.prepareStatement(query);
|
try (Connection conn = connectionHolder.getConnection()) {
|
||||||
ResultSet rs = ps.executeQuery();
|
try (PreparedStatement ps = conn.prepareStatement(query)) {
|
||||||
|
try (ResultSet rs = ps.executeQuery()) {
|
||||||
|
TipoEgresoDAO tipoEgresoDAO = DAOManager.getTipoEgresoDAO();
|
||||||
|
CajaDAO cajaDAO = DAOManager.getCajaDAO();
|
||||||
|
|
||||||
LOGGER.log(Level.FINE, "QUERY: {0}", query);
|
while (rs.next()) {
|
||||||
|
TipoEgreso tipoEgreso = tipoEgresoDAO.findById(rs.getInt("tipo_egreso_id")).get(0);
|
||||||
|
|
||||||
egresoList = this.egresosFromResultSet(rs);
|
//Confio en que la base de datos me dara un id existente
|
||||||
|
@SuppressWarnings("OptionalGetWithoutIsPresent")
|
||||||
|
Caja caja = cajaDAO.getById(rs.getInt("caja_id")).get();
|
||||||
|
|
||||||
rs.close();
|
Egreso egreso = new Egreso();
|
||||||
ps.close();
|
egreso.setId(rs.getInt("id"));
|
||||||
|
egreso.setNro(rs.getString("nro"));
|
||||||
|
egreso.setDescripcion(rs.getString("descripcion"));
|
||||||
|
egreso.setValor(rs.getInt("valor"));
|
||||||
|
egreso.setTipoEgreso(tipoEgreso);
|
||||||
|
egreso.setCaja(caja);
|
||||||
|
|
||||||
|
egresoList.add(egreso);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
} catch (SQLException e) {
|
} catch (SQLException e) {
|
||||||
LOGGER.log(Level.SEVERE, e.toString(), e);
|
LOGGER.log(Level.SEVERE, e.toString(), e);
|
||||||
}
|
}
|
||||||
@@ -67,41 +88,68 @@ public class SQLiteEgresoDAO extends EgresoDAO {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<Egreso> findById(int id) {
|
public Optional<Egreso> getById(int id) {
|
||||||
List<Egreso> egresoList = new ArrayList<>();
|
Egreso egreso = null;
|
||||||
try (Connection conn = connectionHolder.getConnection()) {
|
|
||||||
String query = "select * from egresos where id = ?";
|
String query = "select * from egresos where id = ?";
|
||||||
PreparedStatement ps = conn.prepareStatement(query);
|
try (Connection conn = connectionHolder.getConnection()) {
|
||||||
|
try (PreparedStatement ps = conn.prepareStatement(query)) {
|
||||||
ps.setInt(1, id);
|
ps.setInt(1, id);
|
||||||
ResultSet rs = ps.executeQuery();
|
try (ResultSet rs = ps.executeQuery()) {
|
||||||
|
if (rs.next()) {
|
||||||
|
TipoEgresoDAO tipoEgresoDAO = DAOManager.getTipoEgresoDAO();
|
||||||
|
TipoEgreso tipoEgreso = tipoEgresoDAO.findById(rs.getInt("tipo_egreso_id")).get(0);
|
||||||
|
|
||||||
LOGGER.log(Level.FINE, "QUERY: {0} | values: {1}", new Object[]{query, id});
|
CajaDAO cajaDAO = DAOManager.getCajaDAO();
|
||||||
|
//Confio en que la base de datos me dara un id existente
|
||||||
|
@SuppressWarnings("OptionalGetWithoutIsPresent")
|
||||||
|
Caja caja = cajaDAO.getById(rs.getInt("caja_id")).get();
|
||||||
|
|
||||||
egresoList = this.egresosFromResultSet(rs);
|
egreso = new Egreso();
|
||||||
|
egreso.setId(rs.getInt("id"));
|
||||||
rs.close();
|
egreso.setNro(rs.getString("nro"));
|
||||||
ps.close();
|
egreso.setDescripcion(rs.getString("descripcion"));
|
||||||
|
egreso.setValor(rs.getInt("valor"));
|
||||||
|
egreso.setTipoEgreso(tipoEgreso);
|
||||||
|
egreso.setCaja(caja);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
} catch (SQLException e) {
|
} catch (SQLException e) {
|
||||||
LOGGER.log(Level.SEVERE, e.toString(), e);
|
LOGGER.log(Level.SEVERE, e.toString(), e);
|
||||||
}
|
}
|
||||||
return egresoList;
|
return Optional.ofNullable(egreso);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<Egreso> findByCaja(Caja caja) {
|
public List<Egreso> getByCaja(Caja caja) {
|
||||||
List<Egreso> egresoList = new ArrayList<>();
|
List<Egreso> egresoList = new ArrayList<>();
|
||||||
try (Connection conn = connectionHolder.getConnection()) {
|
|
||||||
|
if (Caja.EMPTY == caja) {
|
||||||
|
return egresoList;
|
||||||
|
}
|
||||||
|
|
||||||
String query = "select * from egresos where caja_id = ?";
|
String query = "select * from egresos where caja_id = ?";
|
||||||
PreparedStatement ps = conn.prepareStatement(query);
|
try (Connection conn = connectionHolder.getConnection()) {
|
||||||
|
try (PreparedStatement ps = conn.prepareStatement(query)) {
|
||||||
ps.setInt(1, caja.getId());
|
ps.setInt(1, caja.getId());
|
||||||
ResultSet rs = ps.executeQuery();
|
try (ResultSet rs = ps.executeQuery()) {
|
||||||
|
while (rs.next()) {
|
||||||
|
TipoEgresoDAO tipoEgresoDAO = DAOManager.getTipoEgresoDAO();
|
||||||
|
TipoEgreso tipoEgreso = tipoEgresoDAO.findById(rs.getInt("tipo_egreso_id")).get(0);
|
||||||
|
|
||||||
LOGGER.log(Level.FINE, "QUERY: {0} | values: {1}", new Object[]{query, caja.getId()});
|
Egreso egreso = new Egreso();
|
||||||
|
egreso.setId(rs.getInt("id"));
|
||||||
|
egreso.setNro(rs.getString("nro"));
|
||||||
|
egreso.setDescripcion(rs.getString("descripcion"));
|
||||||
|
egreso.setValor(rs.getInt("valor"));
|
||||||
|
egreso.setTipoEgreso(tipoEgreso);
|
||||||
|
egreso.setCaja(caja);
|
||||||
|
|
||||||
egresoList = this.egresosFromResultSet(rs);
|
egresoList.add(egreso);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
rs.close();
|
|
||||||
ps.close();
|
|
||||||
} catch (SQLException e) {
|
} catch (SQLException e) {
|
||||||
LOGGER.log(Level.SEVERE, e.toString(), e);
|
LOGGER.log(Level.SEVERE, e.toString(), e);
|
||||||
}
|
}
|
||||||
@@ -109,20 +157,34 @@ public class SQLiteEgresoDAO extends EgresoDAO {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<Egreso> findByNro(String nro) {
|
public List<Egreso> getByNro(String nro) {
|
||||||
List<Egreso> egresoList = new ArrayList<>();
|
List<Egreso> egresoList = new ArrayList<>();
|
||||||
try (Connection conn = connectionHolder.getConnection()) {
|
|
||||||
String query = "select * from egresos where nro = ?";
|
String query = "select * from egresos where nro = ?";
|
||||||
PreparedStatement ps = conn.prepareStatement(query);
|
try (Connection conn = connectionHolder.getConnection()) {
|
||||||
|
try (PreparedStatement ps = conn.prepareStatement(query)) {
|
||||||
ps.setString(1, nro);
|
ps.setString(1, nro);
|
||||||
ResultSet rs = ps.executeQuery();
|
try (ResultSet rs = ps.executeQuery()) {
|
||||||
|
TipoEgresoDAO tipoEgresoDAO = DAOManager.getTipoEgresoDAO();
|
||||||
|
CajaDAO cajaDAO = DAOManager.getCajaDAO();
|
||||||
|
|
||||||
LOGGER.log(Level.FINE, "QUERY: {0} | values {1}", new Object[]{query, nro});
|
while (rs.next()) {
|
||||||
|
TipoEgreso tipoEgreso = tipoEgresoDAO.findById(rs.getInt("tipo_egreso_id")).get(0);
|
||||||
|
//Confio en que la base de datos me dara un id existente
|
||||||
|
@SuppressWarnings("OptionalGetWithoutIsPresent")
|
||||||
|
Caja caja = cajaDAO.getById(rs.getInt("caja_id")).get();
|
||||||
|
|
||||||
egresoList = this.egresosFromResultSet(rs);
|
Egreso egreso = new Egreso();
|
||||||
|
egreso.setId(rs.getInt("id"));
|
||||||
|
egreso.setNro(rs.getString("nro"));
|
||||||
|
egreso.setDescripcion(rs.getString("descripcion"));
|
||||||
|
egreso.setValor(rs.getInt("valor"));
|
||||||
|
egreso.setTipoEgreso(tipoEgreso);
|
||||||
|
egreso.setCaja(caja);
|
||||||
|
|
||||||
rs.close();
|
egresoList.add(egreso);
|
||||||
ps.close();
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
} catch (SQLException e) {
|
} catch (SQLException e) {
|
||||||
LOGGER.log(Level.SEVERE, e.toString(), e);
|
LOGGER.log(Level.SEVERE, e.toString(), e);
|
||||||
}
|
}
|
||||||
@@ -130,20 +192,31 @@ public class SQLiteEgresoDAO extends EgresoDAO {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<Egreso> findByTipoEgreso(TipoEgreso tipoEgreso) {
|
public List<Egreso> getByTipoEgreso(TipoEgreso tipoEgreso) {
|
||||||
List<Egreso> egresoList = new ArrayList<>();
|
List<Egreso> egresoList = new ArrayList<>();
|
||||||
try (Connection conn = connectionHolder.getConnection()) {
|
|
||||||
String query = "select * from egresos where tipo_egreso_id = ?";
|
String query = "select * from egresos where tipo_egreso_id = ?";
|
||||||
PreparedStatement ps = conn.prepareStatement(query);
|
try (Connection conn = connectionHolder.getConnection()) {
|
||||||
|
try (PreparedStatement ps = conn.prepareStatement(query)) {
|
||||||
ps.setInt(1, tipoEgreso.getId());
|
ps.setInt(1, tipoEgreso.getId());
|
||||||
ResultSet rs = ps.executeQuery();
|
try (ResultSet rs = ps.executeQuery()) {
|
||||||
|
CajaDAO cajaDAO = DAOManager.getCajaDAO();
|
||||||
|
while (rs.next()) {
|
||||||
|
//Confio en que la base de datos me dara un id existente
|
||||||
|
@SuppressWarnings("OptionalGetWithoutIsPresent")
|
||||||
|
Caja caja = cajaDAO.getById(rs.getInt("caja_id")).get();
|
||||||
|
|
||||||
LOGGER.log(Level.FINE, "QUERY: {0} | values: {1}", new Object[]{query, tipoEgreso.getId()});
|
Egreso egreso = new Egreso();
|
||||||
|
egreso.setId(rs.getInt("id"));
|
||||||
|
egreso.setNro(rs.getString("nro"));
|
||||||
|
egreso.setDescripcion(rs.getString("descripcion"));
|
||||||
|
egreso.setValor(rs.getInt("valor"));
|
||||||
|
egreso.setTipoEgreso(tipoEgreso);
|
||||||
|
egreso.setCaja(caja);
|
||||||
|
|
||||||
egresoList = this.egresosFromResultSet(rs);
|
egresoList.add(egreso);
|
||||||
|
}
|
||||||
rs.close();
|
}
|
||||||
ps.close();
|
}
|
||||||
} catch (SQLException e) {
|
} catch (SQLException e) {
|
||||||
LOGGER.log(Level.SEVERE, e.toString(), e);
|
LOGGER.log(Level.SEVERE, e.toString(), e);
|
||||||
}
|
}
|
||||||
@@ -164,7 +237,17 @@ public class SQLiteEgresoDAO extends EgresoDAO {
|
|||||||
ps.setInt(1, tipoEgreso.getId());
|
ps.setInt(1, tipoEgreso.getId());
|
||||||
ps.setInt(2, caja.getId());
|
ps.setInt(2, caja.getId());
|
||||||
try (ResultSet rs = ps.executeQuery()) {
|
try (ResultSet rs = ps.executeQuery()) {
|
||||||
egresoList = this.egresosFromResultSet(rs);
|
while (rs.next()) {
|
||||||
|
Egreso egreso = new Egreso();
|
||||||
|
egreso.setId(rs.getInt("id"));
|
||||||
|
egreso.setNro(rs.getString("nro"));
|
||||||
|
egreso.setDescripcion(rs.getString("descripcion"));
|
||||||
|
egreso.setValor(rs.getInt("valor"));
|
||||||
|
egreso.setTipoEgreso(tipoEgreso);
|
||||||
|
egreso.setCaja(caja);
|
||||||
|
|
||||||
|
egresoList.add(egreso);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} catch (SQLException e) {
|
} catch (SQLException e) {
|
||||||
@@ -173,100 +256,24 @@ public class SQLiteEgresoDAO extends EgresoDAO {
|
|||||||
return egresoList;
|
return egresoList;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean insertEgreso(Egreso egreso) {
|
|
||||||
int updates;
|
|
||||||
try (Connection conn = connectionHolder.getConnection()) {
|
|
||||||
String query = "insert into egresos (nro, descripcion, valor, tipo_egreso_id, caja_id) values (?,?,?,?,?)";
|
|
||||||
PreparedStatement ps = conn.prepareStatement(query);
|
|
||||||
ps.setString(1, egreso.getNro());
|
|
||||||
ps.setString(2, egreso.getDescripcion());
|
|
||||||
ps.setInt(3, egreso.getValor());
|
|
||||||
ps.setInt(4, egreso.getTipoEgreso().getId());
|
|
||||||
ps.setInt(5, egreso.getCaja().getId());
|
|
||||||
updates = ps.executeUpdate();
|
|
||||||
|
|
||||||
LOGGER.log(Level.FINE, "QUERY: {0} | values: [{1}, {2}, {3}, {4}, {5}] | updates: {6}",
|
|
||||||
new Object[]{query, egreso.getNro(), egreso.getDescripcion(), egreso.getValor(),
|
|
||||||
egreso.getTipoEgreso().getId(), egreso.getCaja().getId(), updates});
|
|
||||||
|
|
||||||
ps.close();
|
|
||||||
|
|
||||||
ps = conn.prepareStatement("select last_insert_rowid()");
|
|
||||||
ResultSet rs = ps.executeQuery();
|
|
||||||
rs.next();
|
|
||||||
egreso.setId(rs.getInt(1));
|
|
||||||
|
|
||||||
rs.close();
|
|
||||||
} catch (SQLException e) {
|
|
||||||
LOGGER.log(Level.SEVERE, e.toString(), e);
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
return updates > 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean updateEgreso(Egreso egreso) {
|
|
||||||
int updates;
|
|
||||||
try (Connection conn = connectionHolder.getConnection()) {
|
|
||||||
String query = "update egresos set nro = ?, descripcion = ?, valor = ?, tipo_egreso_id = ?, caja_id = ? where id = ? ";
|
|
||||||
PreparedStatement ps = conn.prepareStatement(query);
|
|
||||||
ps.setString(1, egreso.getNro());
|
|
||||||
ps.setString(2, egreso.getDescripcion());
|
|
||||||
ps.setInt(3, egreso.getValor());
|
|
||||||
ps.setInt(4, egreso.getTipoEgreso().getId());
|
|
||||||
ps.setInt(5, egreso.getCaja().getId());
|
|
||||||
ps.setInt(6, egreso.getId());
|
|
||||||
updates = ps.executeUpdate();
|
|
||||||
|
|
||||||
LOGGER.log(Level.FINE, "QUERY: {0} | values: [{1}, {2}, {3}, {4}, {5}, {6}] | updates: {7}",
|
|
||||||
new Object[]{query, egreso.getNro(), egreso.getDescripcion(), egreso.getValor(),
|
|
||||||
egreso.getTipoEgreso().getId(), egreso.getCaja().getId(), egreso.getId(), updates});
|
|
||||||
|
|
||||||
ps.close();
|
|
||||||
} catch (SQLException e) {
|
|
||||||
LOGGER.log(Level.SEVERE, e.toString(), e);
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
return updates > 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean deleteEgreso(Egreso egreso) {
|
|
||||||
int updates;
|
|
||||||
try (Connection conn = connectionHolder.getConnection()) {
|
|
||||||
String query = "delete from egresos where id = ? ";
|
|
||||||
PreparedStatement ps = conn.prepareStatement(query);
|
|
||||||
ps.setInt(1, egreso.getId());
|
|
||||||
updates = ps.executeUpdate();
|
|
||||||
|
|
||||||
LOGGER.log(Level.FINE, "QUERY: {0} | values: {1} | updates: {2}",
|
|
||||||
new Object[]{query, egreso.getId(), updates});
|
|
||||||
|
|
||||||
ps.close();
|
|
||||||
} catch (SQLException e) {
|
|
||||||
LOGGER.log(Level.SEVERE, e.toString(), e);
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
return updates > 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int getTotalEgreso(Caja caja) {
|
public int getTotalEgreso(Caja caja) {
|
||||||
int total = 0;
|
int total = 0;
|
||||||
try (Connection conn = connectionHolder.getConnection()) {
|
|
||||||
|
if (Caja.EMPTY == caja) {
|
||||||
|
return total;
|
||||||
|
}
|
||||||
|
|
||||||
String query = "select sum(valor) from egresos where caja_id = ?";
|
String query = "select sum(valor) from egresos where caja_id = ?";
|
||||||
PreparedStatement ps = conn.prepareStatement(query);
|
try (Connection conn = connectionHolder.getConnection()) {
|
||||||
|
try (PreparedStatement ps = conn.prepareStatement(query)) {
|
||||||
ps.setInt(1, caja.getId());
|
ps.setInt(1, caja.getId());
|
||||||
ResultSet rs = ps.executeQuery();
|
try (ResultSet rs = ps.executeQuery()) {
|
||||||
|
if (rs.next()) {
|
||||||
LOGGER.log(Level.FINE, "QUERY: {0} | values: {1}", new Object[]{query, caja.getId()});
|
|
||||||
|
|
||||||
rs.next();
|
|
||||||
total = rs.getInt(1);
|
total = rs.getInt(1);
|
||||||
|
}
|
||||||
rs.close();
|
}
|
||||||
ps.close();
|
}
|
||||||
} catch (SQLException e) {
|
} catch (SQLException e) {
|
||||||
LOGGER.log(Level.SEVERE, e.toString(), e);
|
LOGGER.log(Level.SEVERE, e.toString(), e);
|
||||||
}
|
}
|
||||||
@@ -276,29 +283,78 @@ public class SQLiteEgresoDAO extends EgresoDAO {
|
|||||||
@Override
|
@Override
|
||||||
public int getTotalEgresoMesPorTipo(YearMonth mes, TipoEgreso tipo) {
|
public int getTotalEgresoMesPorTipo(YearMonth mes, TipoEgreso tipo) {
|
||||||
int total = 0;
|
int total = 0;
|
||||||
try (Connection conn = connectionHolder.getConnection()) {
|
|
||||||
LocalDate start = mes.atDay(1);
|
LocalDate start = mes.atDay(1);
|
||||||
LocalDate end = mes.atEndOfMonth();
|
LocalDate end = mes.atEndOfMonth();
|
||||||
String query = "select sum(valor) from egresos inner join caja on (egresos.caja_id = caja.id) where fecha between ? and ? and tipo_egreso_id = ?";
|
String query = "select sum(valor) from egresos inner join caja on (egresos.caja_id = caja.id) where fecha between ? and ? and tipo_egreso_id = ?";
|
||||||
PreparedStatement ps = conn.prepareStatement(query);
|
try (Connection conn = connectionHolder.getConnection()) {
|
||||||
|
try (PreparedStatement ps = conn.prepareStatement(query)) {
|
||||||
ps.setString(1, start.toString());
|
ps.setString(1, start.toString());
|
||||||
ps.setString(2, end.toString());
|
ps.setString(2, end.toString());
|
||||||
ps.setInt(3, tipo.getId());
|
ps.setInt(3, tipo.getId());
|
||||||
ResultSet rs = ps.executeQuery();
|
try (ResultSet rs = ps.executeQuery()) {
|
||||||
|
if (rs.next()) {
|
||||||
LOGGER.log(Level.FINE, "QUERY: {0} | values: {1}, {2}, {3}",
|
|
||||||
new Object[]{query, start, end, tipo});
|
|
||||||
|
|
||||||
rs.next();
|
|
||||||
total = rs.getInt(1);
|
total = rs.getInt(1);
|
||||||
|
}
|
||||||
rs.close();
|
}
|
||||||
ps.close();
|
}
|
||||||
} catch (SQLException e) {
|
} catch (SQLException e) {
|
||||||
LOGGER.log(Level.SEVERE, e.toString(), e);
|
LOGGER.log(Level.SEVERE, e.toString(), e);
|
||||||
}
|
}
|
||||||
return total;
|
return total;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void insertEgreso(Egreso egreso) {
|
||||||
|
String query = "insert into egresos (nro, descripcion, valor, tipo_egreso_id, caja_id) values (?,?,?,?,?)";
|
||||||
|
try (Connection conn = connectionHolder.getConnection()) {
|
||||||
|
try (PreparedStatement ps = conn.prepareStatement(query)) {
|
||||||
|
ps.setString(1, egreso.getNro());
|
||||||
|
ps.setString(2, egreso.getDescripcion());
|
||||||
|
ps.setInt(3, egreso.getValor());
|
||||||
|
ps.setInt(4, egreso.getTipoEgreso().getId());
|
||||||
|
ps.setInt(5, egreso.getCaja().getId());
|
||||||
|
ps.executeUpdate();
|
||||||
|
}
|
||||||
|
try (PreparedStatement ps = conn.prepareStatement("select last_insert_rowid()")) {
|
||||||
|
try (ResultSet rs = ps.executeQuery()) {
|
||||||
|
rs.next();
|
||||||
|
egreso.setId(rs.getInt(1));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} catch (SQLException e) {
|
||||||
|
LOGGER.log(Level.SEVERE, e.toString(), e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void updateEgreso(Egreso egreso) {
|
||||||
|
String query = "update egresos set nro = ?, descripcion = ?, valor = ?, tipo_egreso_id = ?, caja_id = ? where id = ? ";
|
||||||
|
try (Connection conn = connectionHolder.getConnection()) {
|
||||||
|
try (PreparedStatement ps = conn.prepareStatement(query)) {
|
||||||
|
ps.setString(1, egreso.getNro());
|
||||||
|
ps.setString(2, egreso.getDescripcion());
|
||||||
|
ps.setInt(3, egreso.getValor());
|
||||||
|
ps.setInt(4, egreso.getTipoEgreso().getId());
|
||||||
|
ps.setInt(5, egreso.getCaja().getId());
|
||||||
|
ps.setInt(6, egreso.getId());
|
||||||
|
ps.executeUpdate();
|
||||||
|
}
|
||||||
|
} catch (SQLException e) {
|
||||||
|
LOGGER.log(Level.SEVERE, e.toString(), e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void deleteEgreso(Egreso egreso) {
|
||||||
|
String query = "delete from egresos where id = ? ";
|
||||||
|
try (Connection conn = connectionHolder.getConnection()) {
|
||||||
|
try (PreparedStatement ps = conn.prepareStatement(query)) {
|
||||||
|
ps.setInt(1, egreso.getId());
|
||||||
|
ps.executeUpdate();
|
||||||
|
}
|
||||||
|
} catch (SQLException e) {
|
||||||
|
LOGGER.log(Level.SEVERE, e.toString(), e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user