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

import java.text.SimpleDateFormat;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.sql.DataSource;

import org.apache.log4j.Logger;
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.zk.ui.event.EventListener;
import org.zkoss.zul.Checkbox;
import org.zkoss.zul.Combobox;
import org.zkoss.zul.Paging;
import org.zkoss.zul.Textbox;
import org.zkoss.zul.api.Datebox;

import com.rjconsultores.ventaboletos.entidad.Cortesia;
import com.rjconsultores.ventaboletos.entidad.Empresa;
import com.rjconsultores.ventaboletos.entidad.MotivoViaje;
import com.rjconsultores.ventaboletos.entidad.PuntoVenta;
import com.rjconsultores.ventaboletos.entidad.TipoCortesia;
import com.rjconsultores.ventaboletos.relatorios.impl.RelatorioAgenciasNaoImportadas;
import com.rjconsultores.ventaboletos.relatorios.impl.RelatorioDepositos;
import com.rjconsultores.ventaboletos.relatorios.utilitarios.Relatorio;
import com.rjconsultores.ventaboletos.service.MotivoViajeService;
import com.rjconsultores.ventaboletos.service.PuntoVentaService;
import com.rjconsultores.ventaboletos.service.TipoCortesiaService;
import com.rjconsultores.ventaboletos.service.impl.CortesiaServiceImpl;
import com.rjconsultores.ventaboletos.web.gui.controladores.relatorios.RelatorioAgenciasNaoImportadasController;
import com.rjconsultores.ventaboletos.web.utilerias.MyGenericForwardComposer;
import com.rjconsultores.ventaboletos.web.utilerias.MyListbox;
import com.rjconsultores.ventaboletos.web.utilerias.paginacion.HibernateSearchObject;
import com.rjconsultores.ventaboletos.web.utilerias.paginacion.PagedListWrapper;
import com.rjconsultores.ventaboletos.web.utilerias.render.RenderCortesia;
import com.trg.search.Filter;

@Controller("relatorioDepositosController")
@Scope("prototype")
public class RelatorioDepositosController extends MyGenericForwardComposer {

	private static final long serialVersionUID = 1L;
	private static Logger log = Logger.getLogger(RelatorioDepositosController.class);
	
	@Autowired
	private PuntoVentaService puntoVentaService;
	@Autowired
	private DataSource dataSourceRead;
	
    private Datebox datInicial;
    private Datebox datFinal;
    private Combobox cmbPuntoventa;
    private Combobox cmbEmpresa;
    private Checkbox chkFiltrarPendentes;
    
	private void executarRelatorio() throws Exception {

		Map<String, Object> parametros = new HashMap<String, Object>();
				
		
		if (cmbPuntoventa.getSelectedIndex() != -1){
			parametros.put("puntoventaId", ((PuntoVenta)cmbPuntoventa.getSelectedItem().getValue()).getPuntoventaId());
		}
		
		if (cmbEmpresa.getSelectedIndex() != -1){
			parametros.put("empresaId", ((Empresa)cmbEmpresa.getSelectedItem().getValue()).getEmpresaId());
		}
		
		if (chkFiltrarPendentes.isChecked()){
			parametros.put("filtrarPendentes", true);
		}
		
		SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
		parametros.put("fecInicio", sdf.format(this.datInicial.getValue()));
		parametros.put("fecFinal", sdf.format(this.datFinal.getValue()));
		
		parametros.put("TITULO", Labels.getLabel("indexController.mniRelatorioDepositos.label"));
				
		Relatorio relatorio = new RelatorioDepositos(parametros, dataSourceRead.getConnection(), "RelatorioDepositos_subreport");

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

		openWindow("/component/reportView.zul",
				Labels.getLabel("indexController.mniRelatorioDepositos.label"), args, MODAL);

	}

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