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

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.zhtml.Messagebox;
import org.zkoss.zk.ui.Component;
import org.zkoss.zk.ui.event.Event;
import org.zkoss.zul.Comboitem;
import org.zkoss.zul.Datebox;
import org.zkoss.zul.Radiogroup;

import com.rjconsultores.ventaboletos.entidad.Empresa;
import com.rjconsultores.ventaboletos.relatorios.impl.RelatorioAcompanhamentoEquivalentes;
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;

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

	private static final long serialVersionUID = 1L;

	@Autowired
	private DataSource dataSourceRead;

	@Autowired
	private EmpresaService empresaService;

	private List<Empresa> lsEmpresa;

	private Datebox datMes;
	private Radiogroup rdGroupIndicador;
	private Radiogroup rdGroupServico;

	private MyComboboxEstandar cmbEmpresa;

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

	/**
	 * @throws Exception
	 * 
	 */
	private void executarRelatorio() throws Exception {
		
//		Messagebox.show(Labels.getLabel("MSG.Error"),
//				Labels.getLabel("relatorioAcompanhamentoEquivalentesController.window.title"),
//				Messagebox.OK, Messagebox.INFORMATION);

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

		parametros.put("DATA_MES", (java.util.Date) this.datMes.getValue());
		parametros.put("NOME_RELATORIO", Labels.getLabel("relatorioAcompanhamentoEquivalentesController.window.title"));
		parametros.put("INDICADOR", Integer.parseInt(rdGroupIndicador.getSelectedItem().getValue()));
		parametros.put("INDICADOR_NOME", rdGroupIndicador.getSelectedItem().getLabel());

		Comboitem itemEmpresa = cmbEmpresa.getSelectedItem();
		if (itemEmpresa != null) {
			Empresa empresa = (Empresa) itemEmpresa.getValue();
			parametros.put("EMPRESA_ID", empresa.getEmpresaId());
			parametros.put("EMPRESA", empresa.getNombempresa());
		}

		if (rdGroupServico.getSelectedItem() != null && !rdGroupServico.getSelectedItem().getValue().equals("-1"))
			parametros.put("TIPOSERVICIO_ID", Integer.parseInt(rdGroupServico.getSelectedItem().getValue()));

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

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

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

	}

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

		super.doAfterCompose(comp);
	}

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

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

}
