/*
* Clase para acceder y operar en la Tabla SAT
* de la base de datos ZazilDataWareHouse.
* @author Ana Martinez
*/
package com.zazil.dwh.app.dao;
import com.zazil.dwh.app.model.SATBean;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.ArrayList;
public class SATDAO extends BaseDAO{
//Resultset de la base de datos
private ResultSet resultados = null;
//Lista de los datos del SAT
/**
* Nota: Declare la lista como un atributo de la clase
* asi se ahorra memoria al no crear una lista nueva
* cada vez que se llame a un metodo.
*/
private ArrayList<SATBean> listaSAT = new ArrayList<>();
public ArrayList<SATBean> obtenerSAT () {
//1. Creamos query con parametro de entrada RFC
StringBuilder query = new StringBuilder ("select * from SAT");
//2.- Creamos conexion y ejecutamos consulta
try(Connection cnx = this.obtenerConexion();
Statement consulta = cnx.createStatement()){
resultados = consulta.executeQuery(query.toString());
//cambio de if por while
while(resultados.next()){
SATBean satBean = new SATBean (resultados.getString("rfcEmpresa"),
resultados.getString("accesoSAT"),
resultados.getString("periodoUltaDecl"),
resultados.getString("periodoUltaDiot"));
listaSAT.add(satBean);
}
}catch(Exception ex){
System.out.println("Excepcion: " + ex.getMessage());
}
return listaSAT;
}
/**
* Metodo: public ArrayList obtenerSATRFC (String rfc)
* Obtiene TODOS los registros de TODOS los periodos de las declaraciones
* de una empresa dada mediante el parametro rfc.
* @param rfc
* @return
*/
public SATBean obtenerSATRFC (String rfc) {
SATBean empresa = null;
//1. Creamos query con parametro de entrada RFC
StringBuilder query = new StringBuilder ("select * from SAT 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());
if(resultados.next()){
empresa = new SATBean (resultados.getString("rfcEmpresa"),
resultados.getString("accesoSAT"),
resultados.getString("periodoUltDecl"),
resultados.getString("periodoUltDiot"));
}
}catch(Exception ex){
System.out.println("Excepcion: " + ex.getMessage());
}
//Regresa el BEAN
return empresa;
}
/**
* Metodo: public ArrayList obtenerSATSC ()
* Obtiene TODOS los registros que no tienen declaraciones.
* @return
*/
public ArrayList obtenerSATSC () {
//1. Creamos query con parametro de entrada RFC
StringBuilder query = new StringBuilder ("select * from SAT where periodoUltDecl IS NULL");
//2.- Creamos conexion y ejecutamos consulta
try(Connection cnx = this.obtenerConexion();
Statement consulta = cnx.createStatement()){
resultados = consulta.executeQuery(query.toString());
while(resultados.next()){
SATBean sat = new SATBean (resultados.getString("rfcEmpresa"),
resultados.getString("accesoSAT"),
resultados.getString("periodoUltDecl"),
resultados.getString("periodoUltDiot"));
//AƱadimos el estado de cuenta a la lista
this.listaSAT.add(sat);
}
}catch(Exception ex){
System.out.println("Excepcion: " + ex.getMessage());
}
return this.listaSAT;
}
/**
* Metodo: public ArrayList obtenerSATMES (MES)
* Obtiene TODOS los registros del ultimo MES declarado
* de una MES dado mediante el parametro MES.
* @param mes
* @return
*/
public ArrayList obtenerSATMes (String mes) {
//1. Creamos query con parametro de entrada RFC
StringBuilder query = new StringBuilder ("select * from SAT where peridoUltDecl = '");
query.append(mes).append("'");
//2.- Creamos conexion y ejecutamos consulta
try(Connection cnx = this.obtenerConexion();
Statement consulta = cnx.createStatement()){
resultados = consulta.executeQuery(query.toString());
while(resultados.next()){
SATBean sat = new SATBean (resultados.getString("rfcEmpresa"),
resultados.getString("accesoSAT"),
resultados.getString("periodoUltDecl"),
resultados.getString("periodoUltDiot"));
//AƱadimos el estado de cuenta a la lista
this.listaSAT.add(sat);
}
}catch(Exception ex){
System.out.println("Excepcion: " + ex.getMessage());
}
return this.listaSAT;
}
}