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

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.List;

import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.collections.Predicate;
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.Filedownload;
import org.zkoss.zk.ui.Component;
import org.zkoss.zk.ui.event.Event;
import org.zkoss.zul.Combobox;
import org.zkoss.zul.Comboitem;
import org.zkoss.zul.Radio;

import com.rjconsultores.ventaboletos.entidad.Categoria;
import com.rjconsultores.ventaboletos.entidad.ClaseServicio;
import com.rjconsultores.ventaboletos.entidad.Empresa;
import com.rjconsultores.ventaboletos.entidad.Marca;
import com.rjconsultores.ventaboletos.entidad.Moneda;
import com.rjconsultores.ventaboletos.entidad.Ruta;
import com.rjconsultores.ventaboletos.entidad.TipoPuntoVenta;
import com.rjconsultores.ventaboletos.entidad.VigenciaTarifa;
import com.rjconsultores.ventaboletos.service.ClaseServicioService;
import com.rjconsultores.ventaboletos.service.EmpresaService;
import com.rjconsultores.ventaboletos.service.MarcaService;
import com.rjconsultores.ventaboletos.service.MonedaService;
import com.rjconsultores.ventaboletos.service.RutaCombinacionService;
import com.rjconsultores.ventaboletos.service.RutaService;
import com.rjconsultores.ventaboletos.service.TarifaService;
import com.rjconsultores.ventaboletos.service.UsuarioEmpresaService;
import com.rjconsultores.ventaboletos.utilerias.UsuarioLogado;
import com.rjconsultores.ventaboletos.web.utilerias.MyGenericForwardComposer;
import com.rjconsultores.ventaboletos.web.utilerias.MyListbox;
import com.rjconsultores.ventaboletos.web.utilerias.render.RenderCatalogoDeRutas;
import com.rjconsultores.ventaboletos.web.utilerias.render.RenderCategoria;
import com.rjconsultores.ventaboletos.web.utilerias.render.RenderClaseServicio;
import com.rjconsultores.ventaboletos.web.utilerias.render.RenderEmpresaModificacionMassivaTarifa;
import com.rjconsultores.ventaboletos.web.utilerias.render.RenderMarca;
import com.rjconsultores.ventaboletos.web.utilerias.render.RenderMoneda;
import com.rjconsultores.ventaboletos.web.utilerias.render.RenderTipoPuntoVenta;
import java.math.BigInteger;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFCellStyle;
import org.apache.poi.hssf.usermodel.HSSFFont;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;

/**
 *
 * @author rodrigo
 */
@Controller("tarifaOficialExcelController")
@Scope("prototype")
public class TarifaOficialExcelController extends MyGenericForwardComposer {

    private final Integer CELL_ID_TARIFA = 0;
    @Autowired
    private TarifaService tarifaService;
    @Autowired
    private RutaCombinacionService rutaCombinacionService;
    @Autowired
    private MarcaService marcaService;
    @Autowired
    private ClaseServicioService claseServicioService;
    @Autowired
    private MonedaService monedaService;
    @Autowired
	private UsuarioEmpresaService usuarioEmpresaService;
    @Autowired
    private EmpresaService empresaService;
    @Autowired
    private RutaService rutaService;
    private List<Marca> lsMarcas;
    private List<ClaseServicio> lsClaseServico;
    private List<Moneda> lsMonedas;
    private List<Empresa> lsEmpresas;
    private List<Ruta> lsRutas;
    private List<TipoPuntoVenta> lsTipoPuntoVenta;
    private List<Categoria> lsCategoria;
    private List<Marca> lsAddRmvMarcas;
    private List<ClaseServicio> lsAddRmvClaseServico;
    private List<Moneda> lsAddRmvMonedas;
    private List<Empresa> lsAddRmvEmpresas;
    private List<Ruta> lsAddRmvRutas;
    private List<VigenciaTarifa> lsAddRmvVigenciaTarifa;
    private Combobox cmbMarca;
    private Combobox cmbMoneda;
    private Combobox cmbClaseServicio;
    private Combobox cmbEmpresa;
    private Combobox cmbRuta;
    private Combobox cmbTipoPuntoVenta;
    private Combobox cmbCategoria;
    private Combobox cmbVigenciaTarifa;
    private MyListbox claseServicioList;
    private MyListbox marcaList;
    private MyListbox monedaList;
    private MyListbox empresaList;
    private MyListbox rutaList;
    private MyListbox tipoPuntoVentaList;
    private MyListbox categoriaList;
    private MyListbox vigenciaTarifaList;
    private Radio rdLinear;
    private static Logger log = Logger.getLogger(TarifaOficialExcelController.class);

    public List<ClaseServicio> getLsClaseServico() {
        return lsClaseServico;
    }

    public void setLsClaseServico(List<ClaseServicio> lsClaseServico) {
        this.lsClaseServico = lsClaseServico;
    }

    public List<Marca> getLsMarcas() {
        return lsMarcas;
    }

    public void setLsMarcas(List<Marca> lsMarcas) {
        this.lsMarcas = lsMarcas;
    }

    public List<Moneda> getLsMonedas() {
        return lsMonedas;
    }

    public void setLsMonedas(List<Moneda> lsMonedas) {
        this.lsMonedas = lsMonedas;
    }

    public Combobox getCmbClaseServicio() {
        return cmbClaseServicio;
    }

    public void setCmbClaseServicio(Combobox cmbClaseServicio) {
        this.cmbClaseServicio = cmbClaseServicio;
    }

    public Combobox getCmbMarca() {
        return cmbMarca;
    }

    public void setCmbMarca(Combobox cmbMarca) {
        this.cmbMarca = cmbMarca;
    }

    public Combobox getCmbMoneda() {
        return cmbMoneda;
    }

    public void setCmbMoneda(Combobox cmbMoneda) {
        this.cmbMoneda = cmbMoneda;
    }

    public Combobox getCmbEmpresa() {
        return cmbEmpresa;
    }

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

    public List<Empresa> getLsEmpresas() {
        return lsEmpresas;
    }

    public void setLsEmpresas(List<Empresa> lsEmpresas) {
        this.lsEmpresas = lsEmpresas;
    }

    public Combobox getCmbRuta() {
        return cmbRuta;
    }

    public void setCmbRuta(Combobox cmbRuta) {
        this.cmbRuta = cmbRuta;
    }

    public List<Ruta> getLsRutas() {
        return lsRutas;
    }

    public void setLsRutas(List<Ruta> lsRutas) {
        this.lsRutas = lsRutas;
    }

    public Combobox getCmbCategoria() {
        return cmbCategoria;
    }

    public void setCmbCategoria(Combobox cmbCategoria) {
        this.cmbCategoria = cmbCategoria;
    }

    public Combobox getCmbTipoPuntoVenta() {
        return cmbTipoPuntoVenta;
    }

    public void setCmbTipoPuntoVenta(Combobox cmbTipoPuntoVenta) {
        this.cmbTipoPuntoVenta = cmbTipoPuntoVenta;
    }

    public List<Categoria> getLsCategoria() {
        return lsCategoria;
    }

    public void setLsCategoria(List<Categoria> lsCategoria) {
        this.lsCategoria = lsCategoria;
    }

    public List<TipoPuntoVenta> getLsTipoPuntoVenta() {
        return lsTipoPuntoVenta;
    }

    public void setLsTipoPuntoVenta(List<TipoPuntoVenta> lsTipoPuntoVenta) {
        this.lsTipoPuntoVenta = lsTipoPuntoVenta;
    }

    public Combobox getCmbVigenciaTarifa() {
        return cmbVigenciaTarifa;
    }

    public void setCmbVigenciaTarifa(Combobox cmbVigenciaTarifa) {
        this.cmbVigenciaTarifa = cmbVigenciaTarifa;
    }

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

        super.doAfterCompose(comp);

        lsMarcas = marcaService.buscarMarcaPorEmpresa(UsuarioLogado.getUsuarioLogado().getEmpresa());
        lsClaseServico = claseServicioService.obtenerTodos();
        lsMonedas = monedaService.obtenerTodos();
        lsEmpresas =  UsuarioLogado.getUsuarioLogado().getEmpresa();
        lsRutas = rutaService.obtenerTodos();


        claseServicioList.setItemRenderer(new RenderClaseServicio());
        marcaList.setItemRenderer(new RenderMarca());
        monedaList.setItemRenderer(new RenderMoneda());
        empresaList.setItemRenderer(new RenderEmpresaModificacionMassivaTarifa());
        rutaList.setItemRenderer(new RenderCatalogoDeRutas());
        tipoPuntoVentaList.setItemRenderer(new RenderTipoPuntoVenta());
        categoriaList.setItemRenderer(new RenderCategoria());

        lsAddRmvMarcas = new ArrayList<Marca>();
        lsAddRmvClaseServico = new ArrayList<ClaseServicio>();
        lsAddRmvMonedas = new ArrayList<Moneda>();
        lsAddRmvEmpresas = new ArrayList<Empresa>();
        lsAddRmvRutas = new ArrayList<Ruta>();

        // eliminando a opcao TODOS de tipo servicio:
        CollectionUtils.filter(lsClaseServico, new Predicate() {

            @Override
            public boolean evaluate(Object obj) {
                return !(((ClaseServicio) obj).getClaseservicioId().equals(ClaseServicio.TODOS));
            }
        });
        // eliminando a opcao TODOS da marca:
        CollectionUtils.filter(lsMarcas, new Predicate() {

            @Override
            public boolean evaluate(Object obj) {
                return !(((Marca) obj).getMarcaId().equals(Marca.TODOS));
            }
        });


    }

    public void onClick$btnGerarExcel(Event ev) {
        if (rdLinear.isChecked()) {
            onClick$btnGerarExcelLinear(null);
        } else {
            onClick$btnGerarExcelEscala(null);
        }
    }

    public void onClick$btnGerarExcelLinear(Event ev) {

        try {


            HSSFWorkbook wb = new HSSFWorkbook();

            // fonte em negrito:
            HSSFFont fonte = wb.createFont();
            fonte.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
            HSSFCellStyle estilo = wb.createCellStyle();
            estilo.setFont(fonte);

            //TESTE:
            List<Object> lsRutaCombinacion = rutaCombinacionService.pesquisaTarifaOficialObj(lsAddRmvMonedas, lsAddRmvMarcas,
                    lsAddRmvClaseServico, new ArrayList<Categoria>(), lsAddRmvEmpresas, lsAddRmvRutas,
                    new ArrayList<TipoPuntoVenta>(), lsAddRmvVigenciaTarifa);

            HSSFSheet sheet1 = null;
            String ruta = "";
            int contRow = 0;

            for (int i = 0; i < lsRutaCombinacion.size(); i++) {
                Object[] obj = (Object[]) lsRutaCombinacion.get(i);

                if (!ruta.equals(obj[4].toString().concat(obj[12].toString()))) {

                    ruta = obj[4].toString().concat(obj[12].toString());
                    String sheetName = "";
                    if (obj[4].toString().length() > 26) {
                        sheetName = (obj[4].toString().substring(0, 26).concat(" (").concat(obj[12].toString()).concat(")"));
                    } else {
                        sheetName = (obj[4].toString().concat(" (").concat(obj[12].toString()).concat(")"));
                    }
                    log.debug("Aba: " + sheetName);
                    sheet1 = wb.createSheet(sheetName);
                    contRow = 1;

                    HSSFRow rowCabecalho = sheet1.createRow(0);

                    HSSFCell cell = rowCabecalho.createCell(0);
                    cell.setCellValue(
                            Labels.getLabel("busquedaTarifaController.lhId.label"));
                    cell.setCellStyle(estilo);

                    HSSFCell cell0 = rowCabecalho.createCell(1);
                    cell0.setCellValue(
                            Labels.getLabel("busquedaTarifaController.lhTramo.label"));
                    cell0.setCellStyle(estilo);

                    HSSFCell cell1 = rowCabecalho.createCell(2);
                    cell1.setCellValue(
                            Labels.getLabel("busquedaTarifaController.lhOrigen.label"));
                    cell1.setCellStyle(estilo);

                    HSSFCell cell2 = rowCabecalho.createCell(3);
                    cell2.setCellValue(
                            Labels.getLabel("busquedaTarifaController.lhDestino.label"));
                    cell2.setCellStyle(estilo);

                    HSSFCell cell3 = rowCabecalho.createCell(4);
                    cell3.setCellValue(
                            Labels.getLabel("busquedaTarifaController.lhRuta.label"));
                    cell3.setCellStyle(estilo);

                    HSSFCell cell4 = rowCabecalho.createCell(5);
                    cell4.setCellValue(
                            Labels.getLabel("busquedaTarifaController.lhMarca.label"));
                    cell4.setCellStyle(estilo);

                    //Preco original I - 6
                    HSSFCell cell5 = rowCabecalho.createCell(6);
                    cell5.setCellValue(
                            Labels.getLabel("busquedaTarifaController.lhClaseServicio.label"));
                    cell5.setCellStyle(estilo);

                    // H - 6
//                    HSSFCell cell6 = rowCabecalho.createCell(7);
//                    cell6.setCellValue(
//                            Labels.getLabel("busquedaTarifaController.lhFeciniciovigencia.label"));
//                    cell6.setCellStyle(estilo);

                    //I - 8
                    HSSFCell cell7 = rowCabecalho.createCell(8);
                    cell7.setCellValue(
                            Labels.getLabel("busquedaTarifaController.lhMoneda.label"));
                    cell7.setCellStyle(estilo);

                    //J - 9
                    HSSFCell cell8 = rowCabecalho.createCell(9);
                    cell8.setCellValue(
                            Labels.getLabel("busquedaTarifaController.lhPrecioOriginal.label"));
                    cell8.setCellStyle(estilo);

                    //J - 9
                    HSSFCell cell9 = rowCabecalho.createCell(10);
                    cell9.setCellValue(
                            Labels.getLabel("busquedaTarifaController.lhPrecioExcel.label"));
                    cell9.setCellStyle(estilo);

                    //h - 10
                    HSSFCell cell10 = rowCabecalho.createCell(11);
                    cell10.setCellValue("Taxa");
                    cell10.setCellStyle(estilo);

                    HSSFCell cell11 = rowCabecalho.createCell(12);
                    cell11.setCellValue("Seguro");
                    cell11.setCellStyle(estilo);

                    HSSFCell cell12 = rowCabecalho.createCell(13);
                    cell12.setCellValue("Pedagio");
                    cell12.setCellStyle(estilo);

                    HSSFCell cell13 = rowCabecalho.createCell(14);
                    cell13.setCellValue("Outros");
                    cell13.setCellStyle(estilo);

                    HSSFCell cell14 = rowCabecalho.createCell(15);
                    cell14.setCellValue("Total");
                    cell14.setCellStyle(estilo);
                }

                HSSFRow row = sheet1.createRow(contRow++);

                row.createCell(0).setCellValue(Integer.parseInt(obj[0].toString()));
                row.createCell(1).setCellValue(obj[1].toString());
                row.createCell(2).setCellValue(obj[2].toString());
                row.createCell(3).setCellValue(obj[3].toString());
                row.createCell(4).setCellValue(obj[4].toString().concat(" (").concat(obj[12].toString()).concat(")"));
                row.createCell(5).setCellValue(obj[5].toString());
                row.createCell(6).setCellValue(obj[6].toString());

//                DateFormat sfData = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//                DateFormat sfFormatada = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");
//                Date dataIni = sfData.parse(obj[7].toString());
//                Date dataFim = sfData.parse(obj[8].toString());
//
//                row.createCell(7).setCellValue(sfFormatada.format(dataIni) + " - " + sfFormatada.format(dataFim));
                row.createCell(8).setCellValue(obj[9].toString());

                String ori = obj[10].toString();
                BigDecimal original = BigDecimal.valueOf(Double.valueOf(ori));

                String atu = obj[11].toString();
                BigDecimal atual = BigDecimal.valueOf(Double.valueOf(atu));

                String tx = obj[16] == null ? "0" : obj[16].toString();
                BigDecimal taxa = tx == null ? new BigDecimal(BigInteger.ZERO) : BigDecimal.valueOf(Double.valueOf(tx));
                String seg = obj[17] == null ? "0" : obj[17].toString();
                BigDecimal seguro = seg == null ? new BigDecimal(BigInteger.ZERO) : BigDecimal.valueOf(Double.valueOf(seg));
                String ped = obj[18] == null ? "0" : obj[18].toString();
                BigDecimal pedagio = ped == null ? new BigDecimal(BigInteger.ZERO) : BigDecimal.valueOf(Double.valueOf(ped));
                String otr = obj[19] == null ? "0" : obj[19].toString();
                BigDecimal outros = otr == null ? new BigDecimal(BigInteger.ZERO) : BigDecimal.valueOf(Double.valueOf(otr));

                row.createCell(9).setCellValue(original.setScale(2).doubleValue());
                row.createCell(10).setCellValue(atual.setScale(2).doubleValue());

                row.createCell(11).setCellValue(taxa.setScale(2).doubleValue());
                row.createCell(12).setCellValue(seguro.setScale(2).doubleValue());
                row.createCell(13).setCellValue(pedagio.setScale(2).doubleValue());
                row.createCell(14).setCellValue(outros.setScale(2).doubleValue());

                row.createCell(15).setCellValue(atual.add(taxa).add(seguro).add(pedagio).add(outros).setScale(2).doubleValue());

                // novo preco:
//                BigDecimal novoPrecio = atual;

//                novoPrecio = novoPrecio.multiply(coeficiente).setScale(2, RoundingMode.HALF_UP);

//                HSSFCell cellNovoPrecio = row.createCell(11);
//                cellNovoPrecio.setCellValue(novoPrecio.setScale(2).doubleValue());
//                cellNovoPrecio.setCellStyle(estilo);

            }


            String nomeArquivo =
                    UsuarioLogado.getUsuarioLogado().getNombusuario()
                    + "_" + Calendar.getInstance().getTime().getTime()
                    + "_" + "modMassivaT";

            File fNomeArquivo = File.createTempFile(nomeArquivo, ".tmp"); 

			FileOutputStream stream = new FileOutputStream(fNomeArquivo);
			stream.flush();
			wb.write(stream);
			stream.close();
            

            InputStream is = null;
            is = new FileInputStream(fNomeArquivo);
            Filedownload.save(is, "application/xls", "modificacionMasivaTarifa.xls");

            fNomeArquivo.delete();
        } catch (Exception ex) {
            log.error("",ex);
        }
    }
    //Escala

    public void onClick$btnGerarExcelEscala(Event ev) {

        try {

            HSSFWorkbook wb = rutaCombinacionService.gerarTarifaOficialEscala(lsAddRmvMonedas, lsAddRmvMarcas,
                    lsAddRmvClaseServico, new ArrayList<Categoria>(), lsAddRmvEmpresas, lsAddRmvRutas,
                    new ArrayList<TipoPuntoVenta>(), lsAddRmvVigenciaTarifa);



            String nomeArquivo =
                    UsuarioLogado.getUsuarioLogado().getNombusuario()
                    + "_" + Calendar.getInstance().getTime().getTime()
                    + "_" + "tarOficialEscala";
            
            File fNomeArquivo = File.createTempFile(nomeArquivo, ".tmp"); 

            FileOutputStream stream = new FileOutputStream(fNomeArquivo);
            stream.flush();
            wb.write(stream);
            stream.close();

            InputStream is = null;
            is = new FileInputStream(fNomeArquivo);
            Filedownload.save(is, "application/xls", "modificacionMasivaTarifa.xls");

            fNomeArquivo.delete();
        } catch (Exception ex) {
            log.error(ex);
        }
    }

    public void onClick$btnAdicionarClaseServicio(Event ev) {
        Comboitem cbiClaseServicio = cmbClaseServicio.getSelectedItem();
        if (cbiClaseServicio != null) {
            ClaseServicio claseServicio = (ClaseServicio) cbiClaseServicio.getValue();

            lsAddRmvClaseServico.add(claseServicio);
            claseServicioList.setData(lsAddRmvClaseServico);

            cmbClaseServicio.setSelectedItem(null);
        }
    }

    public void onClick$btnRemoverClaseServicio(Event ev) {
        ClaseServicio claseServicio = (ClaseServicio) claseServicioList.getSelected();
        if (claseServicio != null) {
            lsAddRmvClaseServico.remove(claseServicio);
            claseServicioList.setData(lsAddRmvClaseServico);
        }
    }

    public void onClick$btnAdicionarMarca(Event ev) {
        Comboitem cbimarca = cmbMarca.getSelectedItem();
        if (cbimarca != null) {
            Marca marca = (Marca) cbimarca.getValue();

            lsAddRmvMarcas.add(marca);
            marcaList.setData(lsAddRmvMarcas);

            cmbMarca.setSelectedItem(null);
        }
    }

    public void onClick$btnRemoverMarca(Event ev) {
        Marca marca = (Marca) marcaList.getSelected();
        if (marca != null) {
            lsAddRmvMarcas.remove(marca);
            marcaList.setData(lsAddRmvMarcas);
        }
    }

    public void onClick$btnAdicionarMoneda(Event ev) {
        Comboitem cbiMoneda = cmbMoneda.getSelectedItem();
        if (cbiMoneda != null) {
            Moneda moneda = (Moneda) cbiMoneda.getValue();

            lsAddRmvMonedas.add(moneda);
            monedaList.setData(lsAddRmvMonedas);

            cmbMoneda.setSelectedItem(null);
        }
    }

    public void onClick$btnRemoverMoneda(Event ev) {
        Moneda moneda = (Moneda) monedaList.getSelected();
        if (moneda != null) {
            lsAddRmvMonedas.remove(moneda);
            monedaList.setData(lsAddRmvMonedas);
        }
    }

    public void onClick$btnAdicionarEmpresa(Event ev) {
        Comboitem cbiEmpresa = cmbEmpresa.getSelectedItem();
        if (cbiEmpresa != null) {
            Empresa empresa = (Empresa) cbiEmpresa.getValue();

            lsAddRmvEmpresas.add(empresa);
            empresaList.setData(lsAddRmvEmpresas);

            cmbEmpresa.setSelectedItem(null);
        }
    }

    public void onClick$btnRemoverEmpresa(Event ev) {
        Empresa empresa = (Empresa) empresaList.getSelected();
        if (empresa != null) {
            lsAddRmvEmpresas.remove(empresa);
            empresaList.setData(lsAddRmvEmpresas);
        }
    }

    public void onClick$btnAdicionarRuta(Event ev) {
        Comboitem cbiRuta = cmbRuta.getSelectedItem();
        if (cbiRuta != null) {
            Ruta ruta = (Ruta) cbiRuta.getValue();

            lsAddRmvRutas.add(ruta);
            rutaList.setData(lsAddRmvRutas);

            cmbRuta.setSelectedItem(null);
        }
    }

    public void onClick$btnRemoverRuta(Event ev) {
        Ruta ruta = (Ruta) rutaList.getSelected();
        if (ruta != null) {
            lsAddRmvRutas.remove(ruta);
            rutaList.setData(lsAddRmvRutas);
        }
    }

    public void onClick$btnAdicionarVigenciaTarifa(Event ev) {
        Comboitem cbiVigenciaTarifa = cmbVigenciaTarifa.getSelectedItem();
        if (cbiVigenciaTarifa != null) {
            VigenciaTarifa vigenciaTarifa = (VigenciaTarifa) cbiVigenciaTarifa.getValue();

            lsAddRmvVigenciaTarifa.add(vigenciaTarifa);
            vigenciaTarifaList.setData(lsAddRmvVigenciaTarifa);

            cmbVigenciaTarifa.setSelectedItem(null);
        }
    }

    public void onClick$btnRemoverVigenciaTarifa(Event ev) {
        VigenciaTarifa vigenciaTarifa = (VigenciaTarifa) vigenciaTarifaList.getSelected();
        if (vigenciaTarifa != null) {
            lsAddRmvVigenciaTarifa.remove(vigenciaTarifa);
            vigenciaTarifaList.setData(lsAddRmvVigenciaTarifa);
        }
    }
}
