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

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.Executions;
import org.zkoss.zk.ui.event.Event;
import org.zkoss.zul.Messagebox;

import com.rjconsultores.ventaboletos.entidad.ConexionConf;
import com.rjconsultores.ventaboletos.service.ConexionConfService;
import com.rjconsultores.ventaboletos.service.ConexionService;
import com.rjconsultores.ventaboletos.web.utilerias.MyGenericForwardComposer;
import com.rjconsultores.ventaboletos.web.utilerias.MyListbox;

@Controller("editarConexionConfController")
@Scope("prototype")
public class EditarConexionConfController extends MyGenericForwardComposer {

	private static final long serialVersionUID = 1L;
	@Autowired
	private ConexionConfService conexionConfService;
	@Autowired
	private ConexionService conexionService;
	private ConexionConf conexionConf;
	private MyListbox conexionesEditarList;

	public ConexionConf getConexionConf() {
		return conexionConf;
	}

	public void setConexionConf(ConexionConf conexionConf) {
		this.conexionConf = conexionConf;
	}

	@Override
	public void doAfterCompose(Component comp) throws Exception {
		super.doAfterCompose(comp);

		conexionConf = (ConexionConf) Executions.getCurrent().getArg().get("conexionConf");
		conexionesEditarList = (MyListbox) Executions.getCurrent().getArg().get("conexionesEditarList");
	}

	public void onClick$btnDesativar(Event ev) throws Exception {
		int resp = Messagebox.show(
				Labels.getLabel("editarConexionController.MSG.borrarConexionDesativar"),
				Labels.getLabel("editarConexionController.window.title"),
				Messagebox.YES | Messagebox.NO, Messagebox.QUESTION);

		if (resp == Messagebox.YES) {
			conexionConf.setIndisponible(Boolean.TRUE);

			conexionConfService.actualizacion(conexionConf);

			conexionesEditarList.setData(conexionService.buscarPorConexionCtrl(conexionConf.getConexionCtrl().getConexionctrlId()));

			Messagebox.show(
					Labels.getLabel("editarConexionConfController.MSG.desativarOK"),
					Labels.getLabel("editarConexionConfController.window.title"),
					Messagebox.OK, Messagebox.INFORMATION);

			closeWindow();
		}
	}

	public void onClick$btnAtivar(Event ev) throws Exception {
		int resp = Messagebox.show(
				Labels.getLabel("editarConexionController.MSG.borrarConexionAtivar"),
				Labels.getLabel("editarConexionController.window.title"),
				Messagebox.YES | Messagebox.NO, Messagebox.QUESTION);

		if (resp == Messagebox.YES) {
			conexionConf.setIndisponible(Boolean.FALSE);

			conexionConfService.actualizacion(conexionConf);

			conexionesEditarList.setData(conexionService.buscarPorConexionCtrl(conexionConf.getConexionCtrl().getConexionctrlId()));

			Messagebox.show(
					Labels.getLabel("editarConexionConfController.MSG.ativarOK"),
					Labels.getLabel("editarConexionConfController.window.title"),
					Messagebox.OK, Messagebox.INFORMATION);

			closeWindow();
		}
	}

	public void onClick$btnSalvar(Event ev) throws Exception {
		conexionConfService.actualizacion(conexionConf);

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

		conexionesEditarList.setData(conexionService.buscarPorConexionCtrl(conexionConf.getConexionCtrl().getConexionctrlId()));

		closeWindow();
	}
}
