package javaBB;
import java.io.InputStream;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.HashMap;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.bean.ViewScoped;
import javax.faces.context.FacesContext;
import javax.faces.model.SelectItem;
import javax.swing.JOptionPane;
import persistencia.CheckIn;
import persistencia.Empresa;
import persistencia.Oferta;
import persistencia.Pago;
import persistencia.SitioInteres;
import persistencia.Usuario;
import negocios.GestionAutenticacion;
import negocios.GestionEmpresas;
import negocios.GestionSitioInteres;
import negocios.GestionUsuarios;
import negocios.excepciones.EntidadNoExiste;
@ManagedBean(name = "reporteOferta")
@SessionScoped
public class ReporteOfertaBB {
private boolean exito;
private List<Oferta> ofertas;
private List<DatoReporteOferta> datos;
private int cantDatos;
private Date fechaComienzo;
private Date fechaFin;
@EJB
private GestionSitioInteres gs;
@EJB
private GestionEmpresas ge;
@EJB
private GestionUsuarios gu;
public ReporteOfertaBB() {
System.out.println("ReporteOfertaBB instantiated");
this.exito = true;
}
/* logica y navegaciĆ³n*/
public void generar() {
Calendar cal = null;
Calendar cal2 = null;
if (this.fechaComienzo != null){
cal = Calendar.getInstance();
cal.setTime(this.fechaComienzo);
}
if (this.fechaFin != null){
cal2 = Calendar.getInstance();
cal2.setTime(this.fechaFin);
}
this.datos = new LinkedList<DatoReporteOferta>();
this.ofertas = new LinkedList<Oferta>();
this.ofertas = ge.obenerTodasLasOfertas();
int k = 1;
for(Oferta o : this.ofertas){
DatoReporteOferta dato = new DatoReporteOferta(o.getId(), o.getNombre(), o.getDescripcion(),
(int) ge.obtenerCantPagosDeOferta(o.getId(), cal, cal2), o.getValoracion());
k++;
this.datos.add(dato);
}
this.cantDatos = this.datos.size();
}
public void generarReporte(){
/* try{
gs.generarReporte();
}catch(Exception ex){
ex.printStackTrace();
JOptionPane.showMessageDialog(null,"Se produjo un error al leer el archivo .jasper");
} */
}
public String continuar() {
String retorno = "reporte";
/*List<Usuario> list = gu.buscarUsuario("usuario2");
Usuario user2 = list.get(0);
Oferta oferta = new Oferta();
oferta.setNombre("ganga");
oferta.setDescripcion("desc");
oferta.setCosto(2123);
oferta.setValoracion(valoracion)
GregorianCalendar dia1 = new GregorianCalendar(2012, 01, 25);
GregorianCalendar dia2 = new GregorianCalendar(2012, 05, 26);
GregorianCalendar dia3 = new GregorianCalendar(2012, 07, 27);
Pago pago = new Pago();
pago.setUsuario(user2);
pago.setFecha(dia1);
Pago pago2 = new Pago();
pago2.setUsuario(user2);
pago2.setFecha(dia2);
Pago pago3 = new Pago();
pago3.setUsuario(user2);
pago3.setFecha(dia3);
try {
gu.comprarOferta(user2.getId(), 15, pago);
gu.comprarOferta(user2.getId(), 15, pago2);
gu.comprarOferta(user2.getId(), 15, pago3);
} catch (EntidadNoExiste e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
*/
return "/presentacionAdminSistema/reporteOferta.xhtml";
//return retorno;
}
public String finalizar() {
String retorno = "exito";
FacesContext context = FacesContext.getCurrentInstance();
context.getExternalContext().getSessionMap().remove("reporteOfertaBB");
return retorno;
}
public String cancelar() {
String retorno = "";
//removerBB
retorno = "cancelar";
return retorno;
}
/* setters y getters */
public boolean isExito() {
return exito;
}
public void setExito(boolean exito) {
this.exito = exito;
}
public List<Oferta> getSitios() {
return ofertas;
}
public void setSitios(List<Oferta> ofertas) {
this.ofertas = ofertas;
}
public List<DatoReporteOferta> getDatos() {
generar();
return datos;
}
public void setDatos(List<DatoReporteOferta> datos) {
this.datos = datos;
}
public int getCantDatos() {
return cantDatos;
}
public void setCantDatos(int cantDatos) {
this.cantDatos = cantDatos;
}
public Date getFechaComienzo() {
return fechaComienzo;
}
public void setFechaComienzo(Date fechaComienzo) {
this.fechaComienzo = fechaComienzo;
}
public Date getFechaFin() {
return fechaFin;
}
public void setFechaFin(Date fechaFin) {
this.fechaFin = fechaFin;
}
public List<Oferta> getOfertas() {
return ofertas;
}
public void setOfertas(List<Oferta> ofertas) {
this.ofertas = ofertas;
}
}