package com.rjconsultores.ventaboletos.web.gui.controladores.relatorios;

import java.sql.Timestamp;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.sql.DataSource;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Controller;
import org.zkoss.util.resource.Labels;
import org.zkoss.zk.ui.Component;
import org.zkoss.zk.ui.event.Event;
import org.zkoss.zul.Datebox;

import com.rjconsultores.ventaboletos.entidad.Empresa;
import com.rjconsultores.ventaboletos.relatorios.impl.RelatorioServicoBloqueadoVendaInternet;
import com.rjconsultores.ventaboletos.relatorios.impl.RelatorioVendasPTA;
import com.rjconsultores.ventaboletos.relatorios.utilitarios.Relatorio;
import com.rjconsultores.ventaboletos.service.EmpresaService;
import com.rjconsultores.ventaboletos.utilerias.DateUtil;
import com.rjconsultores.ventaboletos.web.utilerias.MyComboboxEstandar;
import com.rjconsultores.ventaboletos.web.utilerias.MyGenericForwardComposer;

@Controller("relatorioServicoBloqueadoVendaInternetController")
@Scope("prototype")
public class RelatorioServicoBloqueadoVendaInternetController extends MyGenericForwardComposer {

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	@Autowired
	private EmpresaService empresaService;
	private List<Empresa> lsEmpresa;
	private MyComboboxEstandar cmbEmpresa;

	private Datebox datInicial;
	private Datebox datFinal;
	@Autowired
	private DataSource dataSourceRead;

	@Override
	public void doAfterCompose(Component comp) throws Exception {

		super.doAfterCompose(comp);
		lsEmpresa = empresaService.obtenerTodos();
	}

	@SuppressWarnings({ "rawtypes", "unchecked" })
	private void executarRelatorio() throws Exception {
		Relatorio relatorio;

		Map<String, Object> parametros = new HashMap<String, Object>();

		Timestamp dataInicio = new Timestamp((DateUtil.inicioFecha((java.util.Date) this.datInicial.getValue()).getTime()));
		Timestamp dataFinal = new Timestamp((DateUtil.fimFecha((java.util.Date) this.datFinal.getValue()).getTime()));

		parametros.put("DATA_INICIAL", dataInicio);
		parametros.put("DATA_FINAL", dataFinal);

		Empresa empresa = (Empresa) cmbEmpresa.getSelectedItem().getValue();
		parametros.put("EMPRESA", empresa);
		parametros.put("NOME_EMPRESA", empresa.getNombempresa());
		parametros.put("TITULO", Labels.getLabel("relatorioServicoBloqueadoVendaInternetController.window.title"));

		relatorio = new RelatorioServicoBloqueadoVendaInternet(parametros, dataSourceRead.getConnection());

		Map args = new HashMap();
		args.put("relatorio", relatorio);

		openWindow("/component/reportView.zul",
				Labels.getLabel("relatorioServicoBloqueadoVendaInternetController.window.title"), args, MODAL);
	}

	public void onClick$btnExecutarRelatorio(Event ev) throws Exception {
		executarRelatorio();
	}

	public List<Empresa> getLsEmpresa() {
		return lsEmpresa;
	}

	public void setLsEmpresa(List<Empresa> lsEmpresa) {
		this.lsEmpresa = lsEmpresa;
	}

}
