/*
 * 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.List;

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.event.Event;
import org.zkoss.zul.Combobox;
import org.zkoss.zul.Messagebox;
import org.zkoss.zul.Radio;
import org.zkoss.zul.Row;

import com.rjconsultores.ventaboletos.entidad.Empresa;
import com.rjconsultores.ventaboletos.entidad.OrgaoConcedente;
import com.rjconsultores.ventaboletos.entidad.VigenciaTarifa;
import com.rjconsultores.ventaboletos.service.OrgaoConcedenteService;
import com.rjconsultores.ventaboletos.service.TarifaOficialService;
import com.rjconsultores.ventaboletos.service.VigenciaTarifaService;
import com.rjconsultores.ventaboletos.utilerias.ApplicationProperties;
import com.rjconsultores.ventaboletos.utilerias.CustomEnum;
import com.rjconsultores.ventaboletos.utilerias.UsuarioLogado;
import com.rjconsultores.ventaboletos.web.utilerias.MyGenericForwardComposer;

/**
 * 
 * @author Gleimar
 */
@Controller("copiarTarifaOficialController")
@Scope("prototype")
public class CopiarTarifaOficialController extends MyGenericForwardComposer {

	private static final long serialVersionUID = 1L;

	@Autowired
	private VigenciaTarifaService vigenciaTarifaService;
	@Autowired
	private TarifaOficialService tarifaOficialService;
	@Autowired
	private OrgaoConcedenteService orgaoConcedenteService;
	
	private List<VigenciaTarifa> lsVigenciaTarifa;
	private List<Empresa> lsEmpresa;
	private List<OrgaoConcedente> lsOrgao;
	private Combobox cmbVigencia;
	private Combobox cmbEmpresa;
	private Combobox cmbOrgao;
	private Radio rdComPegagio;
	private Radio rdComTarifa;
	private Radio rdComTaxaEmbarque;
	private Radio rdComSeguro;
	private Radio rdComTPP;
	private Radio rdComEmbarcada;
	private Row exibeTPP;

	@Override
	public void doAfterCompose(Component comp) throws Exception {
		lsVigenciaTarifa = vigenciaTarifaService.obtenerTodos();
		lsEmpresa = UsuarioLogado.getUsuarioLogado().getEmpresa();
		lsOrgao = orgaoConcedenteService.obtenerTodosExceto(-1);
		super.doAfterCompose(comp);
		if (!ApplicationProperties.getInstance().isCustomHabilitado(CustomEnum.EXIBE_TPP.getDescricao())) {
			exibeTPP.setVisible(false);
		}
		
	}

	public void onClick$btnGenerarVigencia(Event ev) throws InterruptedException {

		cmbVigencia.getValue();
        Boolean calculaPedagio = (rdComPegagio.getValue() == null) ? Boolean.FALSE : rdComPegagio.isChecked();
        Boolean calculaTarifa = (rdComTarifa.getValue() == null) ? Boolean.FALSE : rdComTarifa.isChecked();
        Boolean calculaTaxaEmbarque = (rdComTaxaEmbarque.getValue() == null) ? Boolean.FALSE : rdComTaxaEmbarque.isChecked();
        Boolean calculaSeguro = (rdComSeguro.getValue() == null) ? Boolean.FALSE : rdComSeguro.isChecked();
        Boolean calculaTPP = (rdComTPP.getValue() == null) ? Boolean.FALSE : rdComTPP.isChecked();
        Boolean calculaEmbarcada = (rdComEmbarcada.getValue() == null) ? Boolean.FALSE : rdComEmbarcada.isChecked();
        Empresa empresaSelecionada = cmbEmpresa.getSelectedItem() != null ? (Empresa) cmbEmpresa.getSelectedItem().getValue() : null;
        OrgaoConcedente orgaoConcedenteSelecionado = cmbOrgao.getSelectedItem() != null ? (OrgaoConcedente) cmbOrgao.getSelectedItem().getValue() : null;
        
		tarifaOficialService.copiarParaTarifa((VigenciaTarifa) cmbVigencia.getSelectedItem().getValue(), 
				calculaPedagio, calculaTarifa, calculaTaxaEmbarque, calculaSeguro, calculaTPP, calculaEmbarcada, empresaSelecionada, orgaoConcedenteSelecionado);

		Messagebox.show(Labels.getLabel("copiarTarifaOficialController.MSG.copiaOK"),
				Labels.getLabel("indexController.mniGenerarTarifaOrgao.label"),
				Messagebox.OK, Messagebox.INFORMATION);
	}

	public List<VigenciaTarifa> getLsVigenciaTarifa() {
		return lsVigenciaTarifa;
	}

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

	public List<OrgaoConcedente> getLsOrgao() {
		return lsOrgao;
	}
	
}
