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

import java.util.ArrayList;
import java.util.List;

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.Checkbox;
import org.zkoss.zul.Comboitem;

import com.rjconsultores.ventaboletos.entidad.PuntoVenta;
import com.rjconsultores.ventaboletos.service.MigracaoControleEstoqueService;
import com.rjconsultores.ventaboletos.service.PuntoVentaService;
import com.rjconsultores.ventaboletos.web.utilerias.MyComboboxPuntoVenta;
import com.rjconsultores.ventaboletos.web.utilerias.MyGenericForwardComposer;

@Controller("movimentacionBilhetesMigracaoController")
@Scope("prototype")
public class MovimentacionBilhetesMigracaoController extends MyGenericForwardComposer {

	@Autowired
	private MigracaoControleEstoqueService migracaoControleEstoqueService;
	
	@Autowired
	private PuntoVentaService puntoVentaService;
		
	private List<PuntoVenta> lsPuntoVenta;
	private MyComboboxPuntoVenta cmbPuntoVenta;
	
	private Checkbox checkHabilitaEstCentral;

	@Override
	public void doAfterCompose(Component comp) throws Exception {
		
		setLsPuntoVenta(new ArrayList<PuntoVenta>());

		super.doAfterCompose(comp);
		
	}
	
	public void onClick$btnSalvar(Event ev) throws InterruptedException {
		
		cmbPuntoVenta.getValue();
		
		try{
			
			Comboitem puntoVentaSeleccionada = cmbPuntoVenta.getSelectedItem();
			PuntoVenta puntoVenta = (PuntoVenta)puntoVentaSeleccionada.getValue();
			puntoVenta.setUsaCrtlEstCentral(checkHabilitaEstCentral.isChecked());
			
			migracaoControleEstoqueService.migraDadosBoletosPuntoVenta(puntoVenta);
									
			Messagebox.show(
					Labels.getLabel("movimentacionBilhetesMigracaoController.MSG.suscribirOK"),
					Labels.getLabel("movimentacionBilhetesController.window.title"),
					Messagebox.OK, Messagebox.INFORMATION);
			
		} catch (Exception ex) {
			
			String msgError = ex.getMessage();
			if(msgError == null)
				msgError = Labels.getLabel("MSG.Error");
			
			Messagebox.show(
					msgError,
					Labels.getLabel("movimentacionBilhetesController.window.title"),
					Messagebox.OK, Messagebox.ERROR);
		}
	}

	public void onChange$cmbPuntoVenta(Event ev) {
		Comboitem cbiPuntoVenta = cmbPuntoVenta.getSelectedItem();
		if (cbiPuntoVenta != null) {
			PuntoVenta puntoVenta = (PuntoVenta) cbiPuntoVenta.getValue();
			checkHabilitaEstCentral.setChecked(puntoVenta.isUsaCrtlEstCentral() != null && puntoVenta.isUsaCrtlEstCentral());
		}
	}
	
	public List<PuntoVenta> getLsPuntoVenta() {
		return lsPuntoVenta;
	}


	public void setLsPuntoVenta(List<PuntoVenta> lsPuntoVenta) {
		this.lsPuntoVenta = lsPuntoVenta;
	}
}
