reescrito estadoResultadoDAO

This commit is contained in:
Daniel Cortes
2019-03-07 17:03:51 -03:00
parent 9c0765b81f
commit 95d06a8c5b
4 changed files with 175 additions and 204 deletions

View File

@@ -138,7 +138,7 @@ public class EstadoResultadoController extends BaseController {
private void updateMonth() { private void updateMonth() {
this.mes = this.view.getMonth(); this.mes = this.view.getMonth();
this.estadoResultado = DAOManager.getEstadoResultadoDAO().findByMonth(this.mes); this.estadoResultado = DAOManager.getEstadoResultadoDAO().getByMonth(this.mes);
if (estadoResultado == null) { if (estadoResultado == null) {
this.estadoResultado = EstadoResultado.emptyEstadoResultado; this.estadoResultado = EstadoResultado.emptyEstadoResultado;
this.estadoResultado.setMes(this.mes); this.estadoResultado.setMes(this.mes);

View File

@@ -53,7 +53,7 @@ public class InformeEstadoResultado {
this.mes = mes; this.mes = mes;
this.saveFile = saveFile; this.saveFile = saveFile;
this.estadoResultado = DAOManager.getEstadoResultadoDAO().findByMonth(this.mes); this.estadoResultado = DAOManager.getEstadoResultadoDAO().getByMonth(this.mes);
this.wb = new HSSFWorkbook(); this.wb = new HSSFWorkbook();
this.sheet = wb.createSheet(); this.sheet = wb.createSheet();

View File

@@ -1,58 +1,21 @@
package danielcortes.xyz.models.estado_resultado; package danielcortes.xyz.models.estado_resultado;
import danielcortes.xyz.models.egreso.EgresoDAO;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.time.LocalDate;
import java.time.YearMonth; import java.time.YearMonth;
import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.logging.Logger; import java.util.Optional;
public abstract class EstadoResultadoDAO { public interface EstadoResultadoDAO {
protected static final Logger LOGGER = Logger.getLogger(EgresoDAO.class.getName()); List<EstadoResultado> getAll();
Optional<EstadoResultado> getById(int id);
public abstract List<EstadoResultado> findAll(); Optional<EstadoResultado> getByMonth(YearMonth month);
public abstract EstadoResultado findById(int id); void insertEstadoResultado(EstadoResultado estadoResultado);
public abstract EstadoResultado findByMonth(YearMonth month); void updateEstadoResultado(EstadoResultado estadoResultado);
public abstract boolean insertEstadoResultado(EstadoResultado estadoResultado); void deleteEstadoResultado(EstadoResultado estadoResultado);
public abstract boolean updateEstadoResultado(EstadoResultado estadoResultado);
public abstract boolean deleteEstadoResultado(EstadoResultado estadoResultado);
List<EstadoResultado> estadoResultadosFromResultSet(ResultSet rs) throws SQLException {
List<EstadoResultado> estadoResultadoList = new ArrayList<>();
while (rs.next()) {
EstadoResultado estadoResultado = new EstadoResultado();
estadoResultado.setId(rs.getInt("id"));
estadoResultado.setMes(YearMonth.from(LocalDate.parse(rs.getString("mes"))));
estadoResultado.setCostoVenta(rs.getInt("costo_venta"));
estadoResultado.setCuentaCorrienteFactura(rs.getInt("cuenta_corriente_factura"));
estadoResultado.setCuentaCorrienteBoleta(rs.getInt("cuenta_corriente_boleta"));
estadoResultado.setCuentaCorrienteSinRespaldo(rs.getInt("cuenta_corriente_sin_respaldo"));
estadoResultado.setRemuneraciones(rs.getInt("remuneraciones"));
estadoResultado.setFiniquitos(rs.getInt("finiquitos"));
estadoResultado.setAguinaldo(rs.getInt("aguinaldo"));
estadoResultado.setBonosPersonal(rs.getInt("bonos_personal"));
estadoResultado.setHonorariosContador(rs.getInt("honorarios_contador"));
estadoResultado.setArriendo(rs.getInt("arriendo"));
estadoResultado.setAgua(rs.getInt("agua"));
estadoResultado.setLuz(rs.getInt("luz"));
estadoResultado.setGas(rs.getInt("gas"));
estadoResultado.setTelefono(rs.getInt("telefono"));
estadoResultado.setOtroServicio(rs.getInt("otro_servicio"));
estadoResultado.setPpm(rs.getDouble("ppm"));
estadoResultado.setIvaFavor(rs.getInt("ivaFavor"));
estadoResultadoList.add(estadoResultado);
}
return estadoResultadoList;
}
} }

View File

@@ -5,12 +5,17 @@ import java.sql.Connection;
import java.sql.PreparedStatement; import java.sql.PreparedStatement;
import java.sql.ResultSet; import java.sql.ResultSet;
import java.sql.SQLException; import java.sql.SQLException;
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;
public class SQLiteEstadoResultadoDAO extends EstadoResultadoDAO { public class SQLiteEstadoResultadoDAO implements EstadoResultadoDAO {
private static final Logger LOGGER = Logger.getLogger(SQLiteEstadoResultadoDAO.class.getName());
private SQLiteConnectionHolder connectionHolder; private SQLiteConnectionHolder connectionHolder;
@@ -19,19 +24,37 @@ public class SQLiteEstadoResultadoDAO extends EstadoResultadoDAO {
} }
@Override @Override
public List<EstadoResultado> findAll() { public List<EstadoResultado> getAll() {
List<EstadoResultado> estadoResultadoList = new ArrayList<>(); List<EstadoResultado> estadoResultadoList = new ArrayList<>();
try (Connection conn = connectionHolder.getConnection()) {
String query = "select * from estado_resultado"; String query = "select * from estado_resultado";
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()) {
LOGGER.log(Level.FINE, "QUERY: {0}", new Object[]{query}); while (rs.next()) {
EstadoResultado estadoResultado = new EstadoResultado();
estadoResultadoList = this.estadoResultadosFromResultSet(rs); estadoResultado.setId(rs.getInt("id"));
estadoResultado.setMes(YearMonth.from(LocalDate.parse(rs.getString("mes"))));
rs.close(); estadoResultado.setCostoVenta(rs.getInt("costo_venta"));
ps.close(); estadoResultado.setCuentaCorrienteFactura(rs.getInt("cuenta_corriente_factura"));
estadoResultado.setCuentaCorrienteBoleta(rs.getInt("cuenta_corriente_boleta"));
estadoResultado
.setCuentaCorrienteSinRespaldo(rs.getInt("cuenta_corriente_sin_respaldo"));
estadoResultado.setRemuneraciones(rs.getInt("remuneraciones"));
estadoResultado.setFiniquitos(rs.getInt("finiquitos"));
estadoResultado.setAguinaldo(rs.getInt("aguinaldo"));
estadoResultado.setBonosPersonal(rs.getInt("bonos_personal"));
estadoResultado.setHonorariosContador(rs.getInt("honorarios_contador"));
estadoResultado.setArriendo(rs.getInt("arriendo"));
estadoResultado.setAgua(rs.getInt("agua"));
estadoResultado.setLuz(rs.getInt("luz"));
estadoResultado.setGas(rs.getInt("gas"));
estadoResultado.setTelefono(rs.getInt("telefono"));
estadoResultado.setOtroServicio(rs.getInt("otro_servicio"));
estadoResultado.setPpm(rs.getDouble("ppm"));
estadoResultado.setIvaFavor(rs.getInt("ivaFavor"));
}
}
}
} catch (SQLException e) { } catch (SQLException e) {
LOGGER.log(Level.SEVERE, e.toString(), e); LOGGER.log(Level.SEVERE, e.toString(), e);
} }
@@ -39,57 +62,89 @@ public class SQLiteEstadoResultadoDAO extends EstadoResultadoDAO {
} }
@Override @Override
public EstadoResultado findById(int id) { public Optional<EstadoResultado> getById(int id) {
EstadoResultado estadoResultado = null; EstadoResultado estadoResultado = null;
try (Connection conn = connectionHolder.getConnection()) {
String query = "select * from estado_resultado where id = ?"; String query = "select * from estado_resultado 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()) {
LOGGER.log(Level.FINE, "QUERY: {0} | values: {1}", new Object[]{query, id}); estadoResultado = new EstadoResultado();
estadoResultado.setId(rs.getInt("id"));
estadoResultado = this.estadoResultadosFromResultSet(rs).get(0); estadoResultado.setMes(YearMonth.from(LocalDate.parse(rs.getString("mes"))));
estadoResultado.setCostoVenta(rs.getInt("costo_venta"));
rs.close(); estadoResultado.setCuentaCorrienteFactura(rs.getInt("cuenta_corriente_factura"));
ps.close(); estadoResultado.setCuentaCorrienteBoleta(rs.getInt("cuenta_corriente_boleta"));
estadoResultado
.setCuentaCorrienteSinRespaldo(rs.getInt("cuenta_corriente_sin_respaldo"));
estadoResultado.setRemuneraciones(rs.getInt("remuneraciones"));
estadoResultado.setFiniquitos(rs.getInt("finiquitos"));
estadoResultado.setAguinaldo(rs.getInt("aguinaldo"));
estadoResultado.setBonosPersonal(rs.getInt("bonos_personal"));
estadoResultado.setHonorariosContador(rs.getInt("honorarios_contador"));
estadoResultado.setArriendo(rs.getInt("arriendo"));
estadoResultado.setAgua(rs.getInt("agua"));
estadoResultado.setLuz(rs.getInt("luz"));
estadoResultado.setGas(rs.getInt("gas"));
estadoResultado.setTelefono(rs.getInt("telefono"));
estadoResultado.setOtroServicio(rs.getInt("otro_servicio"));
estadoResultado.setPpm(rs.getDouble("ppm"));
estadoResultado.setIvaFavor(rs.getInt("ivaFavor"));
}
}
}
} catch (SQLException e) { } catch (SQLException e) {
LOGGER.log(Level.SEVERE, e.toString(), e); LOGGER.log(Level.SEVERE, e.toString(), e);
} }
return estadoResultado; return Optional.ofNullable(estadoResultado);
} }
@Override @Override
public EstadoResultado findByMonth(YearMonth month) { public Optional<EstadoResultado> getByMonth(YearMonth month) {
EstadoResultado estadoResultado = null; EstadoResultado estadoResultado = null;
try (Connection conn = connectionHolder.getConnection()) {
String query = "select * from estado_resultado where mes = ?"; String query = "select * from estado_resultado where mes = ?";
PreparedStatement ps = conn.prepareStatement(query); try (Connection conn = connectionHolder.getConnection()) {
try (PreparedStatement ps = conn.prepareStatement(query)) {
ps.setString(1, month.atDay(1).toString()); ps.setString(1, month.atDay(1).toString());
ResultSet rs = ps.executeQuery(); try (ResultSet rs = ps.executeQuery()) {
if (rs.next()) {
LOGGER.log(Level.FINE, "QUERY: {0} | values: {1}", new Object[]{query, month}); estadoResultado = new EstadoResultado();
estadoResultado.setId(rs.getInt("id"));
List<EstadoResultado> estadosResultado = this.estadoResultadosFromResultSet(rs); estadoResultado.setMes(YearMonth.from(LocalDate.parse(rs.getString("mes"))));
if (estadosResultado.size() > 0) { estadoResultado.setCostoVenta(rs.getInt("costo_venta"));
estadoResultado = estadosResultado.get(0); estadoResultado.setCuentaCorrienteFactura(rs.getInt("cuenta_corriente_factura"));
estadoResultado.setCuentaCorrienteBoleta(rs.getInt("cuenta_corriente_boleta"));
estadoResultado
.setCuentaCorrienteSinRespaldo(rs.getInt("cuenta_corriente_sin_respaldo"));
estadoResultado.setRemuneraciones(rs.getInt("remuneraciones"));
estadoResultado.setFiniquitos(rs.getInt("finiquitos"));
estadoResultado.setAguinaldo(rs.getInt("aguinaldo"));
estadoResultado.setBonosPersonal(rs.getInt("bonos_personal"));
estadoResultado.setHonorariosContador(rs.getInt("honorarios_contador"));
estadoResultado.setArriendo(rs.getInt("arriendo"));
estadoResultado.setAgua(rs.getInt("agua"));
estadoResultado.setLuz(rs.getInt("luz"));
estadoResultado.setGas(rs.getInt("gas"));
estadoResultado.setTelefono(rs.getInt("telefono"));
estadoResultado.setOtroServicio(rs.getInt("otro_servicio"));
estadoResultado.setPpm(rs.getDouble("ppm"));
estadoResultado.setIvaFavor(rs.getInt("ivaFavor"));
} }
}
rs.close(); }
ps.close(); } catch (
} catch (SQLException e) { SQLException e) {
LOGGER.log(Level.SEVERE, e.toString(), e); LOGGER.log(Level.SEVERE, e.toString(), e);
} }
return estadoResultado; return Optional.ofNullable(estadoResultado);
} }
@Override @Override
public boolean insertEstadoResultado(EstadoResultado estadoResultado) { public void insertEstadoResultado(EstadoResultado estadoResultado) {
int updates;
try (Connection conn = connectionHolder.getConnection()) {
String query = "insert into estado_resultado (mes, costo_venta, cuenta_corriente_factura, cuenta_corriente_boleta, cuenta_corriente_sin_respaldo, remuneraciones, finiquitos, aguinaldo, bonos_personal, honorarios_contador, arriendo, agua, luz, gas, telefono, otro_servicio, ppm, ivaFavor) values (?, ?, ?, ?, ?, ? , ?, ? , ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"; String query = "insert into estado_resultado (mes, costo_venta, cuenta_corriente_factura, cuenta_corriente_boleta, cuenta_corriente_sin_respaldo, remuneraciones, finiquitos, aguinaldo, bonos_personal, honorarios_contador, arriendo, agua, luz, gas, telefono, otro_servicio, ppm, ivaFavor) values (?, ?, ?, ?, ?, ? , ?, ? , ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";
PreparedStatement ps = conn.prepareStatement(query); try (Connection conn = connectionHolder.getConnection()) {
try (PreparedStatement ps = conn.prepareStatement(query)) {
ps.setString(1, estadoResultado.getMes().atDay(1).toString()); ps.setString(1, estadoResultado.getMes().atDay(1).toString());
ps.setInt(2, estadoResultado.getCostoVenta()); ps.setInt(2, estadoResultado.getCostoVenta());
ps.setInt(3, estadoResultado.getCuentaCorrienteFactura()); ps.setInt(3, estadoResultado.getCuentaCorrienteFactura());
@@ -109,48 +164,24 @@ public class SQLiteEstadoResultadoDAO extends EstadoResultadoDAO {
ps.setDouble(17, estadoResultado.getPpm()); ps.setDouble(17, estadoResultado.getPpm());
ps.setDouble(18, estadoResultado.getIvaFavor()); ps.setDouble(18, estadoResultado.getIvaFavor());
updates = ps.executeUpdate(); ps.executeUpdate();
}
LOGGER.log(Level.FINE, try (PreparedStatement ps = conn.prepareStatement("select last_insert_rowid()")) {
"QUERY: {0} | values: [{1},{2},{3},{4},{5},{6},{7},{8},{9},{10}, {11}, {12}, {13}, {14}, {15}, {16}, {17}, {18}] | updates: {19}", try (ResultSet rs = ps.executeQuery()) {
new Object[]{query, estadoResultado.getMes(), estadoResultado.getCostoVenta(),
estadoResultado.getCuentaCorrienteFactura(),
estadoResultado.getCuentaCorrienteBoleta(),
estadoResultado.getCuentaCorrienteSinRespaldo(), estadoResultado.getRemuneraciones(),
estadoResultado.getFiniquitos(), estadoResultado.getAguinaldo(),
estadoResultado.getBonosPersonal(), estadoResultado.getHonorariosContador(),
estadoResultado.getArriendo(), estadoResultado.getAgua(), estadoResultado.getLuz(),
estadoResultado.getGas(), estadoResultado.getTelefono(),
estadoResultado.getOtroServicio(), estadoResultado.getPpm(),
estadoResultado.getIvaFavor(), updates});
ps.close();
query = "select last_insert_rowid()";
ps = conn.prepareStatement(query);
ResultSet rs = ps.executeQuery();
LOGGER.log(Level.FINE, "QUERY: {0}", query);
rs.next(); rs.next();
estadoResultado.setId(rs.getInt(1)); estadoResultado.setId(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 false;
} }
return updates > 0;
} }
@Override @Override
public boolean updateEstadoResultado(EstadoResultado estadoResultado) { public void updateEstadoResultado(EstadoResultado estadoResultado) {
int updates;
try (Connection conn = connectionHolder.getConnection()) {
String query = "update estado_resultado set mes = ?, costo_venta = ?, cuenta_corriente_factura = ?, cuenta_corriente_boleta = ?, cuenta_corriente_sin_respaldo = ?, remuneraciones = ?, finiquitos = ?, aguinaldo = ?, bonos_personal = ?, honorarios_contador = ?, arriendo = ?, agua = ?, luz = ?, gas = ?, telefono = ?, otro_servicio = ?, ppm = ?, ivaFavor = ? where id = ?"; String query = "update estado_resultado set mes = ?, costo_venta = ?, cuenta_corriente_factura = ?, cuenta_corriente_boleta = ?, cuenta_corriente_sin_respaldo = ?, remuneraciones = ?, finiquitos = ?, aguinaldo = ?, bonos_personal = ?, honorarios_contador = ?, arriendo = ?, agua = ?, luz = ?, gas = ?, telefono = ?, otro_servicio = ?, ppm = ?, ivaFavor = ? where id = ?";
PreparedStatement ps = conn.prepareStatement(query); try (Connection conn = connectionHolder.getConnection()) {
try (PreparedStatement ps = conn.prepareStatement(query)) {
ps.setString(1, estadoResultado.getMes().atDay(1).toString()); ps.setString(1, estadoResultado.getMes().atDay(1).toString());
ps.setInt(2, estadoResultado.getCostoVenta()); ps.setInt(2, estadoResultado.getCostoVenta());
ps.setInt(3, estadoResultado.getCuentaCorrienteFactura()); ps.setInt(3, estadoResultado.getCuentaCorrienteFactura());
@@ -171,46 +202,23 @@ public class SQLiteEstadoResultadoDAO extends EstadoResultadoDAO {
ps.setDouble(18, estadoResultado.getIvaFavor()); ps.setDouble(18, estadoResultado.getIvaFavor());
ps.setInt(19, estadoResultado.getId()); ps.setInt(19, estadoResultado.getId());
updates = ps.executeUpdate(); ps.executeUpdate();
}
LOGGER.log(Level.FINE,
"QUERY: {0} | values: [{1},{2},{3},{4},{5},{6},{7},{8},{9},{10}, {11}, {12}, {13}, {14}, {15}, {16}, {17}, {18}, {19}] | updates: {20}",
new Object[]{query, estadoResultado.getMes(), estadoResultado.getCostoVenta(),
estadoResultado.getCuentaCorrienteFactura(),
estadoResultado.getCuentaCorrienteBoleta(),
estadoResultado.getCuentaCorrienteSinRespaldo(), estadoResultado.getRemuneraciones(),
estadoResultado.getFiniquitos(), estadoResultado.getAguinaldo(),
estadoResultado.getBonosPersonal(), estadoResultado.getHonorariosContador(),
estadoResultado.getArriendo(), estadoResultado.getAgua(), estadoResultado.getLuz(),
estadoResultado.getGas(), estadoResultado.getTelefono(),
estadoResultado.getOtroServicio(), estadoResultado.getPpm(),
estadoResultado.getIvaFavor(), estadoResultado.getId(), updates});
ps.close();
} catch (SQLException e) { } catch (SQLException e) {
LOGGER.log(Level.SEVERE, e.toString(), e); LOGGER.log(Level.SEVERE, e.toString(), e);
return false;
} }
return updates > 0;
} }
@Override @Override
public boolean deleteEstadoResultado(EstadoResultado estadoResultado) { public void deleteEstadoResultado(EstadoResultado estadoResultado) {
int updates;
try (Connection conn = connectionHolder.getConnection()) {
String query = "delete from estado_resultado where id = ?"; String query = "delete from estado_resultado where id = ?";
PreparedStatement ps = conn.prepareStatement(query); try (Connection conn = connectionHolder.getConnection()) {
try (PreparedStatement ps = conn.prepareStatement(query)) {
ps.setInt(1, estadoResultado.getId()); ps.setInt(1, estadoResultado.getId());
updates = ps.executeUpdate(); ps.executeUpdate();
}
LOGGER.log(Level.FINE, "QUERY: {0} | values: {1} | updates: {2}",
new Object[]{query, estadoResultado.getId(), updates});
ps.close();
} catch (SQLException e) { } catch (SQLException e) {
LOGGER.log(Level.SEVERE, e.toString(), e); LOGGER.log(Level.SEVERE, e.toString(), e);
return false;
} }
return updates > 0;
} }
} }