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

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.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.EmpresaContaBancaria;
import com.rjconsultores.ventaboletos.entidad.InstiFinanceira;
import com.rjconsultores.ventaboletos.service.EmpresaContaBancariaService;
import com.rjconsultores.ventaboletos.service.InstiFinanceiraService;
import com.rjconsultores.ventaboletos.web.utilerias.MyGenericForwardComposer;
import com.rjconsultores.ventaboletos.web.utilerias.MyListbox;

@Controller("editarContaBancariaEmpresaController")
@Scope("prototype")
public class EditarContaBancariaEmpresaController extends MyGenericForwardComposer {
	
	private static final long serialVersionUID = 1L;
	private static Logger log = Logger.getLogger(EditarContaBancariaEmpresaController.class);
	
	@Autowired
	private InstiFinanceiraService instFinanceiraService;
	@Autowired
	private EmpresaContaBancariaService empresaContaBancariaService;
	
	
	
	private EmpresaContaBancaria empresaContaBancaria;
	private MyListbox empresaContaBancariaList;
	private List<InstiFinanceira> lsBanco;
	
	@Override
	public void doAfterCompose(Component comp) throws Exception {
		empresaContaBancaria = (EmpresaContaBancaria) Executions.getCurrent().getArg().get("empresaContaBancaria");
		empresaContaBancariaList = (MyListbox) Executions.getCurrent().getArg().get("empresaContaBancariaList");
		
		super.doAfterCompose(comp);
		
		lsBanco = instFinanceiraService.obtenerTodos();
		
	}
	
	public void onClick$btnSalvar(Event ev) throws InterruptedException {
		
		try {
			empresaContaBancariaService.suscribirActualizacion(empresaContaBancaria);
			empresaContaBancariaList.updateItem(empresaContaBancaria);

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

			closeWindow();

		} catch (Exception ex) {
			log.error("editarEmpresaController: " + ex);

			Messagebox.show(Labels.getLabel(ex.getMessage()),
					Labels.getLabel("editarEmpresaController.contaBancaria.window.title"), Messagebox.OK, Messagebox.ERROR);
		}
	}

	public InstiFinanceiraService getInstFinanceiraService() {
		return instFinanceiraService;
	}

	public void setInstFinanceiraService(InstiFinanceiraService instFinanceiraService) {
		this.instFinanceiraService = instFinanceiraService;
	}

	public EmpresaContaBancaria getEmpresaContaBancaria() {
		return empresaContaBancaria;
	}

	public void setEmpresaContaBancaria(EmpresaContaBancaria empresaContaBancaria) {
		this.empresaContaBancaria = empresaContaBancaria;
	}

	public MyListbox getEmpresaContaBancariaList() {
		return empresaContaBancariaList;
	}

	public void setEmpresaContaBancariaList(MyListbox empresaContaBancariaList) {
		this.empresaContaBancariaList = empresaContaBancariaList;
	}

	public List<InstiFinanceira> getLsBanco() {
		return lsBanco;
	}

	public void setLsBanco(List<InstiFinanceira> lsBanco) {
		this.lsBanco = lsBanco;
	}
}
