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

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Controller;
import org.zkforge.ckez.CKeditor;
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.Combobox;
import org.zkoss.zul.Messagebox;

import com.rjconsultores.ventaboletos.entidad.Categoria;
import com.rjconsultores.ventaboletos.entidad.CategoriaFormAutorizacao;
import com.rjconsultores.ventaboletos.entidad.Empresa;
import com.rjconsultores.ventaboletos.service.CategoriaFormAutorizacaoService;
import com.rjconsultores.ventaboletos.service.EmpresaService;
import com.rjconsultores.ventaboletos.web.utilerias.MyGenericForwardComposer;
import com.rjconsultores.ventaboletos.web.utilerias.MyListbox;

@Controller("editarFormAutorizacaoController")
@Scope("prototype")
public class EditarFormAutorizacaoController extends MyGenericForwardComposer {

	private static final long serialVersionUID = 1L;
	
	@Autowired
	private EmpresaService empresaService;
	@Autowired
	private CategoriaFormAutorizacaoService categoriaFormAutorizacaoService;
	private CategoriaFormAutorizacao form;
	private MyListbox tipoPassagemAutorizacaoList;
	private Combobox cmbEmpresa;
	private List<Empresa> lsEmpresa;
	private CKeditor textoAutorizacao;
	private Categoria categoria;
	
	@Override
    public void doAfterCompose(Component comp) throws Exception {   
		form = (CategoriaFormAutorizacao) Executions.getCurrent().getArg().get("form");
        tipoPassagemAutorizacaoList = (MyListbox) Executions.getCurrent().getArg().get("formList");
        categoria = (Categoria) Executions.getCurrent().getArg().get("categoria");
        lsEmpresa = empresaService.obtenerTodos();
        super.doAfterCompose(comp);        
	}

	public void onClick$btnSalvar(Event ev) throws InterruptedException {
		form.setCategoria(categoria);
		form.setTexto(textoAutorizacao.getValue());
		categoriaFormAutorizacaoService.salvar(form);
    	//categoria.getFormsAutorizacao().add(form);
    	tipoPassagemAutorizacaoList.addItem(form);
    	closeWindow();
	}
	
	public void onClick$btnApagar(Event ev) throws InterruptedException {
		int resp = Messagebox.show(
                Labels.getLabel("editarFormAutorizacaoController.MSG.borrarPergunta"),
                Labels.getLabel("editarFormAutorizacaoController.window.title"),
                Messagebox.YES | Messagebox.NO, Messagebox.QUESTION);

        if (resp == Messagebox.YES) {

        	categoriaFormAutorizacaoService.borrar(form);

            Messagebox.show(
                    Labels.getLabel("editarFormAutorizacaoController.MSG.borrarOK"),
                    Labels.getLabel("editarFormAutorizacaoController.window.title"),
                    Messagebox.OK, Messagebox.INFORMATION);

            tipoPassagemAutorizacaoList.removeItem(form);

            closeWindow();
        }
	}


	public CategoriaFormAutorizacao getForm() {
		return form;
	}


	public void setForm(CategoriaFormAutorizacao form) {
		this.form = form;
	}


	public MyListbox getTipoPassagemAutorizacaoList() {
		return tipoPassagemAutorizacaoList;
	}


	public void setTipoPassagemAutorizacaoList(MyListbox tipoPassagemAutorizacaoList) {
		this.tipoPassagemAutorizacaoList = tipoPassagemAutorizacaoList;
	}


	public Combobox getCmbEmpresa() {
		return cmbEmpresa;
	}


	public void setCmbEmpresa(Combobox cmbEmpresa) {
		this.cmbEmpresa = cmbEmpresa;
	}


	public List<Empresa> getLsEmpresa() {
		return lsEmpresa;
	}


	public void setLsEmpresa(List<Empresa> lsEmpresa) {
		this.lsEmpresa = lsEmpresa;
	}
	
}
