/**
 * 
 */
package com.rjconsultores.ventaboletos.web.gui.controladores.tarifas;

import java.util.List;

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.Executions;
import org.zkoss.zk.ui.event.Event;
import org.zkoss.zul.Checkbox;
import org.zkoss.zul.Combobox;
import org.zkoss.zul.Comboitem;
import org.zkoss.zul.Datebox;
import org.zkoss.zul.Intbox;

import com.rjconsultores.ventaboletos.entidad.Parada;
import com.rjconsultores.ventaboletos.entidad.PrecioVentaja;
import com.rjconsultores.ventaboletos.entidad.Ruta;
import com.rjconsultores.ventaboletos.exception.BusinessException;
import com.rjconsultores.ventaboletos.service.PrecioVentajaService;
import com.rjconsultores.ventaboletos.service.RutaService;
import com.rjconsultores.ventaboletos.web.utilerias.MyComboboxParada;
import com.rjconsultores.ventaboletos.web.utilerias.MyGenericForwardComposer;
import com.rjconsultores.ventaboletos.web.utilerias.MyListbox;

/**
 * @author Igor
 *
 */
@Controller("editarPrecioVentajaController")
@Scope("prototype")
public class EditarPrecioVentajaController extends MyGenericForwardComposer {

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;	
	
	@Autowired
	private PrecioVentajaService precioVentajaService;
	@Autowired
	private RutaService rutaService;
	
	private PrecioVentaja precioVentaja;	
	private Intbox itxCorrida;
	private Combobox cmbRutaOriginal;
	private Combobox cmbRutaPrecio;
    private Checkbox chkPrefixoOrigem;	
	private MyComboboxParada cmbParadaOrigem;
	private MyComboboxParada cmbParadaDestino;	
	private MyComboboxParada cmbOrigemPrecoCopiado;
	private MyComboboxParada cmbParadaDestinoCopiado;
	private Datebox dtVigorIni;
	private Datebox dtVigorFim;
	private List<Ruta> lsRuta;	
    private MyListbox precioVentajaList;
	private static Logger log = Logger.getLogger(EditarPrecioVentajaController.class);
	
	public void onClick$btnSalvar(Event ev) throws InterruptedException {
		
		itxCorrida.getValue();
		cmbRutaOriginal.getValue();
		cmbParadaOrigem.getValue();
		cmbParadaDestino.getValue();			
		cmbRutaPrecio.getValue();				
		cmbOrigemPrecoCopiado.getValue();
		cmbParadaDestinoCopiado.getValue();
	    chkPrefixoOrigem.getValue();	
		dtVigorIni.getValue();
		dtVigorFim.getValue();	

		try {
			
			precioVentajaService.suscribirActualizacion(precioVentaja);
			precioVentajaList.updateItem(precioVentaja);

			Messagebox.show(Labels.getLabel("editarPrecioVentajaController.MSG.suscribirOK"),
					Labels.getLabel("editarPrecioVentajaController.window.title"),
					Messagebox.OK, Messagebox.INFORMATION);

			closeWindow();

		} catch (BusinessException ex) {
			Messagebox.show(ex.getMessage(),
					Labels.getLabel("editarPrecioVentajaController.window.title"), Messagebox.OK, Messagebox.ERROR);
		}		
			
	}
	
	public void onClick$btnApagar(Event ev) throws InterruptedException {
        try {
            int resp = Messagebox.show(
                    Labels.getLabel("editarPrecioVentajaController.MSG.borrarPergunta"),
                    Labels.getLabel("editarPrecioVentajaController.window.title"),
                    Messagebox.YES | Messagebox.NO, Messagebox.QUESTION);

            if (resp == Messagebox.YES) {

                precioVentajaService.borrar(precioVentaja);

                Messagebox.show(
                        Labels.getLabel("editarPrecioVentajaController.MSG.borrarOK"),
                        Labels.getLabel("editarPrecioVentajaController.window.title"),
                        Messagebox.OK, Messagebox.INFORMATION);
        
                precioVentajaList.removeItem(precioVentaja);
                closeWindow();
            }
        } catch (Exception ex) {
            log.error("",ex);
            Messagebox.show(
                    Labels.getLabel("MSG.Error"),
                    Labels.getLabel("editarPrecioVentajaController.window.title"),
                    Messagebox.OK, Messagebox.ERROR);
        }
    }

	@Override
	public void doAfterCompose(Component comp) throws Exception {
		super.doAfterCompose(comp);
		precioVentaja = (PrecioVentaja) Executions.getCurrent().getArg().get("precioVentaja");	
		precioVentajaList = (MyListbox) Executions.getCurrent().getArg().get("precioVentajaList");
		lsRuta = rutaService.obtenerTodos();	
	}	
	
	public MyComboboxParada getCmbParadaOrigem() {
		return cmbParadaOrigem;
	}
	
	public void setCmbParadaOrigem(MyComboboxParada cmbParadaOrigem) {
		this.cmbParadaOrigem = cmbParadaOrigem;
	}
	
	public MyComboboxParada getCmbParadaDestino() {
		return cmbParadaDestino;
	}
	
	public void setCmbParadaDestino(MyComboboxParada cmbParadaDestino) {
		this.cmbParadaDestino = cmbParadaDestino;
	}
	
	public MyComboboxParada getCmbOrigemPrecoCopiado() {
		return cmbOrigemPrecoCopiado;
	}

	public void setCmbOrigemPrecoCopiado(MyComboboxParada cmbOrigemPrecoCopiado) {
		this.cmbOrigemPrecoCopiado = cmbOrigemPrecoCopiado;
	}

	public MyComboboxParada getCmbParadaDestinoCopiado() {
		return cmbParadaDestinoCopiado;
	}

	public void setCmbParadaDestinoCopiado(MyComboboxParada cmbParadaDestinoCopiado) {
		this.cmbParadaDestinoCopiado = cmbParadaDestinoCopiado;
	}

	public Intbox getItxCorrida() {
		return itxCorrida;
	}

	public void setItxCorrida(Intbox itxCorrida) {
		this.itxCorrida = itxCorrida;
	}

	public Combobox getCmbRutaOriginal() {
		return cmbRutaOriginal;
	}

	public void setCmbRutaOriginal(Combobox cmbRutaOriginal) {
		this.cmbRutaOriginal = cmbRutaOriginal;
	}
	
	public Checkbox getChkPrefixoOrigem() {
		return chkPrefixoOrigem;
	}

	public void setChkPrefixoOrigem(Checkbox chkPrefixoOrigem) {
		this.chkPrefixoOrigem = chkPrefixoOrigem;
	}

	public PrecioVentajaService getPrecioVentajaService() {
		return precioVentajaService;
	}

	public void setPrecioVentajaService(PrecioVentajaService precioVentajaService) {
		this.precioVentajaService = precioVentajaService;
	}

	public PrecioVentaja getPrecioVentaja() {
		return precioVentaja;
	}

	public void setPrecioVentaja(PrecioVentaja precioVentaja) {
		this.precioVentaja = precioVentaja;
	}

	public Datebox getDtVigorIni() {
		return dtVigorIni;
	}

	public void setDtVigorIni(Datebox dtVigorIni) {
		this.dtVigorIni = dtVigorIni;
	}

	public Datebox getDtVigorFim() {
		return dtVigorFim;
	}

	public void setDtVigorFim(Datebox dtVigorFim) {
		this.dtVigorFim = dtVigorFim;
	}

	public List<Ruta> getLsRuta() {
		return lsRuta;
	}

	public void setLsRuta(List<Ruta> lsRuta) {
		this.lsRuta = lsRuta;
	}

	public Combobox getCmbRutaPrecio() {
		return cmbRutaPrecio;
	}

	public void setCmbRutaPrecio(Combobox cmbRutaPrecio) {
		this.cmbRutaPrecio = cmbRutaPrecio;
	}

	public MyListbox getPrecioVentajaList() {
		return precioVentajaList;
	}

	public void setPrecioVentajaList(MyListbox precioVentajaList) {
		this.precioVentajaList = precioVentajaList;
	}	
		
}
