/** * Clase para acceder y operar en la Tabla EstadoCuenta * de la base de datos ZazilDataWareHouse * * @author Hector Rodriguez */ package com.zazil.dwh.app.dao; import com.zazil.dwh.app.model.EstadoCuentaBean; import java.sql.Connection; import java.sql.ResultSet; import java.sql.Statement; import java.util.ArrayList; public class EstadoCuentaDAO extends BaseDAO{ //Resultados de la base de datos private ResultSet resultados; //Lista de los estados de cuenta de la empresa private ArrayList<EstadoCuentaBean> listaEstadosCuenta = new ArrayList<>(); /** * Metodo que obtiene TODOS los estados de cuenta de una empresa * Atencion: Los estados de cuenta se generan al dia, por lo que * esta consulta es muy pero muy pesada, se recomienda ejecutar * las consultas especificas que se encuentran mas abajo!! * * @param rfc * @return */ public ArrayList obtenerEstadosCuentaRFC(String rfc){ //1.- Creamos el query para la base de datos con el parametro a usar StringBuilder query = new StringBuilder("select * from EstadoCuenta where rfcEmpresa = '"); query.append(rfc).append("'"); //2.- Creamos conexion y ejecutamos consulta try(Connection cnx = this.obtenerConexion(); Statement consulta = cnx.createStatement()){ resultados = consulta.executeQuery(query.toString()); while(resultados.next()){ EstadoCuentaBean estadoCuenta = new EstadoCuentaBean(resultados.getString("rfcEmpresa"), resultados.getInt("bancoSISCAM"), resultados.getString("cuenta"), resultados.getString("periodo"), resultados.getLong("saldoInicial"), resultados.getLong("saldoFinal"), resultados.getLong("entradas"), resultados.getLong("salidas")); //Añadimos el estado de cuenta a la lista this.listaEstadosCuenta.add(estadoCuenta); } }catch(Exception ex){ System.out.println("Excepcion: " + ex.getMessage()); } return listaEstadosCuenta; } /** * Este metodo nos devuelve el estado de cuenta de una empresa en un * dia especifico, este se especifica con el parametro periodo. * * por ejemplo si periodo es 20131102, se consulta el estado de cuenta * de la empresa en el dia 2 de noviembre de 2013. * * @param rfc * @param periodo * @return */ //Obtener estado cuenta version 1 es para obtener el estado de cuenta de un dia especifico //Obtener estado cuenta version 2 es para calcular el estado de cuenta de ese dia especifico public ArrayList obtenerEstadoCuenta(String rfc, String periodo){ //En el metodo rfc es un String de 12 caracteres y periodo es un String de 8 caracteres StringBuilder query = new StringBuilder("select * from EstadoCuenta where rfcEmpresa = '"); query.append(rfc).append("' and periodo = '").append(periodo).append("'"); try(Connection cnx = this.obtenerConexion(); Statement consulta = cnx.createStatement()){ resultados = consulta.executeQuery(query.toString()); while(resultados.next()){ EstadoCuentaBean estadoCuenta = new EstadoCuentaBean(resultados.getString("rfcEmpresa"), resultados.getInt("bancoSISCAM"), resultados.getString("cuenta"), resultados.getString("periodo"), resultados.getLong("saldoInicial"), resultados.getLong("saldoFinal"), resultados.getLong("entradas"), resultados.getLong("salidas")); //Añadimos el estado de cuenta a la lista this.listaEstadosCuenta.add(estadoCuenta); } }catch(Exception ex){ System.out.println("Excepcion: " + ex.getMessage()); } return listaEstadosCuenta; } public ArrayList obtenerEstadosCuenta(String rfc, String periodoInicial, String periodoFinal){ //En el metodo rfc es un String de 12 caracteres y los periodos son String de 8 caracteres StringBuilder query = new StringBuilder("select * from EstadoCuenta where rfcEmpresa = '"); query.append(rfc).append("' and periodo between '").append(periodoInicial).append("' and '"); query.append(periodoFinal).append("'"); try(Connection cnx = this.obtenerConexion(); Statement consulta = cnx.createStatement()){ resultados = consulta.executeQuery(query.toString()); while(resultados.next()){ EstadoCuentaBean estadoCuenta = new EstadoCuentaBean(resultados.getString("rfcEmpresa"), resultados.getInt("bancoSISCAM"), resultados.getString("cuenta"), resultados.getString("periodo"), resultados.getLong("saldoInicial"), resultados.getLong("saldoFinal"), resultados.getLong("entradas"), resultados.getLong("salidas")); //Añadimos el estado de cuenta a la lista this.listaEstadosCuenta.add(estadoCuenta); } }catch(Exception ex){ System.out.println("Excepcion: " + ex.getMessage()); } return this.listaEstadosCuenta; } }