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

import java.text.SimpleDateFormat;
import java.util.Date;
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.Comboitem;
import org.zkoss.zul.Datebox;

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

@Controller("relatorioVendasPacotesResumidoController")
@Scope("prototype")
public class RelatorioVendasPacotesResumidoController extends MyGenericForwardComposer {

	private static final long serialVersionUID = 1L;
	
	@Autowired
	private DataSource dataSourceRead;
	
	@Autowired
	private EmpresaService empresaService;

	private List<Empresa> lsEmpresa;
	private Datebox dataInicial;
	private Datebox dataFinal;
	private MyComboboxEstandar cmbEmpresa;

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

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

	@Override
	public void doAfterCompose(Component comp) throws Exception {
		lsEmpresa = empresaService.obtenerTodos();
		super.doAfterCompose(comp);
	}

	public void onClick$btnExecutarRelatorio(Event ev) throws Exception {
		SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
		Date dataDe = dataInicial.getValue();
		Date dataAte = dataFinal.getValue();

		Map<String, Object> parametros = new HashMap<String, Object>();
		parametros.put("fecInicio", sdf.format(dataDe));
		parametros.put("fecFinal", sdf.format(dataAte));

		Comboitem cbiEmpresa = cmbEmpresa.getSelectedItem();
		String empresaId = null;
		parametros.put("empresa", "");
		if (cbiEmpresa != null) {
			Empresa empresa = (Empresa) cbiEmpresa.getValue();
			empresaId = empresa.getEmpresaId().toString();
			parametros.put("empresa", empresa.getNombempresa());
		}
		parametros.put("empresaId", empresaId);

		Relatorio relatorio = new RelatorioVendasPacotesResumido(parametros, dataSourceRead.getConnection());

		Map<String, Object> args = new HashMap<String, Object>();
		args.put("relatorio", relatorio);

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

}
