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

import java.sql.ResultSet;
import java.util.HashMap;
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.Combobox;
import org.zkoss.zul.Comboitem;
import org.zkoss.zul.ComboitemRenderer;
import org.zkoss.zul.Datebox;
import org.zkoss.zul.Radio;

import com.rjconsultores.ventaboletos.entidad.ContratoCorporativo;
import com.rjconsultores.ventaboletos.entidad.Empresa;
import com.rjconsultores.ventaboletos.entidad.Parada;
import com.rjconsultores.ventaboletos.enums.DataGeracaoLegalizacaoEnum;
import com.rjconsultores.ventaboletos.enums.EstadoBilheteConsultarEnum;
import com.rjconsultores.ventaboletos.relatorios.impl.RelatorioCorridas;
import com.rjconsultores.ventaboletos.relatorios.impl.RelatorioDetalheContrato;
import com.rjconsultores.ventaboletos.relatorios.utilitarios.Relatorio;
import com.rjconsultores.ventaboletos.web.utilerias.MyGenericForwardComposer;
import com.rjconsultores.ventaboletos.web.utilerias.MyTextbox;
import com.rjconsultores.ventaboletos.web.utilerias.NamedParameterStatement;

@Controller("relatorioDetalheContratoController")
@Scope("prototype")
public class RelatorioDetalheContratoController  extends MyGenericForwardComposer {

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

	private Datebox datInicial;
	private Datebox datFinal;
	private MyTextbox txtNumContrato;
	private Combobox cbxSaldoContrato;
	private Radio rdbCriacao;
	private Radio rdbLegalizacao;
	private Radio rdbFaturado;
	private Radio rdbNaoFaturado;
	private Radio rdbTodos;
	
	@Override
	public void doAfterCompose(Component comp) throws Exception {
		
		super.doAfterCompose(comp);

	}

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

		Map<String, Object> parametros = new HashMap<String, Object>();
		parametros.put("NUMCONTRATO", txtNumContrato.getValue());
		
		if (datInicial.getValue() != null) {
			parametros.put("DATA_DE", new java.sql.Date(((java.util.Date) datInicial.getValue()).getTime()));
		}
		if (datFinal.getValue() != null) {
			parametros.put("DATA_ATE", new java.sql.Date(((java.util.Date) datFinal.getValue()).getTime()));
		}
		parametros.put("GERACAO", rdbCriacao.isChecked() ? DataGeracaoLegalizacaoEnum.GERACAO : DataGeracaoLegalizacaoEnum.LEGALIZACAO);
		parametros.put("ESTADO_BILHETES", rdbFaturado.isChecked() ? EstadoBilheteConsultarEnum.FATURADO : rdbNaoFaturado.isChecked() ? EstadoBilheteConsultarEnum.NAO_FATURADO : EstadoBilheteConsultarEnum.TODOS);

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

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

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