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

import com.rjconsultores.ventaboletos.entidad.ClaseServicio;
import com.rjconsultores.ventaboletos.entidad.Cortesia;
import com.rjconsultores.ventaboletos.entidad.CortesiaBeneficiario;
import com.rjconsultores.ventaboletos.entidad.Empleado;
import com.rjconsultores.ventaboletos.entidad.GrupoCortesia;
import com.rjconsultores.ventaboletos.entidad.Marca;
import com.rjconsultores.ventaboletos.entidad.MotivoViaje;
import com.rjconsultores.ventaboletos.entidad.TipoCortesia;
import com.rjconsultores.ventaboletos.entidad.TipoCortesiaDescuento;
import com.rjconsultores.ventaboletos.service.ClaseServicioService;
import com.rjconsultores.ventaboletos.service.CortesiaBeneficiarioService;
import com.rjconsultores.ventaboletos.service.CortesiaService;
import com.rjconsultores.ventaboletos.service.EmpleadoService;
import com.rjconsultores.ventaboletos.service.MarcaService;
import com.rjconsultores.ventaboletos.service.MotivoViajeService;
import com.rjconsultores.ventaboletos.service.TipoCortesiaDescuentoService;
import com.rjconsultores.ventaboletos.service.TipoCortesiaService;
import com.rjconsultores.ventaboletos.utilerias.UsuarioLogado;
import com.rjconsultores.ventaboletos.web.utilerias.MyComboboxParada;
import com.rjconsultores.ventaboletos.web.utilerias.MyGenericForwardComposer;
import com.rjconsultores.ventaboletos.web.utilerias.MyListbox;
import com.rjconsultores.ventaboletos.web.utilerias.render.RenderCortesiaBeneficiario;
import java.text.MessageFormat;
import java.util.ArrayList;
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.zk.ui.Component;
import org.zkoss.zk.ui.Executions;
import org.zkoss.zk.ui.event.Event;
import org.zkoss.zk.ui.util.Clients;
import org.zkoss.zkplus.databind.BindingListModel;
import org.zkoss.zkplus.databind.BindingListModelList;
import org.zkoss.zul.Button;
import org.zkoss.zul.Combobox;
import org.zkoss.zul.Datebox;
import org.zkoss.zul.Messagebox;
import org.zkoss.zul.Radio;
import org.zkoss.zul.Tab;
import org.zkoss.zul.Textbox;

/**
 *
 * @author Shiro
 */
@Controller("editarAltaCortesiaRHController")
@Scope("prototype")
public class EditarAltaCortesiaRHController extends MyGenericForwardComposer {

    @Autowired
    private EmpleadoService empleadoService;
    @Autowired
    private TipoCortesiaService tipoCortesiaService;
    @Autowired
    private MarcaService marcaService;
    @Autowired
    private ClaseServicioService claseServicioService;
    @Autowired
    private MotivoViajeService motivoViajeService;
    @Autowired
    private CortesiaService cortesiaService;
    @Autowired
    private TipoCortesiaDescuentoService tipoCortesiaDescuentoService;
    @Autowired
    private CortesiaBeneficiarioService cortesiaBeneficiarioService;
    private Combobox cmbTipoCortesia;
    private List<TipoCortesia> tipoCortesiaList;
    private List<Marca> marcaList;
    private List<ClaseServicio> claseServicioList;
    private List<MotivoViaje> motivoViajeList;
    private List<TipoCortesiaDescuento> tipoCortesiaDescuentoList;
    private List<Cortesia> cortesiasList;
    private List<Empleado> empleadoLis1;
    private List<CortesiaBeneficiario> cortesiaBeneficiarioList;
    private Empleado empleado;
    private GrupoCortesia gc;
    private TipoCortesia tc;
    private TipoCortesiaDescuento td;
    private Cortesia cortesia;
    private MyListbox empleadoList;
    private MyListbox cortesiaList;
    private MyListbox beneficiarioList;
    private Textbox txtNome;
    private Radio radioSencillo;
    private Radio radioRedondo;
    private Radio radioEmpleado;
    private Radio radioFamiliar;
    private Datebox fecinicio;
    private Datebox fecfinal;
    private Datebox fecIda;
    private Datebox fecRegreso;
    private Combobox cmbtipoC;
    private Combobox cmbmarca;
    private Combobox cmbclaseser;
    private MyComboboxParada cmbdestino;
    private MyComboboxParada cmborigen;
    private Combobox cmbmotivo;
    private Combobox cmbtP;
    private Textbox txtNomBene;
    private Textbox txtApPBene;
    private Textbox txtApMBene;
    private Textbox txtClaveE;
    private Textbox txtCortesia;
    private Textbox txtNombre;
    private Textbox txtApP;
    private Textbox txtApM;
    private Textbox txtEmpresa;
    private Textbox txtPuesto;
    private Button btnSalvar;
    private Button btnSalvarBeneficiario;
    private Button btnPesquisa;
    private Button btnApagarBeneficiario;
    private static Logger log = Logger.getLogger(EditarAltaCortesiaRHController.class);
    private Button btnApagar;
    private Tab tabViaje;
    private Tab tabBeneficiarios;
    private Tab tabEmpleado;

    @Override
    public void doAfterCompose(Component comp) throws Exception {
        tipoCortesiaList = tipoCortesiaService.obtenerGrupoCortesia(3);
        marcaList = marcaService.buscarMarcaPorEmpresa(UsuarioLogado.getUsuarioLogado().getEmpresa());
        claseServicioList = claseServicioService.obtenerTodos();
        motivoViajeList = motivoViajeService.obtenerTodos();

        super.doAfterCompose(comp);

        Cortesia cortesiaA = (Cortesia) Executions.getCurrent().getArg().get("cortesia");
        cortesia = (cortesiaA.getCortesiaId() == null) ? cortesiaA : cortesiaService.obtenerID(cortesiaA.getCortesiaId());
        cortesiaList = (MyListbox) Executions.getCurrent().getArg().get("cortesiaList");

        empleado = cortesia.getEmpleado();

        if (cortesia.getCortesiaId() != null) {
            if (cortesia.getIndtipoviaje().equals("S")) {
                radioSencillo.setChecked(true);
            } else if (cortesia.getIndtipoviaje().equals("R")) {
                radioRedondo.setChecked(true);
            }

            btnSalvar.setDisabled(true);
            btnApagarBeneficiario.setDisabled(true);
            btnSalvarBeneficiario.setDisabled(true);
            txtNome.setDisabled(true);
            cmbTipoCortesia.setDisabled(true);
            cmbmarca.setDisabled(true);
            cmbclaseser.setDisabled(true);
            cmborigen.setDisabled(true);
            cmbdestino.setDisabled(true);
            fecinicio.setDisabled(true);
            fecfinal.setDisabled(true);
            cmbmotivo.setDisabled(true);
            btnPesquisa.setDisabled(true);

            if (cortesiaService.cortesiaUtilizada(cortesia)) {
                btnApagar.setDisabled(true);
            }
        }
        beneficiarioList.setItemRenderer(new RenderCortesiaBeneficiario());
        cortesiaBeneficiarioList = new ArrayList<CortesiaBeneficiario>();
        beneficiarioList.setData(cortesiaBeneficiarioList);

        if (cortesia.getCortesiaId() == null) {
            btnApagar.setVisible(false);
            radioSencillo.setChecked(true);

        } else {
            onClick$radioEmpleado(null);

            cortesiaBeneficiarioList = cortesia.getCortesiaBeneficiarioList();
            beneficiarioList.setData(cortesiaBeneficiarioList);

            onChange$cmbTipoCortesia(null);

        }

        radioEmpleado.setChecked(true);
        activaAba();
        txtNome.focus();
    }

    public void onClick$btnPesquisa(Event ev) throws InterruptedException {
        txtClaveE.setConstraint("no empty");
        txtClaveE.getValue();
        String empleadoClv = txtClaveE.getText().trim();
        txtClaveE.setConstraint("");
        if (empleadoClv.isEmpty()) {
            empleadoClv = cortesia.getEmpleado().getCveEmpleado();
        }
        List<Empleado> empleadoClvList = empleadoService.pesquisaClave(empleadoClv);

        if (empleadoClvList.isEmpty()) {
            Messagebox.show(
                    Labels.getLabel("editarAltaCortesiaRHController.MSG.naoEmpleado"),
                    Labels.getLabel("editarAltaCortesiaRHController.window.title"),
                    Messagebox.OK, Messagebox.EXCLAMATION);
        } else {
            for (Empleado e : empleadoClvList) {
                if (e.getCveEmpleado().equals(empleadoClv)) {

                    txtNombre.setText(e.getNombEmpleado());
                    txtApP.setText(e.getNombPaterno());
                    txtApM.setText(e.getNombMaterno());
                    if (e.getEmpresa() != null) {
                        txtEmpresa.setText(e.getEmpresa().getNombempresa());
                    }

                    empleado = e;
                    cortesia.setEmpleado(empleado);
                    onClick$radioEmpleado(null);
                }
            }
        }

    }

    private void activaAba() {
        boolean activaAba = true;
        if ((cortesia == null) || (cortesia.getTipoCortesia() == null)) {
            activaAba = false;
        }
        tabBeneficiarios.setDisabled(!activaAba);
        tabViaje.setDisabled(!activaAba);
    }

    public void onChange$cmbTipoCortesia(Event ev) {

        if (cortesia.getCortesiaId() != null) {
            tipoCortesiaDescuentoList = tipoCortesiaDescuentoService.pesquisar(cortesia.getTipoCortesia());
            BindingListModel bdlm = new BindingListModelList(tipoCortesiaDescuentoList, true);
            cmbtP.setModel(bdlm);
        } else {

            if (cmbTipoCortesia.getSelectedItem() == null) {
                return;
            }
            tipoCortesiaDescuentoList = tipoCortesiaDescuentoService.pesquisar((TipoCortesia) cmbTipoCortesia.getSelectedItem().getValue());
            BindingListModel bdlm = new BindingListModelList(tipoCortesiaDescuentoList, true);
            cmbtP.setModel(bdlm);
        }
        activaAba();
    }

    public void onChange$fecinicio(Event ev) throws InterruptedException {
        onClick$btnPesquisa(null);
    }

    public void onChange$fecfinal(Event ev) throws InterruptedException {
        onClick$btnPesquisa(null);
    }

    public void onClick$btnSalvar(Event ev) throws InterruptedException {
        if (cortesia.getEmpleado() == null) {
            Messagebox.show(
                    Labels.getLabel("editarAltaCortesiaRHController.MSG.empleado"),
                    Labels.getLabel("editarAltaCortesiaRHController.window.title"),
                    Messagebox.OK, Messagebox.EXCLAMATION);
            return;
        }


        cmbTipoCortesia.getValue();
        cmbmarca.getValue();
        cmbclaseser.getValue();
        cmborigen.getValue(true);
        fecinicio.getValue();
        fecfinal.getValue();
        cmbdestino.getValue(true);
        cmbmotivo.getValue();
        txtNome.getValue();

        if (fecinicio.getValue().after(fecfinal.getValue())) {
            Messagebox.show(Labels.getLabel("editarAltaCortesiaRHController.MSG.CortesiaAlta"),
                    Labels.getLabel("editarAltaCortesiaRHController.window.title"),
                    Messagebox.OK, Messagebox.INFORMATION);

        } else {
            try {
                if (cortesia.getEmpleado() == null) {
                    Messagebox.show(
                            Labels.getLabel("editarAltaCortesiaRHController.MSG.empleado"),
                            Labels.getLabel("editarAltaCortesiaRHController.window.title"),
                            Messagebox.OK, Messagebox.EXCLAMATION);
                } else if (cortesia.getTipoCortesia() == null) {
                    Messagebox.show(
                            Labels.getLabel("editarAltaCortesiaRHController.MSG.cortesia"),
                            Labels.getLabel("editarAltaCortesiaRHController.window.title"),
                            Messagebox.OK, Messagebox.EXCLAMATION);
                } else if (cortesia.getMarca() == null) {
                    Messagebox.show(
                            Labels.getLabel("editarAltaCortesiaRHController.MSG.marca"),
                            Labels.getLabel("editarAltaCortesiaRHController.window.title"),
                            Messagebox.OK, Messagebox.EXCLAMATION);
                } else if (cortesia.getClaseServicio() == null) {
                    Messagebox.show(
                            Labels.getLabel("editarAltaCortesiaRHController.MSG.clase"),
                            Labels.getLabel("editarAltaCortesiaRHController.window.title"),
                            Messagebox.OK, Messagebox.EXCLAMATION);
                } else if (cortesia.getOrigem() == null) {
                    Messagebox.show(
                            Labels.getLabel("editarAltaCortesiaRHController.MSG.origen"),
                            Labels.getLabel("editarAltaCortesiaRHController.window.title"),
                            Messagebox.OK, Messagebox.EXCLAMATION);
                } else if (cortesia.getDestino() == null) {
                    Messagebox.show(
                            Labels.getLabel("editarAltaCortesiaRHController.MSG.destino"),
                            Labels.getLabel("editarAltaCortesiaRHController.window.title"),
                            Messagebox.OK, Messagebox.EXCLAMATION);
                } else if (cortesia.getMotivoViaje() == null) {
                    Messagebox.show(
                            Labels.getLabel("editarAltaCortesiaRHController.MSG.motivo"),
                            Labels.getLabel("editarAltaCortesiaRHController.window.title"),
                            Messagebox.OK, Messagebox.EXCLAMATION);
                } else if (cortesiaBeneficiarioList.isEmpty()) {
                    Messagebox.show(
                            Labels.getLabel("editarAltaCortesiaRHController.MSG.beneficiario"),
                            Labels.getLabel("editarAltaCortesiaRHController.window.title"),
                            Messagebox.OK, Messagebox.EXCLAMATION);
                } else {

                    boolean podeSalvar = false;

                    List<Cortesia> lsCortesias = cortesiaService.buscarDplicidad(cortesia);

                    if (lsCortesias.isEmpty()) {
                        podeSalvar = true;
                    } else {
                        for (Cortesia c : lsCortesias) {
                            if (c.getCortesiaId().equals(cortesia.getCortesiaId())) {
                                podeSalvar = true;
                            }
                        }
                    }

                    if (podeSalvar) {
                        cortesia.setFecinicio(fecinicio.getValue());
                        cortesia.setFecfinal(fecfinal.getValue());
                        cortesia.setNdstatus("P");
                        cortesia.setActivo(Boolean.TRUE);
                        cortesia.setFecmodif(Calendar.getInstance().getTime());
                        cortesia.setUsuarioId(UsuarioLogado.getUsuarioLogado().getUsuarioId());
                        cortesia.setCortesiaBeneficiarioList(cortesiaBeneficiarioList);

                        if (radioSencillo.isChecked()) {
                            cortesia.setIndtipoviaje("S");
                        } else if (radioRedondo.isChecked()) {
                            cortesia.setIndtipoviaje("R");
                        }

                        if (cortesia.getCortesiaId() == null) {
                            cortesiaService.suscribir(cortesia);
                            cortesiaList.addItem(cortesia);
                        } else {
                            cortesiaService.actualizacion(cortesia);
                            cortesiaList.updateItem(cortesia);
                        }

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


                        Messagebox.show(
                                MessageFormat.format(Labels.getLabel("editarAltaCortesiaRHController.MSG.informacionNumeroIdGenerado"), cortesia.getCortesiaId()),
                                Labels.getLabel("editarAltaCortesiaRHController.window.title"),
                                Messagebox.OK, Messagebox.INFORMATION);

                        closeWindow();
                    } else {
                        Messagebox.show(
                                Labels.getLabel("MSG.Registro.Existe"),
                                Labels.getLabel("editarAltaCortesiaRHController.window.title"),
                                Messagebox.OK, Messagebox.EXCLAMATION);
                    }
                }
            } catch (Exception ex) {
                log.error("",ex);
                Clients.alert(
                        Labels.getLabel("MSG.Error"),
                        Labels.getLabel("editarAltaCortesiaRHController.window.title"),
                        Messagebox.ERROR);
            }

        }
    }

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

            if (resp == Messagebox.YES) {

                cortesiaService.borrar(cortesia);

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

                cortesiaList.removeItem(cortesia);

                closeWindow();
            }
        } catch (Exception ex) {
            log.error(ex);
            Clients.alert(
                    Labels.getLabel("MSG.Error"),
                    Labels.getLabel("editarAltaCortesiaRHController.window.title"),
                    Messagebox.ERROR);
        }
    }

    public void onClick$btnSalvarBeneficiario(Event ev) {

        txtNomBene.getValue();
        txtApPBene.getValue();
        txtApMBene.getValue();
        cmbtP.getValue();

        try {
            TipoCortesiaDescuento tcd;
            try {
                tcd = (TipoCortesiaDescuento) cmbtP.getSelectedItem().getValue();
                boolean existe = false;
                for (CortesiaBeneficiario cb : cortesiaBeneficiarioList) {
                    if (cb.getNombBenef().equals(txtNomBene.getValue())) {
                        existe = true;
                    }
                }
                if (!existe) {
                    CortesiaBeneficiario cb = new CortesiaBeneficiario();
                    cb.setCortesia(cortesia);
                    cb.setNombBenef(txtNomBene.getValue());
                    cb.setNombPaterno(txtApPBene.getValue());
                    cb.setNombMaterno(txtApMBene.getValue());
                    cb.setFecUtilizacionIda(null);
                    cb.setFecUtilizacionRegreso(null);
                    cb.setDescuento(tcd);
                    cb.setActivo(Boolean.TRUE);
                    cb.setFecmodif(Calendar.getInstance().getTime());
                    cb.setUsuarioId(UsuarioLogado.getUsuarioLogado().getUsuarioId());

                    if (radioEmpleado.isChecked()) {
                        cb.setIndtipobenef("E");
                    } else if (radioFamiliar.isChecked()) {
                        cb.setIndtipobenef("F");
                    }
                    cortesiaBeneficiarioList.add(cb);
                    beneficiarioList.setData(cortesiaBeneficiarioList);
                    cortesia.setCortesiaBeneficiarioList(cortesiaBeneficiarioList);
                }else{
                	Messagebox.show(
                            Labels.getLabel("editarAltaCortesiaRHController.MSG.yaExisteBeneficiario"),
                            Labels.getLabel("editarAltaCortesiaRHController.window.title"),
                            Messagebox.OK, Messagebox.EXCLAMATION);
                }
            } catch (Exception e) {
                Messagebox.show(
                        Labels.getLabel("editarAltaCortesiaRHController.MSG.porcentaje"),
                        Labels.getLabel("editarAltaCortesiaRHController.window.title"),
                        Messagebox.OK, Messagebox.EXCLAMATION);
            }
        } catch (Exception ex) {
            log.error("",ex);
            Clients.alert(
                    Labels.getLabel("MSG.Error"),
                    Labels.getLabel("editarAltaCortesiaRHController.window.title"),
                    Messagebox.ERROR);
        }
    }

    public void onClick$btnApagarBeneficiario(Event ev) {
        try {
            CortesiaBeneficiario cb = (CortesiaBeneficiario) beneficiarioList.getSelected();
            if (cb != null) {
                cortesiaBeneficiarioList.remove(cb);

                beneficiarioList.removeItem(cb);

                cortesia.setCortesiaBeneficiarioList(cortesiaBeneficiarioList);
            }

        } catch (Exception ex) {
            log.error("",ex);
            Clients.alert(
                    Labels.getLabel("MSG.Error"),
                    Labels.getLabel("editarAltaCortesiaRHController.window.title"),
                    Messagebox.ERROR);
        }
    }

    private void voltarAbaEmpleado() {
//        Comboitem cbiTipoCortersia = cmbTipoCortesia.getSelectedItem();
//        if (cbiTipoCortersia == null) {
//            tabEmpleado.getTabbox().setSelectedTab(tabEmpleado);
//
//            try {
//                Messagebox.show(
//                        Labels.getLabel("editarAltaCortesiaRHController.MSG.cortesia"),
//                        Labels.getLabel("editarAltaCortesiaRHController.window.title"),
//                        Messagebox.OK, Messagebox.EXCLAMATION);
//            } catch (Exception ex) {
//                log.error(ex);
//            }
//        }
    }

    public void onClick$tabViaje(Event ev) {
        voltarAbaEmpleado();
    }

    public void onClick$tabBeneficiarios(Event ev) {
        voltarAbaEmpleado();
    }

    public TipoCortesiaDescuento getTd() {
        return td;
    }

    public void setTd(TipoCortesiaDescuento td) {
        this.td = td;
    }

    public GrupoCortesia getGc() {
        return gc;
    }

    public void setGc(GrupoCortesia gc) {
        this.gc = gc;
    }

    public TipoCortesia getTc() {
        return tc;
    }

    public void setTc(TipoCortesia tc) {
        this.tc = tc;
    }

    public Combobox getCmbtP() {
        return cmbtP;
    }

    public void setCmbtP(Combobox cmbtP) {
        this.cmbtP = cmbtP;
    }

    public Textbox getTxtApM() {
        return txtApM;
    }

    public void setTxtApM(Textbox txtApM) {
        this.txtApM = txtApM;
    }

    public Textbox getTxtApP() {
        return txtApP;
    }

    public void setTxtApP(Textbox txtApP) {
        this.txtApP = txtApP;
    }

    public Textbox getTxtEmpresa() {
        return txtEmpresa;
    }

    public void setTxtEmpresa(Textbox txtEmpresa) {
        this.txtEmpresa = txtEmpresa;
    }

    public Textbox getTxtPuesto() {
        return txtPuesto;
    }

    public void setTxtPuesto(Textbox txtPuesto) {
        this.txtPuesto = txtPuesto;
    }

    public Textbox getTxtNombre() {
        return txtNombre;
    }

    public void setTxtNombre(Textbox txtNombre) {
        this.txtNombre = txtNombre;
    }

    public MyListbox getBeneficiarioList() {
        return beneficiarioList;
    }

    public void setBeneficiarioList(MyListbox beneficiarioList) {
        this.beneficiarioList = beneficiarioList;
    }

    public List<Empleado> getEmpleadoLis1() {
        return empleadoLis1;
    }

    public void setEmpleadoLis1(List<Empleado> empleadoLis1) {
        this.empleadoLis1 = empleadoLis1;
    }

    public Textbox getTxtApMBene() {
        return txtApMBene;
    }

    public void setTxtApMBene(Textbox txtApMBene) {
        this.txtApMBene = txtApMBene;
    }

    public Textbox getTxtApPBene() {
        return txtApPBene;
    }

    public void setTxtApPBene(Textbox txtApPBene) {
        this.txtApPBene = txtApPBene;
    }

    public Textbox getTxtNomBene() {
        return txtNomBene;
    }

    public void setTxtNomBene(Textbox txtNomBene) {
        this.txtNomBene = txtNomBene;
    }

    public Combobox getCmbclaseser() {
        return cmbclaseser;
    }

    public void setCmbclaseser(Combobox cmbclaseser) {
        this.cmbclaseser = cmbclaseser;
    }

    public Combobox getCmbmarca() {
        return cmbmarca;
    }

    public void setCmbmarca(Combobox cmbmarca) {
        this.cmbmarca = cmbmarca;
    }

    public Combobox getCmbmotivo() {
        return cmbmotivo;
    }

    public void setCmbmotivo(Combobox cmbmotivo) {
        this.cmbmotivo = cmbmotivo;
    }

    public Combobox getCmbtipoC() {
        return cmbtipoC;
    }

    public void setCmbtipoC(Combobox cmbtipoC) {
        this.cmbtipoC = cmbtipoC;
    }

    public Datebox getFecfinal() {
        return fecfinal;
    }

    public void setFecfinal(Datebox fecfinal) {
        this.fecfinal = fecfinal;
    }

    public Datebox getFecinicio() {
        return fecinicio;
    }

    public void setFecinicio(Datebox fecinicio) {
        this.fecinicio = fecinicio;
    }

    public Textbox getTxtNome() {
        return txtNome;
    }

    public void setTxtNome(Textbox txtNome) {
        this.txtNome = txtNome;
    }

    public Combobox getCmbTipoCortesia() {
        return cmbTipoCortesia;
    }

    public void setCmbTipoCortesia(Combobox cmbTipoCortesia) {
        this.cmbTipoCortesia = cmbTipoCortesia;
    }

    public List<TipoCortesia> getTipoCortesiaList() {
        return tipoCortesiaList;
    }

    public void setTipoCortesiaList(List<TipoCortesia> tipoCortesiaList) {
        this.tipoCortesiaList = tipoCortesiaList;
    }

    public TipoCortesiaService getTipoCortesiaService() {
        return tipoCortesiaService;
    }

    public void setTipoCortesiaService(TipoCortesiaService tipoCortesiaService) {
        this.tipoCortesiaService = tipoCortesiaService;
    }

    public List<ClaseServicio> getClaseServicioList() {
        return claseServicioList;
    }

    public void setClaseServicioList(List<ClaseServicio> claseServicioList) {
        this.claseServicioList = claseServicioList;
    }

    public List<Marca> getMarcaList() {
        return marcaList;
    }

    public void setMarcaList(List<Marca> marcaList) {
        this.marcaList = marcaList;
    }

    public List<MotivoViaje> getMotivoViajeList() {
        return motivoViajeList;
    }

    public void setMotivoViajeList(List<MotivoViaje> motivoViajeList) {
        this.motivoViajeList = motivoViajeList;
    }

    public Radio getRadioEmpleado() {
        return radioEmpleado;
    }

    public void setRadioEmpleado(Radio radioEmpleado) {
        this.radioEmpleado = radioEmpleado;
    }

    public Radio getRadioFamiliar() {
        return radioFamiliar;
    }

    public void setRadioFamiliar(Radio radioFamiliar) {
        this.radioFamiliar = radioFamiliar;
    }

    public List<TipoCortesiaDescuento> getTipoCortesiaDescuentoList() {
        return tipoCortesiaDescuentoList;
    }

    public void setTipoCortesiaDescuentoList(List<TipoCortesiaDescuento> tipoCortesiaDescuentoList) {
        this.tipoCortesiaDescuentoList = tipoCortesiaDescuentoList;
    }

    public Radio getRadioRedondo() {
        return radioRedondo;
    }

    public void setRadioRedondo(Radio radioRedondo) {
        this.radioRedondo = radioRedondo;
    }

    public Radio getRadioSencillo() {
        return radioSencillo;
    }

    public void setRadioSencillo(Radio radioSencillo) {
        this.radioSencillo = radioSencillo;
    }

    public Empleado getEmpleado() {
        return empleado;
    }

    public void setEmpleado(Empleado empleado) {
        this.empleado = empleado;
    }

    public List<Cortesia> getCortesiasList() {
        return cortesiasList;
    }

    public void setCortesiasList(List<Cortesia> cortesiasList) {
        this.cortesiasList = cortesiasList;
    }

    public MyListbox getEmpleadoList() {
        return empleadoList;
    }

    public void setEmpleadoList(MyListbox empleadoList) {
        this.empleadoList = empleadoList;
    }

    public Cortesia getCortesia() {
        return cortesia;
    }

    public void setCortesia(Cortesia cortesia) {
        this.cortesia = cortesia;
    }

    public Textbox getTxtClaveE() {
        return txtClaveE;
    }

    public void setTxtClaveE(Textbox txtClaveE) {
        this.txtClaveE = txtClaveE;
    }

    public List<CortesiaBeneficiario> getCortesiaBeneficiarioList() {
        return cortesiaBeneficiarioList;
    }

    public void setCortesiaBeneficiarioList(List<CortesiaBeneficiario> cortesiaBeneficiarioList) {
        this.cortesiaBeneficiarioList = cortesiaBeneficiarioList;
    }

    public Button getBtnSalvar() {
        return btnSalvar;
    }

    public void setBtnSalvar(Button btnSalvar) {
        this.btnSalvar = btnSalvar;
    }

    public CortesiaBeneficiarioService getCortesiaBeneficiarioService() {
        return cortesiaBeneficiarioService;
    }

    public void setCortesiaBeneficiarioService(CortesiaBeneficiarioService cortesiaBeneficiarioService) {
        this.cortesiaBeneficiarioService = cortesiaBeneficiarioService;
    }

    public Textbox getTxtCortesia() {
        return txtCortesia;
    }

    public void setTxtCortesia(Textbox txtCortesia) {
        this.txtCortesia = txtCortesia;
    }

    public MyListbox getCortesiaList() {
        return cortesiaList;
    }

    public void setCortesiaList(MyListbox cortesiaList) {
        this.cortesiaList = cortesiaList;
    }

    public Datebox getFecIda() {
        return fecIda;
    }

    public void setFecIda(Datebox fecIda) {
        this.fecIda = fecIda;
    }

    public Datebox getFecRegreso() {
        return fecRegreso;
    }

    public void setFecRegreso(Datebox fecRegreso) {
        this.fecRegreso = fecRegreso;
    }

    public Button getBtnApagar() {
        return btnApagar;
    }

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

    public Button getBtnApagarBeneficiario() {
        return btnApagarBeneficiario;
    }

    public void setBtnApagarBeneficiario(Button btnApagarBeneficiario) {
        this.btnApagarBeneficiario = btnApagarBeneficiario;
    }

    public Tab getTabBeneficiarios() {
        return tabBeneficiarios;
    }

    public void setTabBeneficiarios(Tab tabBeneficiarios) {
        this.tabBeneficiarios = tabBeneficiarios;
    }

    public Tab getTabEmpleado() {
        return tabEmpleado;
    }

    public void setTabEmpleado(Tab tabEmpleado) {
        this.tabEmpleado = tabEmpleado;
    }

    public Tab getTabViaje() {
        return tabViaje;
    }

    public void setTabViaje(Tab tabViaje) {
        this.tabViaje = tabViaje;
    }

    public void onClick$radioEmpleado(Event e) {

        txtNomBene.setText(empleado.getNombEmpleado());
        txtApPBene.setText(empleado.getNombPaterno());
        txtApMBene.setText(empleado.getNombMaterno());

        txtNomBene.setDisabled(true);
        txtApPBene.setDisabled(true);
        txtApMBene.setDisabled(true);
    }

    public void onClick$radioFamiliar(Event e) {
        txtNomBene.setConstraint((String) null);
        txtApPBene.setConstraint((String) null);
        txtApMBene.setConstraint((String) null);
        txtNomBene.setText("");
        txtApPBene.setText("");
        txtApMBene.setText("");
        txtNomBene.setConstraint("no empty");
        txtApPBene.setConstraint("no empty");
        txtApMBene.setConstraint("no empty");

        txtNomBene.setDisabled(false);
        txtApPBene.setDisabled(false);
        txtApMBene.setDisabled(false);
    }
}
