/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.rjconsultores.ventaboletos.web.gui.controladores.tarifas;

import java.util.Calendar;
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.Button;

import com.rjconsultores.ventaboletos.entidad.OrgaoConcedente;
import com.rjconsultores.ventaboletos.entidad.SegVKM;
import com.rjconsultores.ventaboletos.service.OrgaoConcedenteService;
import com.rjconsultores.ventaboletos.service.SegVKMService;
import com.rjconsultores.ventaboletos.utilerias.UsuarioLogado;
import com.rjconsultores.ventaboletos.web.utilerias.MyComboboxEstandar;
import com.rjconsultores.ventaboletos.web.utilerias.MyGenericForwardComposer;
import com.rjconsultores.ventaboletos.web.utilerias.MyListbox;
import com.rjconsultores.ventaboletos.web.utilerias.MyTextbox;

/**
 * 
 * @author RJ
 */
@Controller("editarSegVKmController")
@Scope("prototype")
public class EditarSegVKmController extends MyGenericForwardComposer {

	private static final long serialVersionUID = 1L;
	@Autowired
	private SegVKMService segVKMService;
	@Autowired
	private OrgaoConcedenteService orgaoConcedenteService;
	
	private SegVKM segVKM;
	private MyListbox segVKMList;
	private Button btnApagar;
	private MyTextbox txtSerie;
	private MyTextbox txtKm;
	private MyTextbox txtValor;
	private MyComboboxEstandar cmbOrgaoConcedente;
	private static Logger log = Logger.getLogger(EditarSegVKmController.class);
	private List<OrgaoConcedente> lsOrgaoConcedente;

	@Override
	public void doAfterCompose(Component comp) throws Exception {
		lsOrgaoConcedente = orgaoConcedenteService.obtenerTodos();
		
		super.doAfterCompose(comp);
		segVKM = (SegVKM) Executions.getCurrent().getArg().get("segVKM");
		segVKMList = (MyListbox) Executions.getCurrent().getArg().get("segVKmList");

		if (segVKM.getSegVKMId() == null) {
			btnApagar.setVisible(Boolean.FALSE);
		}

		txtSerie.focus();
	}

	public void onClick$btnSalvar(Event ev) throws InterruptedException {
		txtSerie.getValue();

		try {
			segVKM.setActivo(Boolean.TRUE);
			segVKM.setFecmodif(Calendar.getInstance().getTime());
			segVKM.setUsuarioId(UsuarioLogado.getUsuarioLogado().getUsuarioId());

			if (cmbOrgaoConcedente.getSelectedItem() == null){
				segVKM.setOrgaoConcedente(null);
			}
			if (segVKM.getSegVKMId() == null) {
				segVKMService.suscribir(segVKM);
				segVKMList.addItemNovo(segVKM);
			} else {
				segVKMService.actualizacion(segVKM);
				segVKMList.updateItem(segVKM);
			}

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

			closeWindow();

		} catch (Exception ex) {
			log.error("editarSegVKmController: " + ex);
			Messagebox.show(
					Labels.getLabel("MSG.Error"),
					Labels.getLabel("editarSegVKmController.window.title"),
					Messagebox.OK, Messagebox.ERROR);
		}
	}

	public void onClick$btnApagar(Event ev) {
		try {
			int resp = Messagebox.show(
					Labels.getLabel("editarSegVKmController.MSG.borrarPergunta"),
					Labels.getLabel("editarSegVKmController.window.title"),
					Messagebox.YES | Messagebox.NO, Messagebox.QUESTION);

			if (resp == Messagebox.YES) {

				segVKMService.borrar(segVKM);

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

				segVKMList.removeItem(segVKM);

				closeWindow();
			}
		} catch (Exception ex) {
			log.error(ex);
		}
	}

	public SegVKMService getSegVKMService() {
		return segVKMService;
	}

	public void setSegVKMService(SegVKMService segVKMService) {
		this.segVKMService = segVKMService;
	}

	public SegVKM getSegVKM() {
		return segVKM;
	}

	public void setSegVKM(SegVKM segVKM) {
		this.segVKM = segVKM;
	}

	public MyListbox getSegVKMList() {
		return segVKMList;
	}

	public void setSegVKMList(MyListbox segVKMList) {
		this.segVKMList = segVKMList;
	}

	public Button getBtnApagar() {
		return btnApagar;
	}

	public void setBtnApagar(Button btnApagar) {
		this.btnApagar = btnApagar;
	}

	public MyTextbox getTxtSerie() {
		return txtSerie;
	}

	public void setTxtSerie(MyTextbox txtSerie) {
		this.txtSerie = txtSerie;
	}

	public MyTextbox getTxtKm() {
		return txtKm;
	}

	public void setTxtKm(MyTextbox txtKm) {
		this.txtKm = txtKm;
	}

	public MyTextbox getTxtValor() {
		return txtValor;
	}

	public void setTxtValor(MyTextbox txtValor) {
		this.txtValor = txtValor;
	}

	public List<OrgaoConcedente> getLsOrgaoConcedente() {
		return lsOrgaoConcedente;
	}

	public void setLsOrgaoConcedente(List<OrgaoConcedente> lsOrgaoConcedente) {
		this.lsOrgaoConcedente = lsOrgaoConcedente;
	}
	
}
