/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.rjconsultores.ventaboletos.web.gui.controladores.informes;

import com.rjconsultores.ventaboletos.entidad.PuntoVenta;
import com.rjconsultores.ventaboletos.exception.BusinessException;
import com.rjconsultores.ventaboletos.service.InformeVentasPuntoVentaService;
import com.rjconsultores.ventaboletos.web.utilerias.MyGenericForwardComposer;
import java.io.InputStream;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Controller;
import org.zkoss.util.media.Media;
import org.zkoss.util.resource.Labels;
import org.zkoss.zhtml.Filedownload;
import org.zkoss.zk.ui.event.Event;
import org.zkoss.zul.Combobox;
import org.zkoss.zul.Comboitem;
import org.zkoss.zul.Datebox;
import org.zkoss.zul.Messagebox;

/**
 * 
 * @author Administrador
 */
@Controller("informeVentasPuntoVentaController")
@Scope("prototype")
public class InformeVentasPuntoVentaController extends MyGenericForwardComposer {

	@Autowired
	private InformeVentasPuntoVentaService informeVentasPuntoVentaService;
	private Datebox fecInicio;
	private Datebox fecFinal;
	private Combobox cmbPuntoVenta;

	public Datebox getFecFinal() {
		return fecFinal;
	}

	public void setFecFinal(Datebox fecFinal) {
		this.fecFinal = fecFinal;
	}

	public Datebox getFecInicio() {
		return fecInicio;
	}

	public void setFecInicio(Datebox fecInicio) {
		this.fecInicio = fecInicio;
	}

	public void onClick$btnInforme(Event e) throws InterruptedException {
		PuntoVenta puntoVenta = null;
		Comboitem cbiPuntoVenta = cmbPuntoVenta.getSelectedItem();
		
		if (cbiPuntoVenta != null) {
			puntoVenta = (PuntoVenta) cbiPuntoVenta.getValue();
		}

		Date dataInicio = fecInicio.getValue();
		Date dataFinal = fecFinal.getValue();

		Map argsInforme = new HashMap();
		argsInforme.put("puntoVenta", puntoVenta);
		argsInforme.put("dataInicio", dataInicio);
		argsInforme.put("dataFinal", dataFinal);

		InputStream is = desktop.getWebApp().getResourceAsStream("/gui/informes/ventas_puntoventa/informeVentasPuntoVenta.jasper");

		Media m;
		try {
			m = informeVentasPuntoVentaService.gerarInforme(is, argsInforme);

			Filedownload.save(m);
		} catch (BusinessException ex) {
			Messagebox.show(ex.getLocalizedMessage(), Labels.getLabel("indexController.mnInformes.label"), Messagebox.OK, Messagebox.ERROR);
		}
	}
}
