SIGESA: Creación de mantenimiento de Parametros

  • Una página de parametros, es una página donde se puede modificar desde un módulo los parametros de SIGESA
  • Para esto debemos crear la página «parametrosPPE.java» en proyecto->modulo->web->model que va ser el bean que maneje la página de edición
  • Y tambien debemos crear una página de «parametrosPPEEditForm.xhtml» en proyecto->modulo->web->resources->META-INF->resources->pages
  • Creamos la página

parametrosPPEEditForm.java

  • Esta página tiene la siguiente estructura
  • Como se ve en imagen tiene una estructura de fieldsets para agrugar los campos
  • Entonces como ejemplo puede tener el siguiente contenido
<!--
Copyright (c) 2022.
Centro de Gestion Informatica
Direccion de Tecnologias de la Informacion y Comunicacion
Universidad Nacional - Costa Rica
http://www.una.ac.cr
-->
<!-- ******************************************************************************************** -->
<!-- ******************************************************************************************** -->
<!-- *****************************   COMPOSICIÓN   ********************************************** -->
<!-- ******************************************************************************************** -->
<!-- ******************************************************************************************** -->

<ui:composition template="/templates/crud.xhtml"
                xmlns="http://www.w3.org/1999/xhtml"
                xmlns:f="http://java.sun.com/jsf/core"
                xmlns:h="http://java.sun.com/jsf/html"
                xmlns:p="http://primefaces.org/ui"
                xmlns:ui="http://java.sun.com/jsf/facelets"
                xmlns:components="http://java.sun.com/jsf/composite/components"
                xmlns:una="http://una.ac.cr/ui/components">

                
    <!-- ******************************************************************************************** -->
    <!-- *****************************       TITLE        ******************************************* -->
    <!-- ******************************************************************************************** -->
    <ui:define name="title">#{i18n.parametrosPPE_edit_form_title}</ui:define>
    <!-- ******************************************************************************************** -->
    <!-- ******************************************************************************************** -->
    <!-- ******************************************************************************************** -->
    

    <!-- ******************************************************************************************** -->
    <!-- *****************************      PRERENDER     ******************************************* -->
    <!-- ******************************************************************************************** -->
    <ui:define name="preRender">
        <!--f:event type="preRenderView" listener="#{parametrosPPEBean.initParams()}" /-->
        <!--f:event type="preRenderView" listener="#{parametrosPPEBean.init()}" /-->
    </ui:define>
    <!-- ******************************************************************************************** -->
    <!-- ******************************************************************************************** -->
    <!-- ******************************************************************************************** -->




    

    <!-- ******************************************************************************************** -->
    <!-- *****************************       DEFINE       ******************************************* -->
    <!-- ******************************************************************************************** -->
    <ui:define name="contentCRUD">


        <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
        <!-- ++++++++++++++++++++++++++++++++++   TOOLBARPARAMS    ++++++++++++++++++++++++++++++++++++++ -->
        <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
        <components:toolbarParams
            paramBean="#{parametrosPPEBean}"/>
        <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
        <!-- ++++++++++++++++++++++++++++++++ FIN TOOLBARPARAMS    ++++++++++++++++++++++++++++++++++++++ -->
        <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->


        <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
        <!-- ++++++++++++++++++++++++++++++++     PANELPARAM  +++++++++++++++++++++++++++++++++++++++++++ -->
        <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->

        <una:panelForm id="panelParam"   
                       header="#{i18n.parametrosPPE_edit_form_title}"
                       i18nKey="parametrosPPE_edit_form_title">

            <!-- //////////////////////////////////////////////////////////////////////////////////////// -->
            <!-- //////////////////////////////    INSTRUCTIONS     ///////////////////////////////////// -->
            <!-- //////////////////////////////////////////////////////////////////////////////////////// -->        
            <components:requiredInstructions focus="panelParam" />
            <!-- //////////////////////////////////////////////////////////////////////////////////////// -->
            <!-- ///////////////////////////// FIN INSTRUCTIONS     ///////////////////////////////////// -->
            <!-- //////////////////////////////////////////////////////////////////////////////////////// -->  


            <!-- //////////////////////////////////////////////////////////////////////////////////////// -->
            <!-- //////////////////////////////      TABVIEW        ///////////////////////////////////// -->
            <!-- //////////////////////////////////////////////////////////////////////////////////////// --> 
            <p:tabView id="parametrosPPETabView" activeIndex="#{parametrosPPEBean.activeTab}">

                


                <!-- **************************************************************************************** -->
                <!-- **************************        TAB: ESTADOS     ************************************* -->
                <!-- **************************************************************************************** --> 
                <p:tab id="tab_estados" title="#{i18n.parametrosPPE_tab_estados}">

                    <!-- **************************************************************************************** -->
                    <!-- ****************      TAB-FIELDSET: ESTADOS FORMULACIÓN PAE    ************************* -->
                    <!-- **************************************************************************************** --> 
                    <p:fieldset 
                            id="parametrosPPE_estadosFormulacionPAE_fieldset" 
                            legend="#{i18n.parametrosPPE_estadoFormulacionPAE_tab_fieldset_title}" 
                            style="margin-bottom:20px">


                        <p:panelGrid columns="3" styleClass="una-panelgrid-nopadding"> 


    




                        </p:panelGrid>
                    </p:fieldset>
                    <!-- **************************************************************************************** -->
                    <!-- ****************  FIN TAB-FIELDSET: ESTADOS FORMULACIÓN PAE    ************************* -->
                    <!-- **************************************************************************************** --> 



                    <!-- **************************************************************************************** -->
                    <!-- ****************      TAB-FIELDSET: ESTADOS FORMULACIÓN PXE    ************************* -->
                    <!-- **************************************************************************************** --> 
                    <p:fieldset 
                            id="parametrosPPE_estadosFormulacionPXE_fieldset" 
                            legend="#{i18n.parametrosPPE_estadoFormulacionPXE_tab_fieldset_title}" 
                            style="margin-bottom:20px">


                            <p:panelGrid columns="3" styleClass="una-panelgrid-nopadding"> 


                    


                            </p:panelGrid>
                    </p:fieldset>
                    <!-- **************************************************************************************** -->
                    <!-- ****************  FIN TAB-FIELDSET: ESTADOS FORMULACIÓN PXE    ************************* -->
                    <!-- **************************************************************************************** --> 


                </p:tab>
                <!-- **************************************************************************************** -->
                <!-- **************************    FIN TAB: ESTADOS     ************************************* -->
                <!-- **************************************************************************************** --> 




                <!-- **************************************************************************************** -->
                <!-- **************************        TAB: VARIOS      ************************************* -->
                <!-- **************************************************************************************** --> 
                <p:tab id="tab_varios" title="#{i18n.parametrosPPE_tab_varios}">

                    <!-- **************************************************************************************** -->
                    <!-- ****************         TAB-FIELDSET: TIPODOCUMENTO           ************************* -->
                    <!-- **************************************************************************************** -->
                    <p:fieldset 
                        id="parametrosPPE_tipoDocumento_fieldset" 
                        legend="#{i18n.parametrosPPE_tipoDocumento_tab_fieldset_title}" 
                        style="margin-bottom:20px">

                            <p:panelGrid columns="3" styleClass="una-panelgrid-nopadding">


               

                            </p:panelGrid>
                        
                    </p:fieldset>
                    <!-- **************************************************************************************** -->
                    <!-- ****************     FIN TAB-FIELDSET: TIPODOCUMENTO           ************************* -->
                    <!-- **************************************************************************************** -->


                    <!-- **************************************************************************************** -->
                    <!-- ****************         TAB-FIELDSET: VARIOS PXE              ************************* -->
                    <!-- **************************************************************************************** -->
                    <p:fieldset 
                        id="parametrosPPE_PXE_fieldset" 
                        legend="#{i18n.parametrosPPE_tipoPlan_PXE_tab_fieldset_title}" 
                        style="margin-bottom:20px">

                        <p:panelGrid columns="3" styleClass="una-panelgrid-nopadding">



                        </p:panelGrid>

                    </p:fieldset>
                    <!-- **************************************************************************************** -->
                    <!-- ****************     FIN TAB-FIELDSET: VARIOS PXE              ************************* -->
                    <!-- **************************************************************************************** -->


                </p:tab>
                <!-- **************************************************************************************** -->
                <!-- **************************    FIN TAB: VARIOS      ************************************* -->
                <!-- **************************************************************************************** --> 

            </p:tabView>
            <!-- //////////////////////////////////////////////////////////////////////////////////////// -->
            <!-- //////////////////////////////  FIN TABVIEW        ///////////////////////////////////// -->
            <!-- //////////////////////////////////////////////////////////////////////////////////////// --> 

        </una:panelForm>
        <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
        <!-- ++++++++++++++++++++++++++++++++ FIN PANELPARAM  +++++++++++++++++++++++++++++++++++++++++++ -->
        <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->

    </ui:define>
    <!-- ******************************************************************************************** -->
    <!-- *****************************   FIN DEFINE       ******************************************* -->
    <!-- ******************************************************************************************** -->



</ui:composition>
<!-- ******************************************************************************************** -->
<!-- ******************************************************************************************** -->
<!-- **************************  FIN COMPOSICIÓN   ********************************************** -->
<!-- ******************************************************************************************** -->
<!-- ******************************************************************************************** -->

parametrosPPEBean.java

  • Creamos el Bean

/*
 * Copyright (c) 2022.
 *
 * Centro de Gestion Informatica
 * Direccion de Tecnologias de la Informacion y Comunicacion
 * Universidad Nacional - Costa Rica
 * http://www.una.ac.cr
 *
 */

/**********************************************************************/
/**********************************************************************/
/*********************       PACKAGE     ******************************/
/**********************************************************************/
/**********************************************************************/
package cr.ac.una.cgi.sigesa.ppi.ppe.view.model;


/**********************************************************************/
/**********************************************************************/
/*********************       IMPORT'S    ******************************/
/**********************************************************************/
/**********************************************************************/


/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
/*+++++++++++++              SPRING         ++++++++++++++++++++++++++*/
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Component;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;



/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
/*+++++++++++++             SDK-UNA         ++++++++++++++++++++++++++*/
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
import cr.ac.una.cgi.sdkuna.domain.Parametro;
import cr.ac.una.cgi.sdkuna.service.ParametroService;
import cr.ac.una.cgi.sdkuna.view.commons.CRUD;
import cr.ac.una.cgi.sdkuna.view.commons.CRUDImpl;





/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
/*+++++++++++++           GENERALES         ++++++++++++++++++++++++++*/
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
import java.io.Serializable;
import java.util.List;


/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
/*+++++++++++++          PARAMETROS         ++++++++++++++++++++++++++*/
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/


/**********************************************************************/
/**********************************************************************/
/*********************    DOCUMENTACIÓN  ******************************/
/**********************************************************************/
/**********************************************************************/
/**
 * Bean para la administración de la página parametrosPPEEditForm.xhtml
 *
 * @author Gustavo Matamoros González
 * @fechaCreacion: 15/11/2022
 * @fechaModificacion: 15/11/2022
 * @Version: 1.0.0
 * @modulo: PPI-PPE
 * @issue: PPI-248
 */

/**********************************************************************/
/**********************************************************************/
/*********************    CONFIGURACIÓN  ******************************/
/**********************************************************************/
/**********************************************************************/
@Component
@Scope("session")

/**********************************************************************/
/**********************************************************************/
/****************** DEFINICIÓN DE CLASE  ******************************/
/**********************************************************************/
/**********************************************************************/
public class ParametrosPPEBean extends CRUDImpl<Parametro, ParametroService> implements CRUD, Serializable{
    






    
    /******************************************************************/
    /******************************************************************/
    /*********************     AUTOWIRED    ***************************/
    /******************************************************************/
    /******************************************************************/

   

    /******************************************************************/
    /******************************************************************/
    /********************* FIN AUTOWIRED    ***************************/
    /******************************************************************/
    /******************************************************************/






    /******************************************************************/
    /******************************************************************/
    /********************* FIN VARIABLES    ***************************/
    /******************************************************************/
    /******************************************************************/




    /******************************************************************/
    /******************************************************************/
    /*********************     MÉTODOS      ***************************/
    /******************************************************************/
    /******************************************************************/

   


    /******************************************************************/
    /******************************************************************/
    /********************* FIN MÉTODOS      ***************************/
    /******************************************************************/
    /******************************************************************/




}
/**********************************************************************/
/**********************************************************************/
/**********************************************************************/
/**********************************************************************/
/**********************************************************************/

Campos tipo estados (paramterosPPEBean.java)

  • Para poder trabajar con campos de tipo estados (parm en sigesa)
  • Estos se presenta como una lista
  • Primero debemos agregar los import’s de, en la sección de parametros
    • la clase
    • Y del servicio
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
/*+++++++++++++          PARAMETROS         ++++++++++++++++++++++++++*/
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/

//-----------------------------------------------------------------
//EstadoFormulacionPAE
//-----------------------------------------------------------------
import cr.ac.una.cgi.sigesa.ppi.ppe.domain.EstadoFormulacionPAE;
import cr.ac.una.cgi.sigesa.ppi.ppe.service.EstadoFormulacionPAEService;

  • Luego debeos agregar los AutoWired para el servicio
//-----------------------------------------------------------------
    //EstadoFormulacionPAE
    //-----------------------------------------------------------------
    @Autowired
    private EstadoFormulacionPAEService estadoFormulacionPAEService;
  • Y luego declarar variables del tipo de objeto que se esta trabajando con el mismo nombre que el parametro SIGESA
//-----------------------------------------------------------------
    //EstadoFormulacionPAE
    //-----------------------------------------------------------------
    private EstadoFormulacionPAE param_ppi_ppe_estadoFormulacionPAE_anulado;
    private EstadoFormulacionPAE param_ppi_ppe_estadoFormulacionPAE_borrador;
    private EstadoFormulacionPAE param_ppi_ppe_estadoFormulacionPAE_completado;
    private EstadoFormulacionPAE param_ppi_ppe_estadoFormulacionPAE_ratificado;
    private EstadoFormulacionPAE param_ppi_ppe_estadoFormulacionPAE_aprobado;
  • Luego declaramos un metodo que obtenga el servicio
// Obtener EstadoFormulacionPXEService
    public EstadoFormulacionPAEService getEstadoFormulacionPAEService() {
        return estadoFormulacionPAEService;
    }
  • Y un metodo que obtenga una lista de los estados con findAll
// Obtener todos los estados de formulación PXE
    public List<EstadoFormulacionPAE> getEstadosFormulacionPAE() {
        return estadoFormulacionPAEService.findAll();
    }
  • Y luego hay que crear un get y set por cada uno de los estados
//-----------------------------------------------------------------
    //EstadoFormulacionPAE: Anulado
    //-----------------------------------------------------------------
    public EstadoFormulacionPAE getParam_ppi_ppe_estadoFormulacionPAE_anulado() {
        return param_ppi_ppe_estadoFormulacionPAE_anulado;
    }

    public void setParam_ppi_ppe_estadoFormulacionPAE_anulado(EstadoFormulacionPAE param_ppi_ppe_estadoFormulacionPAE_anulado) {
        this.param_ppi_ppe_estadoFormulacionPAE_anulado = param_ppi_ppe_estadoFormulacionPAE_anulado;
    }
  • RESULTADO
/*
 * Copyright (c) 2022.
 *
 * Centro de Gestion Informatica
 * Direccion de Tecnologias de la Informacion y Comunicacion
 * Universidad Nacional - Costa Rica
 * http://www.una.ac.cr
 *
 */

/**********************************************************************/
/**********************************************************************/
/*********************       PACKAGE     ******************************/
/**********************************************************************/
/**********************************************************************/
package cr.ac.una.cgi.sigesa.ppi.ppe.view.model;


/**********************************************************************/
/**********************************************************************/
/*********************       IMPORT'S    ******************************/
/**********************************************************************/
/**********************************************************************/


/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
/*+++++++++++++              SPRING         ++++++++++++++++++++++++++*/
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Component;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;



/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
/*+++++++++++++             SDK-UNA         ++++++++++++++++++++++++++*/
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
import cr.ac.una.cgi.sdkuna.domain.Parametro;
import cr.ac.una.cgi.sdkuna.service.ParametroService;
import cr.ac.una.cgi.sdkuna.view.commons.CRUD;
import cr.ac.una.cgi.sdkuna.view.commons.CRUDImpl;





/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
/*+++++++++++++           GENERALES         ++++++++++++++++++++++++++*/
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
import java.io.Serializable;
import java.util.List;


/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
/*+++++++++++++          PARAMETROS         ++++++++++++++++++++++++++*/
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/

//-----------------------------------------------------------------
//EstadoFormulacionPAE
//-----------------------------------------------------------------
import cr.ac.una.cgi.sigesa.ppi.ppe.domain.EstadoFormulacionPAE;
import cr.ac.una.cgi.sigesa.ppi.ppe.service.EstadoFormulacionPAEService;



/**********************************************************************/
/**********************************************************************/
/*********************    DOCUMENTACIÓN  ******************************/
/**********************************************************************/
/**********************************************************************/
/**
 * Bean para la administración de la página parametrosPPEEditForm.xhtml
 *
 * @author Gustavo Matamoros González
 * @fechaCreacion: 15/11/2022
 * @fechaModificacion: 15/11/2022
 * @Version: 1.0.0
 * @modulo: PPI-PPE
 * @issue: PPI-248
 */

/**********************************************************************/
/**********************************************************************/
/*********************    CONFIGURACIÓN  ******************************/
/**********************************************************************/
/**********************************************************************/
@Component
@Scope("session")

/**********************************************************************/
/**********************************************************************/
/****************** DEFINICIÓN DE CLASE  ******************************/
/**********************************************************************/
/**********************************************************************/
public class ParametrosPPEBean extends CRUDImpl<Parametro, ParametroService> implements CRUD, Serializable{
    






    
    /******************************************************************/
    /******************************************************************/
    /*********************     AUTOWIRED    ***************************/
    /******************************************************************/
    /******************************************************************/

    //-----------------------------------------------------------------
    //EstadoFormulacionPAE
    //-----------------------------------------------------------------
    @Autowired
    private EstadoFormulacionPAEService estadoFormulacionPAEService;




    /******************************************************************/
    /******************************************************************/
    /********************* FIN AUTOWIRED    ***************************/
    /******************************************************************/
    /******************************************************************/







    /******************************************************************/
    /******************************************************************/
    /*********************     VARIABLES    ***************************/
    /******************************************************************/
    /******************************************************************/




    //-----------------------------------------------------------------
    //EstadoFormulacionPAE
    //-----------------------------------------------------------------
    private EstadoFormulacionPAE param_ppi_ppe_estadoFormulacionPAE_anulado;
    private EstadoFormulacionPAE param_ppi_ppe_estadoFormulacionPAE_borrador;
    private EstadoFormulacionPAE param_ppi_ppe_estadoFormulacionPAE_completado;
    private EstadoFormulacionPAE param_ppi_ppe_estadoFormulacionPAE_ratificado;
    private EstadoFormulacionPAE param_ppi_ppe_estadoFormulacionPAE_aprobado;






    /******************************************************************/
    /******************************************************************/
    /********************* FIN VARIABLES    ***************************/
    /******************************************************************/
    /******************************************************************/

   


    /******************************************************************/
    /******************************************************************/
    /*********************     MÉTODOS      ***************************/
    /******************************************************************/
    /******************************************************************/
   


    /* ############################################################## */
    /* ##############   EstadoFormulacionPAE  ####################### */
    /* ############################################################## */

    //-----------------------------------------------------------------
    //EstadoFormulacionPAE
    //-----------------------------------------------------------------

    // Obtener todos los estados de formulación PXE
    public List<EstadoFormulacionPAE> getEstadosFormulacionPAE() {
        return estadoFormulacionPAEService.findAll();
    }

    // Obtener EstadoFormulacionPXEService
    public EstadoFormulacionPAEService getEstadoFormulacionPAEService() {
        return estadoFormulacionPAEService;
    }

    //-----------------------------------------------------------------
    //EstadoFormulacionPAE: Anulado
    //-----------------------------------------------------------------
    public EstadoFormulacionPAE getParam_ppi_ppe_estadoFormulacionPAE_anulado() {
        return param_ppi_ppe_estadoFormulacionPAE_anulado;
    }

    public void setParam_ppi_ppe_estadoFormulacionPAE_anulado(EstadoFormulacionPAE param_ppi_ppe_estadoFormulacionPAE_anulado) {
        this.param_ppi_ppe_estadoFormulacionPAE_anulado = param_ppi_ppe_estadoFormulacionPAE_anulado;
    }

    //-----------------------------------------------------------------
    //EstadoFormulacionPAE: Borrador
    //-----------------------------------------------------------------
    public EstadoFormulacionPAE getParam_ppi_ppe_estadoFormulacionPAE_borrador() {
        return param_ppi_ppe_estadoFormulacionPAE_borrador;
    }

    public void setParam_ppi_ppe_estadoFormulacionPAE_borrador(EstadoFormulacionPAE param_ppi_ppe_estadoFormulacionPAE_borrador) {
        this.param_ppi_ppe_estadoFormulacionPAE_borrador = param_ppi_ppe_estadoFormulacionPAE_borrador;
    }


    //-----------------------------------------------------------------
    //EstadoFormulacionPAE: Completado
    //-----------------------------------------------------------------
    public EstadoFormulacionPAE getParam_ppi_ppe_estadoFormulacionPAE_completado() {
        return param_ppi_ppe_estadoFormulacionPAE_completado;
    }

    public void setParam_ppi_ppe_estadoFormulacionPAE_completado(EstadoFormulacionPAE param_ppi_ppe_estadoFormulacionPAE_completado) {
        this.param_ppi_ppe_estadoFormulacionPAE_completado = param_ppi_ppe_estadoFormulacionPAE_completado;
    }


    //-----------------------------------------------------------------
    //EstadoFormulacionPAE: Ratificado
    //-----------------------------------------------------------------
    public EstadoFormulacionPAE getParam_ppi_ppe_estadoFormulacionPAE_ratificado() {
        return param_ppi_ppe_estadoFormulacionPAE_ratificado;
    }

    public void setParam_ppi_ppe_estadoFormulacionPAE_ratificado(EstadoFormulacionPAE param_ppi_ppe_estadoFormulacionPAE_ratificado) {
        this.param_ppi_ppe_estadoFormulacionPAE_ratificado = param_ppi_ppe_estadoFormulacionPAE_ratificado;
    }

    //-----------------------------------------------------------------
    //EstadoFormulacionPAE: Aprobado
    //-----------------------------------------------------------------
    public EstadoFormulacionPAE getParam_ppi_ppe_estadoFormulacionPAE_aprobado() {
        return param_ppi_ppe_estadoFormulacionPAE_aprobado;
    }

    public void setParam_ppi_ppe_estadoFormulacionPAE_aprobado(EstadoFormulacionPAE param_ppi_ppe_estadoFormulacionPAE_aprobado) {
        this.param_ppi_ppe_estadoFormulacionPAE_aprobado = param_ppi_ppe_estadoFormulacionPAE_aprobado;
    }
    /* ############################################################## */
    /* ############     FIN EstadoFormulacionPAE  ################### */
    /* ############################################################## */





    /******************************************************************/
    /******************************************************************/
    /********************* FIN MÉTODOS      ***************************/
    /******************************************************************/
    /******************************************************************/




}
/**********************************************************************/
/**********************************************************************/
/**********************************************************************/
/**********************************************************************/
/**********************************************************************/

parametrosPPEEditForm.xhtml

  • Ahora en la interfaz por cada unos de los estados debemos agregar
<!--####################################################################################-->
                            <!--#################      ESTADO FORMULACION PAE: ANULADO     #########################-->
                            <!--####################################################################################-->
                            <p:outputLabel id="parametrosPPE_estadoFormulacionPAE_anulado_OutputLabel"
                                           for="param_ppi_ppe_estadoFormulacionPAE_anulado"
                                           value="#{i18n.parametrosPPE_estadoFormulacionPAE_anulado_label}" />

                            <p:selectOneMenu id="param_ppi_ppe_estadoFormulacionPAE_anulado" 
                                        value="#{parametrosPPEBean.param_ppi_ppe_estadoFormulacionPAE_anulado}"
                                        required="true"
                                        style="width: 230px !important"
                                        converter="#{estadoFormulacionPAEBean.converter}">
´
                                <f:selectItem itemLabel="#{i18n.parametrosPPE_estadoFormulacionPAE_select_label}"
                                            itemValue="#{null}"
                                            noSelectionOption="true" />

                                <f:selectItems value="#{parametrosPPEBean.estadosFormulacionPAE}" 
                                            var="estadoFormulacionPAE"
                                            itemLabel="#{estadoFormulacionPAE.nombre}"
                                            itemValue="#{estadoFormulacionPAE}"/> 

                                <f:attribute name="service" value="#{parametrosPPEBean.estadoFormulacionPAEService}"/>

                            </p:selectOneMenu>

                                
                            <p:message id="estadoFormulacionPAEAnuladoMessage" 
                                       for="param_ppi_ppe_estadoFormulacionPAE_anulado" />  
                            <!--####################################################################################-->
                            <!--####################################################################################-->
                            <!--####################################################################################-->
  • RESULTADO
<!--
Copyright (c) 2022.
Centro de Gestion Informatica
Direccion de Tecnologias de la Informacion y Comunicacion
Universidad Nacional - Costa Rica
http://www.una.ac.cr
-->
<!-- ******************************************************************************************** -->
<!-- ******************************************************************************************** -->
<!-- *****************************   COMPOSICIÓN   ********************************************** -->
<!-- ******************************************************************************************** -->
<!-- ******************************************************************************************** -->

<ui:composition template="/templates/crud.xhtml"
                xmlns="http://www.w3.org/1999/xhtml"
                xmlns:f="http://java.sun.com/jsf/core"
                xmlns:h="http://java.sun.com/jsf/html"
                xmlns:p="http://primefaces.org/ui"
                xmlns:ui="http://java.sun.com/jsf/facelets"
                xmlns:components="http://java.sun.com/jsf/composite/components"
                xmlns:una="http://una.ac.cr/ui/components">

                
    <!-- ******************************************************************************************** -->
    <!-- *****************************       TITLE        ******************************************* -->
    <!-- ******************************************************************************************** -->
    <ui:define name="title">#{i18n.parametrosPPE_edit_form_title}</ui:define>
    <!-- ******************************************************************************************** -->
    <!-- ******************************************************************************************** -->
    <!-- ******************************************************************************************** -->
    

    <!-- ******************************************************************************************** -->
    <!-- *****************************      PRERENDER     ******************************************* -->
    <!-- ******************************************************************************************** -->
    <ui:define name="preRender">
        <!--f:event type="preRenderView" listener="#{parametrosPPEBean.initParams()}" />
        <f:event type="preRenderView" listener="#{parametrosPPEBean.init()}" />
        <f:event type="preRenderView" listener="#{parametrosPPEBean.initProperties()}" /-->
    </ui:define>
    <!-- ******************************************************************************************** -->
    <!-- ******************************************************************************************** -->
    <!-- ******************************************************************************************** -->




    

    <!-- ******************************************************************************************** -->
    <!-- *****************************       DEFINE       ******************************************* -->
    <!-- ******************************************************************************************** -->
    <ui:define name="contentCRUD">


        <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
        <!-- ++++++++++++++++++++++++++++++++++   TOOLBARPARAMS    ++++++++++++++++++++++++++++++++++++++ -->
        <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
        <components:toolbarParams
            paramBean="#{parametrosPPEBean}"/>
        <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
        <!-- ++++++++++++++++++++++++++++++++ FIN TOOLBARPARAMS    ++++++++++++++++++++++++++++++++++++++ -->
        <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->


        <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
        <!-- ++++++++++++++++++++++++++++++++     PANELPARAM  +++++++++++++++++++++++++++++++++++++++++++ -->
        <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->

        <una:panelForm id="panelParam"   
                       header="#{i18n.parametrosPPE_edit_form_title}"
                       i18nKey="parametrosPPE_edit_form_title">

            <!-- //////////////////////////////////////////////////////////////////////////////////////// -->
            <!-- //////////////////////////////    INSTRUCTIONS     ///////////////////////////////////// -->
            <!-- //////////////////////////////////////////////////////////////////////////////////////// -->        
            <components:requiredInstructions focus="panelParam" />
            <!-- //////////////////////////////////////////////////////////////////////////////////////// -->
            <!-- ///////////////////////////// FIN INSTRUCTIONS     ///////////////////////////////////// -->
            <!-- //////////////////////////////////////////////////////////////////////////////////////// -->  


            <!-- //////////////////////////////////////////////////////////////////////////////////////// -->
            <!-- //////////////////////////////      TABVIEW        ///////////////////////////////////// -->
            <!-- //////////////////////////////////////////////////////////////////////////////////////// --> 
            <p:tabView id="parametrosPPETabView" activeIndex="#{parametrosPPEBean.activeTab}">

                


                <!-- **************************************************************************************** -->
                <!-- **************************        TAB: ESTADOS     ************************************* -->
                <!-- **************************************************************************************** --> 
                <p:tab id="tab_estados" title="#{i18n.parametrosPPE_tab_estados}">

                    <!-- **************************************************************************************** -->
                    <!-- ****************      TAB-FIELDSET: ESTADOS FORMULACIÓN PAE    ************************* -->
                    <!-- **************************************************************************************** --> 
                    <p:fieldset 
                            id="parametrosPPE_estadosFormulacionPAE_fieldset" 
                            legend="#{i18n.parametrosPPE_estadoFormulacionPAE_tab_fieldset_title}" 
                            style="margin-bottom:20px">


                        <p:panelGrid columns="3" styleClass="una-panelgrid-nopadding"> 


                            <!--####################################################################################-->
                            <!--#################      ESTADO FORMULACION PAE: ANULADO     #########################-->
                            <!--####################################################################################-->
                            <p:outputLabel id="parametrosPPE_estadoFormulacionPAE_anulado_OutputLabel"
                                           for="param_ppi_ppe_estadoFormulacionPAE_anulado"
                                           value="#{i18n.parametrosPPE_estadoFormulacionPAE_anulado_label}" />

                            <p:selectOneMenu id="param_ppi_ppe_estadoFormulacionPAE_anulado" 
                                        value="#{parametrosPPEBean.param_ppi_ppe_estadoFormulacionPAE_anulado}"
                                        required="true"
                                        style="width: 230px !important"
                                        converter="#{estadoFormulacionPAEBean.converter}">
´
                                <f:selectItem itemLabel="#{i18n.parametrosPPE_estadoFormulacionPAE_select_label}"
                                            itemValue="#{null}"
                                            noSelectionOption="true" />

                                <f:selectItems value="#{parametrosPPEBean.estadosFormulacionPAE}" 
                                            var="estadoFormulacionPAE"
                                            itemLabel="#{estadoFormulacionPAE.nombre}"
                                            itemValue="#{estadoFormulacionPAE}"/> 

                                <f:attribute name="service" value="#{parametrosPPEBean.estadoFormulacionPAEService}"/>

                            </p:selectOneMenu>

                                
                            <p:message id="estadoFormulacionPAEAnuladoMessage" 
                                       for="param_ppi_ppe_estadoFormulacionPAE_anulado" />  
                            <!--####################################################################################-->
                            <!--####################################################################################-->
                            <!--####################################################################################-->


                            <!--####################################################################################-->
                            <!--#################      ESTADO FORMULACION PAE: BORRADOR    #########################-->
                            <!--####################################################################################-->
                            <p:outputLabel id="parametrosPPE_estadoFormulacionPAE_borrador_OutputLabel"
                                           for="param_ppi_ppe_estadoFormulacionPAE_borrador"
                                           value="#{i18n.parametrosPPE_estadoFormulacionPAE_borrador_label}" />

                            <p:selectOneMenu id="param_ppi_ppe_estadoFormulacionPAE_borrador" 
                                        value="#{parametrosPPEBean.param_ppi_ppe_estadoFormulacionPAE_borrador}"
                                        required="true"
                                        style="width: 230px !important"
                                        converter="#{estadoFormulacionPAEBean.converter}">
    ´
                                <f:selectItem itemLabel="#{i18n.parametrosPPE_estadoFormulacionPAE_select_label}"
                                            itemValue="#{null}"
                                            noSelectionOption="true" />

                                <f:selectItems value="#{parametrosPPEBean.estadosFormulacionPAE}" 
                                            var="estadoFormulacionPAE"
                                            itemLabel="#{estadoFormulacionPAE.nombre}"
                                            itemValue="#{estadoFormulacionPAE}"/> 

                                <f:attribute name="service" value="#{parametrosPPEBean.estadoFormulacionPAEService}"/>

                            </p:selectOneMenu>

                                
                            <p:message id="estadoFormulacionPAEBorradorMessage" 
                                       for="param_ppi_ppe_estadoFormulacionPAE_borrador" />  
                            <!--####################################################################################-->
                            <!--####################################################################################-->
                            <!--####################################################################################-->


                            <!--####################################################################################-->
                            <!--#################      ESTADO FORMULACION PAE: COMPLETADO  #########################-->
                            <!--####################################################################################-->
                            <p:outputLabel id="parametrosPPE_estadoFormulacionPAE_completado_OutputLabel"
                                           for="param_ppi_ppe_estadoFormulacionPAE_completado"
                                           value="#{i18n.parametrosPPE_estadoFormulacionPAE_completado_label}" />

                            <p:selectOneMenu id="param_ppi_ppe_estadoFormulacionPAE_completado" 
                                        value="#{parametrosPPEBean.param_ppi_ppe_estadoFormulacionPAE_completado}"
                                        required="true"
                                        style="width: 230px !important"
                                        converter="#{estadoFormulacionPAEBean.converter}">
    ´
                                <f:selectItem itemLabel="#{i18n.parametrosPPE_estadoFormulacionPAE_select_label}"
                                            itemValue="#{null}"
                                            noSelectionOption="true" />

                                <f:selectItems value="#{parametrosPPEBean.estadosFormulacionPAE}" 
                                            var="estadoFormulacionPAE"
                                            itemLabel="#{estadoFormulacionPAE.nombre}"
                                            itemValue="#{estadoFormulacionPAE}"/> 

                                <f:attribute name="service" value="#{parametrosPPEBean.estadoFormulacionPAEService}"/>

                            </p:selectOneMenu>

                                
                            <p:message id="estadoFormulacionPAECompletadoMessage" 
                                       for="param_ppi_ppe_estadoFormulacionPAE_completado" />  
                            <!--####################################################################################-->
                            <!--####################################################################################-->
                            <!--####################################################################################-->


                            <!--####################################################################################-->
                            <!--#################      ESTADO FORMULACION PAE: RATIFICADO  #########################-->
                            <!--####################################################################################-->
                            <p:outputLabel id="parametrosPPE_estadoFormulacionPAE_ratificado_OutputLabel"
                                           for="param_ppi_ppe_estadoFormulacionPAE_ratificado"
                                           value="#{i18n.parametrosPPE_estadoFormulacionPAE_ratificado_label}" />

                            <p:selectOneMenu id="param_ppi_ppe_estadoFormulacionPAE_ratificado" 
                                        value="#{parametrosPPEBean.param_ppi_ppe_estadoFormulacionPAE_ratificado}"
                                        required="true"
                                        style="width: 230px !important"
                                        converter="#{estadoFormulacionPAEBean.converter}">
    ´
                                <f:selectItem itemLabel="#{i18n.parametrosPPE_estadoFormulacionPAE_select_label}"
                                            itemValue="#{null}"
                                            noSelectionOption="true" />

                                <f:selectItems value="#{parametrosPPEBean.estadosFormulacionPAE}" 
                                            var="estadoFormulacionPAE"
                                            itemLabel="#{estadoFormulacionPAE.nombre}"
                                            itemValue="#{estadoFormulacionPAE}"/> 

                                <f:attribute name="service" value="#{parametrosPPEBean.estadoFormulacionPAEService}"/>
                            </p:selectOneMenu>

                                
                            <p:message id="estadoFormulacionPAERatificadoMessage" 
                                       for="param_ppi_ppe_estadoFormulacionPAE_ratificado" />  
                            <!--####################################################################################-->
                            <!--####################################################################################-->
                            <!--####################################################################################-->

                            <!--####################################################################################-->
                            <!--#################      ESTADO FORMULACION PAE: APROBADO    #########################-->
                            <!--####################################################################################-->
                            <p:outputLabel id="parametrosPPE_estadoFormulacionPAE_aprobado_OutputLabel"
                                           for="param_ppi_ppe_estadoFormulacionPAE_aprobado"
                                           value="#{i18n.parametrosPPE_estadoFormulacionPAE_aprobado_label}" />

                            <p:selectOneMenu id="param_ppi_ppe_estadoFormulacionPAE_aprobado" 
                                        value="#{parametrosPPEBean.param_ppi_ppe_estadoFormulacionPAE_aprobado}"
                                        required="true"
                                        style="width: 230px !important"
                                        converter="#{estadoFormulacionPAEBean.converter}">
´
                                <f:selectItem itemLabel="#{i18n.parametrosPPE_estadoFormulacionPAE_select_label}"
                                            itemValue="#{null}"
                                            noSelectionOption="true" />

                                <f:selectItems value="#{parametrosPPEBean.estadosFormulacionPAE}" 
                                            var="estadoFormulacionPAE"
                                            itemLabel="#{estadoFormulacionPAE.nombre}"
                                            itemValue="#{estadoFormulacionPAE}"/> 

                                <f:attribute name="service" value="#{parametrosPPEBean.estadoFormulacionPAEService}"/>
                            </p:selectOneMenu>

                                
                            <p:message id="estadoFormulacionPAEAprobadoMessage" 
                                       for="param_ppi_ppe_estadoFormulacionPAE_aprobado" />  
                            <!--####################################################################################-->
                            <!--####################################################################################-->
                            <!--####################################################################################-->





                        </p:panelGrid>
                    </p:fieldset>
                    <!-- **************************************************************************************** -->
                    <!-- ****************  FIN TAB-FIELDSET: ESTADOS FORMULACIÓN PAE    ************************* -->
                    <!-- **************************************************************************************** --> 



                  


                </p:tab>
                <!-- **************************************************************************************** -->
                <!-- **************************    FIN TAB: ESTADOS     ************************************* -->
                <!-- **************************************************************************************** --> 




                <!-- **************************************************************************************** -->
                <!-- **************************        TAB: VARIOS      ************************************* -->
                <!-- **************************************************************************************** --> 
                <p:tab id="tab_varios" title="#{i18n.parametrosPPE_tab_varios}">

     

  

                </p:tab>
                <!-- **************************************************************************************** -->
                <!-- **************************    FIN TAB: VARIOS      ************************************* -->
                <!-- **************************************************************************************** --> 

            </p:tabView>
            <!-- //////////////////////////////////////////////////////////////////////////////////////// -->
            <!-- //////////////////////////////  FIN TABVIEW        ///////////////////////////////////// -->
            <!-- //////////////////////////////////////////////////////////////////////////////////////// --> 

        </una:panelForm>
        <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
        <!-- ++++++++++++++++++++++++++++++++ FIN PANELPARAM  +++++++++++++++++++++++++++++++++++++++++++ -->
        <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->

    </ui:define>
    <!-- ******************************************************************************************** -->
    <!-- *****************************   FIN DEFINE       ******************************************* -->
    <!-- ******************************************************************************************** -->



</ui:composition>
<!-- ******************************************************************************************** -->
<!-- ******************************************************************************************** -->
<!-- **************************  FIN COMPOSICIÓN   ********************************************** -->
<!-- ******************************************************************************************** -->
<!-- ******************************************************************************************** -->

Campos tipo: tipoDocumento

  • Dentro de SIGESA existe una tabla de tipo documento que pertece al proyecto EPF-CGE
  • Pero esto tiene la particularidad que estan relacionados por id_modulo en sigesa
  • Estos se presentan así:
  • Para poder trabajar con estos parametros debemos hacer

parametrosPPEBean.java

  • Incluir los imports de Sistema / Modulos / TipoDocumentos
//-----------------------------------------------------------------
//TipoDocumento
//-----------------------------------------------------------------
import cr.ac.una.cgi.sdkuna.domain.Sistema;
import cr.ac.una.cgi.sdkuna.service.SistemaService;
import cr.ac.una.cgi.sdkuna.domain.Modulo;
import cr.ac.una.cgi.sdkuna.service.ModuloService;
import cr.ac.una.cgi.sigesa.epf.cge.domain.TipoDocumento;
import cr.ac.una.cgi.sigesa.epf.cge.service.TipoDocumentoService;
  • AutoWired
//-----------------------------------------------------------------
    //TipoDocumento
    //-----------------------------------------------------------------

    @Autowired
    ModuloService moduloService;

    @Autowired
    TipoDocumentoService tipoDocumentoService;
  • Variables
//-----------------------------------------------------------------
    //TipoDocumento
    //-----------------------------------------------------------------

    // Almacena el Sistema
    private Sistema sistemaSelected;

    // Alamacena el módulo
    private Modulo param_ppi_ppe_modulo_id;

    private TipoDocumento param_ppi_ppe_tipoDocumento_planEducacionSuperior;
    private TipoDocumento param_ppi_ppe_tipoDocumento_planDesarrolloSostenible;
    private TipoDocumento param_ppi_ppe_tipoDocumento_planAccionEstrategica;
    private TipoDocumento param_ppi_ppe_tipoDocumento_planAporteEstrategico;
    private TipoDocumento param_ppi_ppe_tipoDocumento_planLargoPlazo;
    private TipoDocumento param_ppi_ppe_tipoDocumento_planLineaEstrategica;

Tareas para sistemas

  • Ahora creamos una funcion que se va a ejecutar al iniciar la interfaz grafica que va obtener el id del sistema
/* ############################################################## */
    /* ##############         init            ####################### */
    /* ############################################################## */
        
        public void init() {
            //Es la primera vez que ingresa
            if (!isPostBack()) {
                
                // obtenga el sistema
                if (param_ppi_ppe_modulo_id != null) {
                    sistemaSelected = param_ppi_ppe_modulo_id.getSistema();
                }
            }
        }

    /* ############################################################## */
    /* ##############     FIN init            ####################### */
    /* ############################################################## */
  • Los get y set para obtener la variable sistemaSelected
// Variable: sistemaSelected
    public Sistema getSistemaSelected() {
        return sistemaSelected;
    }

    // Variable: sistemaSelected
    public void setSistemaSelected(Sistema sistemaSelected) {
        this.sistemaSelected = sistemaSelected;
    }
  • Y una función para que limpie el sistema
// Limpeza Sistema
    public void handleClearSistema() {
        this.setSistemaSelected(null);
        handleClearModulo();
    }

Tareas para módulos

  • Creamos función para obtención del servicio
//-----------------------------------------------------------------
    //Módulo
    //-----------------------------------------------------------------
    
    //Servicio
    public ModuloService getModuloService() {
        return moduloService;
    }
//Servicio
    public void setModuloService(ModuloService moduloService) {com
        this.moduloService = moduloService;
    }
  • Get y set para obteneción de parametro param_ppi_ppe_modulo_id
//variable: getParam_ppi_ppe_modulo_id
    public Modulo getParam_ppi_ppe_modulo_id() {
        return param_ppi_ppe_modulo_id;
    }

    //variable: setParam_ppi_ppe_modulo_id
    public void setParam_ppi_ppe_modulo_id(Modulo param_ppi_ppe_modulo_id) {
        this.param_ppi_ppe_modulo_id = param_ppi_ppe_modulo_id;
    }
  • Y el método de limpieza
// Limpieza de módulo
    public void handleClearModulo() {
        this.setParam_ppi_ppe_modulo_id(null);
    }
  • Creamos un metodo para complete de modulo
// Autocomplete: módulo
    public Page<Modulo> completeModulo(String query, Pageable pageable) {
        return moduloService.findBySistemaOrderBySequenciaAsc(query, sistemaSelected, pageable);
    }

Tareas para TipoDocumento

  • get y set para el servicio
//-----------------------------------------------------------------
    //TipoDocumentoService
    //-----------------------------------------------------------------
    public TipoDocumentoService getTipoDocumentoService() {
        return tipoDocumentoService;
    }

    public void setTipoDocumentoService(TipoDocumentoService tipoDocumentoService) {
        this.tipoDocumentoService = tipoDocumentoService;
    }
  • Y luego hay que crea los get y set para cada tipo de documento
 //-----------------------------------------------------------------
    //TipoDocumento: planEducacionSuperior
    //-----------------------------------------------------------------
    public TipoDocumento getParam_ppi_ppe_tipoDocumento_planEducacionSuperior() {
        return param_ppi_ppe_tipoDocumento_planEducacionSuperior;
    }

    public void setParam_ppi_ppe_tipoDocumento_planEducacionSuperior(TipoDocumento param_ppi_ppe_tipoDocumento_planEducacionSuperior) {
        this.param_ppi_ppe_tipoDocumento_planEducacionSuperior = param_ppi_ppe_tipoDocumento_planEducacionSuperior;
    }

    //Limpieza
    public void handleClearTipoDocumentoPlanEducacionSuperior() {
        this.setParam_ppi_ppe_tipoDocumento_planEducacionSuperior(null);
    }
  • Resultado
/*
 * Copyright (c) 2022.
 *
 * Centro de Gestion Informatica
 * Direccion de Tecnologias de la Informacion y Comunicacion
 * Universidad Nacional - Costa Rica
 * http://www.una.ac.cr
 *
 */

/**********************************************************************/
/**********************************************************************/
/*********************       PACKAGE     ******************************/
/**********************************************************************/
/**********************************************************************/
package cr.ac.una.cgi.sigesa.ppi.ppe.view.model;


/**********************************************************************/
/**********************************************************************/
/*********************       IMPORT'S    ******************************/
/**********************************************************************/
/**********************************************************************/


/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
/*+++++++++++++              SPRING         ++++++++++++++++++++++++++*/
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Component;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;



/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
/*+++++++++++++             SDK-UNA         ++++++++++++++++++++++++++*/
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
import cr.ac.una.cgi.sdkuna.domain.Parametro;
import cr.ac.una.cgi.sdkuna.service.ParametroService;
import cr.ac.una.cgi.sdkuna.view.commons.CRUD;
import cr.ac.una.cgi.sdkuna.view.commons.CRUDImpl;





/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
/*+++++++++++++           GENERALES         ++++++++++++++++++++++++++*/
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
import java.io.Serializable;
import java.util.List;


/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
/*+++++++++++++          PARAMETROS         ++++++++++++++++++++++++++*/
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/



//-----------------------------------------------------------------
//TipoDocumento
//-----------------------------------------------------------------
import cr.ac.una.cgi.sdkuna.domain.Sistema;
import cr.ac.una.cgi.sdkuna.service.SistemaService;
import cr.ac.una.cgi.sdkuna.domain.Modulo;
import cr.ac.una.cgi.sdkuna.service.ModuloService;
import cr.ac.una.cgi.sigesa.epf.cge.domain.TipoDocumento;
import cr.ac.una.cgi.sigesa.epf.cge.service.TipoDocumentoService;


import java.util.HashMap;
import java.util.Map;

/**********************************************************************/
/**********************************************************************/
/*********************    DOCUMENTACIÓN  ******************************/
/**********************************************************************/
/**********************************************************************/
/**
 * Bean para la administración de la página parametrosPPEEditForm.xhtml
 *
 * @author Gustavo Matamoros González
 * @fechaCreacion: 15/11/2022
 * @fechaModificacion: 15/11/2022
 * @Version: 1.0.0
 * @modulo: PPI-PPE
 * @issue: PPI-248
 */

/**********************************************************************/
/**********************************************************************/
/*********************    CONFIGURACIÓN  ******************************/
/**********************************************************************/
/**********************************************************************/
@Component
@Scope("session")

/**********************************************************************/
/**********************************************************************/
/****************** DEFINICIÓN DE CLASE  ******************************/
/**********************************************************************/
/**********************************************************************/
public class ParametrosPPEBean extends CRUDImpl<Parametro, ParametroService> implements CRUD, Serializable{
    






    
    /******************************************************************/
    /******************************************************************/
    /*********************     AUTOWIRED    ***************************/
    /******************************************************************/
    /******************************************************************/

    //-----------------------------------------------------------------
    //TipoDocumento
    //-----------------------------------------------------------------

    @Autowired
    ModuloService moduloService;

    @Autowired
    TipoDocumentoService tipoDocumentoService;


    /******************************************************************/
    /******************************************************************/
    /********************* FIN AUTOWIRED    ***************************/
    /******************************************************************/
    /******************************************************************/







    /******************************************************************/
    /******************************************************************/
    /*********************     VARIABLES    ***************************/
    /******************************************************************/
    /******************************************************************/





    //-----------------------------------------------------------------
    //TipoDocumento
    //-----------------------------------------------------------------

    // Almacena el Sistema
    private Sistema sistemaSelected;

    // Alamacena el módulo
    private Modulo param_ppi_ppe_modulo_id;

    private TipoDocumento param_ppi_ppe_tipoDocumento_planEducacionSuperior;
    private TipoDocumento param_ppi_ppe_tipoDocumento_planDesarrolloSostenible;
    private TipoDocumento param_ppi_ppe_tipoDocumento_planAccionEstrategica;
    private TipoDocumento param_ppi_ppe_tipoDocumento_planAporteEstrategico;
    private TipoDocumento param_ppi_ppe_tipoDocumento_planLargoPlazo;
    private TipoDocumento param_ppi_ppe_tipoDocumento_planLineaEstrategica;




    /******************************************************************/
    /******************************************************************/
    /********************* FIN VARIABLES    ***************************/
    /******************************************************************/
    /******************************************************************/


    /******************************************************************/
    /******************************************************************/
    /*********************     MÉTODOS      ***************************/
    /******************************************************************/
    /******************************************************************/



    /* ############################################################## */
    /* ##############      TipoDocumento      ####################### */
    /* ############################################################## */

    //-----------------------------------------------------------------
    //Sistema
    //-----------------------------------------------------------------
    
    // Si es la primera vez, obtenga el sistema
    public void init() {
        if (!isPostBack()) {
            if (param_ppi_ppe_modulo_id != null) {
                sistemaSelected = param_ppi_ppe_modulo_id.getSistema();
            }
        }
    }

    // Variable: sistemaSelected
    public Sistema getSistemaSelected() {
        return sistemaSelected;
    }

    // Variable: sistemaSelected
    public void setSistemaSelected(Sistema sistemaSelected) {
        this.sistemaSelected = sistemaSelected;
    }

    // Limpeza Sistema
    public void handleClearSistema() {
        this.setSistemaSelected(null);
        handleClearModulo();
    }


    //-----------------------------------------------------------------
    //Módulo
    //-----------------------------------------------------------------
    
    //Servicio
    public ModuloService getModuloService() {
        return moduloService;
    }

    //Servicio
    public void setModuloService(ModuloService moduloService) {
        this.moduloService = moduloService;
    }

    //variable: getParam_ppi_ppe_modulo_id
    public Modulo getParam_ppi_ppe_modulo_id() {
        return param_ppi_ppe_modulo_id;
    }

    //variable: setParam_ppi_ppe_modulo_id
    public void setParam_ppi_ppe_modulo_id(Modulo param_ppi_ppe_modulo_id) {
        this.param_ppi_ppe_modulo_id = param_ppi_ppe_modulo_id;
    }

    // Limpieza de módulo
    public void handleClearModulo() {
        this.setParam_ppi_ppe_modulo_id(null);
    }

    // Autocomplete: módulo
    public Page<Modulo> completeModulo(String query, Pageable pageable) {
        return moduloService.findBySistemaOrderBySequenciaAsc(query, sistemaSelected, pageable);
    }

    //-----------------------------------------------------------------
    //TipoDocumentoService
    //-----------------------------------------------------------------
    public TipoDocumentoService getTipoDocumentoService() {
        return tipoDocumentoService;
    }

    public void setTipoDocumentoService(TipoDocumentoService tipoDocumentoService) {
        this.tipoDocumentoService = tipoDocumentoService;
    }



    //-----------------------------------------------------------------
    //TipoPlan: PXE
    //-----------------------------------------------------------------

    public TipoPlanService getTipoPlanService() {
        return tipoPlanService;
    }

    public void setTipoPlanService(TipoPlanService tipoPlanService) {
        this.tipoPlanService = tipoPlanService;
    }


    public TipoPlan getParam_ppi_ppe_tipoPlan_PXE() {
        return param_ppi_ppe_tipoPlan_PXE;
    }

    public void setParam_ppi_ppe_tipoPlan_PXE(TipoPlan param_ppi_ppe_tipoPlan_PXE) {
        this.param_ppi_ppe_tipoPlan_PXE = param_ppi_ppe_tipoPlan_PXE;
    }

    //Limpieza
    public void handleClearTipoPlan_PXE() {
        this.setParam_ppi_ppe_tipoPlan_PXE(null);
    }




    //-----------------------------------------------------------------
    //TipoDocumento: planEducacionSuperior
    //-----------------------------------------------------------------
    public TipoDocumento getParam_ppi_ppe_tipoDocumento_planEducacionSuperior() {
        return param_ppi_ppe_tipoDocumento_planEducacionSuperior;
    }

    public void setParam_ppi_ppe_tipoDocumento_planEducacionSuperior(TipoDocumento param_ppi_ppe_tipoDocumento_planEducacionSuperior) {
        this.param_ppi_ppe_tipoDocumento_planEducacionSuperior = param_ppi_ppe_tipoDocumento_planEducacionSuperior;
    }

    //Limpieza
    public void handleClearTipoDocumentoPlanEducacionSuperior() {
        this.setParam_ppi_ppe_tipoDocumento_planEducacionSuperior(null);
    }

    //-----------------------------------------------------------------
    //TipoDocumento: planDesarrolloSostenible
    //-----------------------------------------------------------------
    public TipoDocumento getParam_ppi_ppe_tipoDocumento_planDesarrolloSostenible() {
        return param_ppi_ppe_tipoDocumento_planDesarrolloSostenible;
    }

    public void setParam_ppi_ppe_tipoDocumento_planDesarrolloSostenible(TipoDocumento param_ppi_ppe_tipoDocumento_planDesarrolloSostenible) {
        this.param_ppi_ppe_tipoDocumento_planDesarrolloSostenible = param_ppi_ppe_tipoDocumento_planDesarrolloSostenible;
    }

    //Limpieza
    public void handleClearTipoDocumentoPlanDesarrolloSostenible() {
        this.setParam_ppi_ppe_tipoDocumento_planDesarrolloSostenible(null);
    }

    //-----------------------------------------------------------------
    //TipoDocumento: planAccionEstrategica
    //-----------------------------------------------------------------
    public TipoDocumento getParam_ppi_ppe_tipoDocumento_planAccionEstrategica() {
        return param_ppi_ppe_tipoDocumento_planAccionEstrategica;
    }

    public void setParam_ppi_ppe_tipoDocumento_planAccionEstrategica(TipoDocumento param_ppi_ppe_tipoDocumento_planAccionEstrategica) {
        this.param_ppi_ppe_tipoDocumento_planAccionEstrategica = param_ppi_ppe_tipoDocumento_planAccionEstrategica;
    }

    //Limpieza
    public void handleClearTipoDocumentoPlanAccionEstrategica() {
        this.setParam_ppi_ppe_tipoDocumento_planAccionEstrategica(null);
    }

    //-----------------------------------------------------------------
    //TipoDocumento: planAporteEstrategico
    //-----------------------------------------------------------------
    public TipoDocumento getParam_ppi_ppe_tipoDocumento_planAporteEstrategico() {
        return param_ppi_ppe_tipoDocumento_planAporteEstrategico;
    }

    public void setParam_ppi_ppe_tipoDocumento_planAporteEstrategico(TipoDocumento param_ppi_ppe_tipoDocumento_planAporteEstrategico) {
        this.param_ppi_ppe_tipoDocumento_planAporteEstrategico = param_ppi_ppe_tipoDocumento_planAporteEstrategico;
    }

    //Limpieza
    public void handleClearTipoDocumentoPlanAporteEstrategico() {
        this.setParam_ppi_ppe_tipoDocumento_planAporteEstrategico(null);
    }

    //-----------------------------------------------------------------
    //TipoDocumento: planLargoPlazo
    //-----------------------------------------------------------------
    public TipoDocumento getParam_ppi_ppe_tipoDocumento_planLargoPlazo() {
        return param_ppi_ppe_tipoDocumento_planLargoPlazo;
    }

    public void setParam_ppi_ppe_tipoDocumento_planLargoPlazo(TipoDocumento param_ppi_ppe_tipoDocumento_planLargoPlazo) {
        this.param_ppi_ppe_tipoDocumento_planLargoPlazo = param_ppi_ppe_tipoDocumento_planLargoPlazo;
    }

    //Limpieza
    public void handleClearTipoDocumentoPlanLargoPlazo() {
        this.setParam_ppi_ppe_tipoDocumento_planLargoPlazo(null);
    }


    //-----------------------------------------------------------------
    //TipoDocumento: planLineaEstrategica
    //-----------------------------------------------------------------
    public TipoDocumento getParam_ppi_ppe_tipoDocumento_planLineaEstrategica() {
        return param_ppi_ppe_tipoDocumento_planLineaEstrategica;
    }

    public void setParam_ppi_ppe_tipoDocumento_planLineaEstrategica(TipoDocumento param_ppi_ppe_tipoDocumento_planLineaEstrategica) {
        this.param_ppi_ppe_tipoDocumento_planLineaEstrategica = param_ppi_ppe_tipoDocumento_planLineaEstrategica;
    }

    //Limpieza
    public void handleClearTipoDocumentoPlanLineaEstrategica() {
        this.setParam_ppi_ppe_tipoDocumento_planLineaEstrategica(null);
    }

    /* ############################################################## */
    /* ##############  FIN TipoDocumento      ####################### */
    /* ############################################################## */







    /******************************************************************/
    /******************************************************************/
    /********************* FIN MÉTODOS      ***************************/
    /******************************************************************/
    /******************************************************************/




}
/**********************************************************************/
/**********************************************************************/
/**********************************************************************/
/**********************************************************************/
/**********************************************************************/

parametrosPPEEditForm.xhtml

  • Para tipoDocumento en la interfaz tenemos que hacer
  • Primero la selección del Sistema
<!--####################################################################################-->
                                <!--#################                  SISTEMA                 #########################-->
                                <!--####################################################################################-->
                                <p:outputLabel id="sistemaOutputLabel"
                                       for="sistemaAutoComplete"
                                       value="#{i18n.parametrosPPE_sistema_label}" />

                                <h:panelGrid id="sistemaPanelGrid" columns="2">
                                    <una:autoCompletePaginator
                                                id="sistemaAutoComplete"
                                                paginator="true"
                                                paginationRows="5"                
                                                dropdown="true"
                                                value="#{parametrosPPEBean.sistemaSelected}"
                                                var="sistema" 
                                                itemLabel="#{sistema.nombre}" 
                                                itemValue="#{sistema}"
                                                completeMethod="#{sistemaBean.completeAllSistemaPageable}"
                                                converter="#{sistemaBean.converter}"
                                                forceSelection="true" 
                                                required="true"
                                                styleClass="una-autocomplete-lov"
                                                noSelectedOption="true"                                
                                                noSelectedLabel="#{i18n.parametrosPPE_sistema_select}"
                                                onNoSelectedOption="#{parametrosPPEBean.handleClearSistema()}">
                                        <p:ajax event="itemSelect"
                                                process="@this"
                                                listener="#{parametrosPPEBean.handleClearModulo()}" 
                                                update="parametrosPPETabView:moduloPanelGrid"/>
                                    </una:autoCompletePaginator>

                                    <components:dialogFrameworkData lOVBean="#{sistemaLOVBean}"
                                                                    title="#{i18n.sdkuna_sistemaLOV_title}"
                                                                    target="#{parametrosPPEBean.sistemaSelected}"
                                                                    id="sistemaListDialog"
                                                                    update="parametrosPPETabView:sistemaPanelGrid"
                                                                    contentWidth="1000"
                                                                    oncomplete="sistemaRemoteCommand()"/>
                                    <p:remoteCommand    name="sistemaRemoteCommand" 
                                                        update="parametrosPPETabView:moduloPanelGrid"
                                                        actionListener="#{parametrosPPEBean.handleClearModulo()}"
                                                        process="@this"/> 
                                </h:panelGrid>
                                <p:message id="sistemaMessage"
                                   for="sistemaAutoComplete"/> 

                                <!--####################################################################################-->
                                <!--####################################################################################-->
                                <!--####################################################################################-->
  • La selección del módulo
<!--####################################################################################-->
                                <!--#################                  MÓDULO                  #########################-->
                                <!--####################################################################################-->

                                <p:outputLabel  id="moduloOutputLabel"
                                                for="param_ppi_ppe_modulo_id"
                                                value="#{i18n.parametrosPPE_modulo_label}" />


                                <h:panelGrid id="moduloPanelGrid" columns="2">

                                    <una:autoCompletePaginator 
                                                                id="param_ppi_ppe_modulo_id" 
                                                                paginator="true"
                                                                paginationRows="5"                
                                                                dropdown="true"
                                                                value="#{parametrosPPEBean.param_ppi_ppe_modulo_id}"
                                                                var="modulo" 
                                                                itemLabel="#{modulo.nombre}" 
                                                                itemValue="#{modulo}"
                                                                completeMethod="#{parametrosPPEBean.completeModulo}"
                                                                converter="#{moduloBean.converter}"
                                                                forceSelection="true" 
                                                                required="true"
                                                                styleClass="una-autocomplete-lov"
                                                                noSelectedOption="true"                                
                                                                noSelectedLabel="#{i18n.parametrosPPE_modulo_select}"
                                                                onNoSelectedOption="#{parametrosPPEBean.handleClearModulo()}">
                                        <f:attribute name="service" value="#{parametrosPPEBean.moduloService}" />
                                    </una:autoCompletePaginator>

                                    <components:dialogFrameworkData lOVBean="#{moduloLOVBean}" 
                                                                    target="#{parametrosPPEBean.param_ppi_ppe_modulo_id}" 
                                                                    id="moduloListDialog"
                                                                    title="#{i18n.sdkuna_moduloLOV_title}"
                                                                    filteredField="sistema"
                                                                    filteredValue="#{parametrosPPEBean.sistemaSelected}"
                                                                    contentWidth="1000"
                                                                    update="parametrosPPETabView:moduloPanelGrid"/>                                                                                        
                                </h:panelGrid>
                                <p:message  id="moduloMessage"
                                            for="param_ppi_ppe_modulo_id"/> 


                                <!--####################################################################################-->
                                <!--####################################################################################-->
                                <!--####################################################################################-->
  • Y luego la interfaz para cada uno de los documentos
 <!--####################################################################################-->
                                <!--#################   TIPODOCUMENTO: planEducacionSuperior   #########################-->
                                <!--####################################################################################-->
                                <p:outputLabel  id="tipoDocumentoPlanEducacionSuperiorOutputLabel"
                                                for="param_ppi_ppe_tipoDocumento_planEducacionSuperior"
                                                value="#{i18n.parametrosPPE_tipoDocumentoPlanEducacionSuperior_label}" />


                                <h:panelGrid    id="tipoDocumentoPlanEducacionSuperiorPanelGrid" columns="2">

                                    <una:autoCompletePaginator
                                                        id="param_ppi_ppe_tipoDocumento_planEducacionSuperior"
                                                        paginator="true"
                                                        paginationRows="5"               
                                                        dropdown="true"
                                                        value="#{parametrosPPEBean.param_ppi_ppe_tipoDocumento_planEducacionSuperior}"
                                                        var="tipoDocumento"
                                                        itemLabel="#{tipoDocumento.nombre}"
                                                        itemValue="#{tipoDocumento}"
                                                        completeMethod="#{tipoDocumentoBean.completeByNombreAndEstado}"
                                                        converter="#{tipoDocumentoBean.converter}"
                                                        forceSelection="true"
                                                        required="true"
                                                        styleClass="una-autocomplete-lov"
                                                        noSelectedOption="true"
                                                        noSelectedLabel="#{i18n.parametrosPPE_tipoDocumento_select}"
                                                        onNoSelectedOption="#{parametrosPPEBean.handleClearTipoDocumentoPlanEducacionSuperior()}">

                                        <f:attribute name="service" value="#{parametrosPPEBean.tipoDocumentoService}" />

                                    </una:autoCompletePaginator>

                                    <components:dialogFrameworkData lOVBean="#{tipoDocumentoLOVBean}"
                                                                    target="#{parametrosPPEBean.param_ppi_ppe_tipoDocumento_planEducacionSuperior}" 
                                                                    id="tipoDocumentoPlanEducacionSuperiorListDialog"
                                                                    title="#{i18n.parametrosPPE_tipoDocumento_LOV_title}"
                                                                    methodName="findByEstado"
                                                                    contentWidth="1000"
                                                                    update="parametrosPPETabView:tipoDocumentoPlanEducacionSuperiorPanelGrid"/>                                                                                 
                                </h:panelGrid>
                                <p:message  id="tipoDocumentoPlanEducacionSuperiorMessage"
                                            for="param_ppi_ppe_tipoDocumento_planEducacionSuperior"/>

                                <!--####################################################################################-->
                                <!--####################################################################################-->
                                <!--####################################################################################-->
  • Y adicionalmente debemos agregar el prerender init() para que ejecute la función y obtenega el sistema de PPI-PPE
<f:event type="preRenderView" listener="#{parametrosPPEBean.initParams()}" />
  • RESULTADO
<!--
Copyright (c) 2022.
Centro de Gestion Informatica
Direccion de Tecnologias de la Informacion y Comunicacion
Universidad Nacional - Costa Rica
http://www.una.ac.cr
-->
<!-- ******************************************************************************************** -->
<!-- ******************************************************************************************** -->
<!-- *****************************   COMPOSICIÓN   ********************************************** -->
<!-- ******************************************************************************************** -->
<!-- ******************************************************************************************** -->

<ui:composition template="/templates/crud.xhtml"
                xmlns="http://www.w3.org/1999/xhtml"
                xmlns:f="http://java.sun.com/jsf/core"
                xmlns:h="http://java.sun.com/jsf/html"
                xmlns:p="http://primefaces.org/ui"
                xmlns:ui="http://java.sun.com/jsf/facelets"
                xmlns:components="http://java.sun.com/jsf/composite/components"
                xmlns:una="http://una.ac.cr/ui/components">

                
    <!-- ******************************************************************************************** -->
    <!-- *****************************       TITLE        ******************************************* -->
    <!-- ******************************************************************************************** -->
    <ui:define name="title">#{i18n.parametrosPPE_edit_form_title}</ui:define>
    <!-- ******************************************************************************************** -->
    <!-- ******************************************************************************************** -->
    <!-- ******************************************************************************************** -->
    

    <!-- ******************************************************************************************** -->
    <!-- *****************************      PRERENDER     ******************************************* -->
    <!-- ******************************************************************************************** -->
    <ui:define name="preRender">
        <f:event type="preRenderView" listener="#{parametrosPPEBean.init()}" />
        <!--f:event type="preRenderView" listener="#{parametrosPPEBean.initParams()}" />
        <f:event type="preRenderView" listener="#{parametrosPPEBean.initProperties()}" /-->
    </ui:define>
    <!-- ******************************************************************************************** -->
    <!-- ******************************************************************************************** -->
    <!-- ******************************************************************************************** -->




    

    <!-- ******************************************************************************************** -->
    <!-- *****************************       DEFINE       ******************************************* -->
    <!-- ******************************************************************************************** -->
    <ui:define name="contentCRUD">


        <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
        <!-- ++++++++++++++++++++++++++++++++++   TOOLBARPARAMS    ++++++++++++++++++++++++++++++++++++++ -->
        <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
        <components:toolbarParams
            paramBean="#{parametrosPPEBean}"/>
        <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
        <!-- ++++++++++++++++++++++++++++++++ FIN TOOLBARPARAMS    ++++++++++++++++++++++++++++++++++++++ -->
        <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->


        <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
        <!-- ++++++++++++++++++++++++++++++++     PANELPARAM  +++++++++++++++++++++++++++++++++++++++++++ -->
        <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->

        <una:panelForm id="panelParam"   
                       header="#{i18n.parametrosPPE_edit_form_title}"
                       i18nKey="parametrosPPE_edit_form_title">

            <!-- //////////////////////////////////////////////////////////////////////////////////////// -->
            <!-- //////////////////////////////    INSTRUCTIONS     ///////////////////////////////////// -->
            <!-- //////////////////////////////////////////////////////////////////////////////////////// -->        
            <components:requiredInstructions focus="panelParam" />
            <!-- //////////////////////////////////////////////////////////////////////////////////////// -->
            <!-- ///////////////////////////// FIN INSTRUCTIONS     ///////////////////////////////////// -->
            <!-- //////////////////////////////////////////////////////////////////////////////////////// -->  


            <!-- //////////////////////////////////////////////////////////////////////////////////////// -->
            <!-- //////////////////////////////      TABVIEW        ///////////////////////////////////// -->
            <!-- //////////////////////////////////////////////////////////////////////////////////////// --> 
            <p:tabView id="parametrosPPETabView" activeIndex="#{parametrosPPEBean.activeTab}">

                
                <!-- **************************************************************************************** -->
                <!-- **************************        TAB: VARIOS      ************************************* -->
                <!-- **************************************************************************************** --> 
                <p:tab id="tab_varios" title="#{i18n.parametrosPPE_tab_varios}">

                    <!-- **************************************************************************************** -->
                    <!-- ****************         TAB-FIELDSET: TIPODOCUMENTO           ************************* -->
                    <!-- **************************************************************************************** -->
                    <p:fieldset 
                        id="parametrosPPE_tipoDocumento_fieldset" 
                        legend="#{i18n.parametrosPPE_tipoDocumento_tab_fieldset_title}" 
                        style="margin-bottom:20px">

                            <p:panelGrid columns="3" styleClass="una-panelgrid-nopadding">


                                <!--####################################################################################-->
                                <!--#################                  SISTEMA                 #########################-->
                                <!--####################################################################################-->
                                <p:outputLabel id="sistemaOutputLabel"
                                       for="sistemaAutoComplete"
                                       value="#{i18n.parametrosPPE_sistema_label}" />

                                <h:panelGrid id="sistemaPanelGrid" columns="2">
                                    <una:autoCompletePaginator
                                                id="sistemaAutoComplete"
                                                paginator="true"
                                                paginationRows="5"                
                                                dropdown="true"
                                                value="#{parametrosPPEBean.sistemaSelected}"
                                                var="sistema" 
                                                itemLabel="#{sistema.nombre}" 
                                                itemValue="#{sistema}"
                                                completeMethod="#{sistemaBean.completeAllSistemaPageable}"
                                                converter="#{sistemaBean.converter}"
                                                forceSelection="true" 
                                                required="true"
                                                styleClass="una-autocomplete-lov"
                                                noSelectedOption="true"                                
                                                noSelectedLabel="#{i18n.parametrosPPE_sistema_select}"
                                                onNoSelectedOption="#{parametrosPPEBean.handleClearSistema()}">
                                        <p:ajax event="itemSelect"
                                                process="@this"
                                                listener="#{parametrosPPEBean.handleClearModulo()}" 
                                                update="parametrosPPETabView:moduloPanelGrid"/>
                                    </una:autoCompletePaginator>

                                    <components:dialogFrameworkData lOVBean="#{sistemaLOVBean}"
                                                                    title="#{i18n.sdkuna_sistemaLOV_title}"
                                                                    target="#{parametrosPPEBean.sistemaSelected}"
                                                                    id="sistemaListDialog"
                                                                    update="parametrosPPETabView:sistemaPanelGrid"
                                                                    contentWidth="1000"
                                                                    oncomplete="sistemaRemoteCommand()"/>
                                    <p:remoteCommand    name="sistemaRemoteCommand" 
                                                        update="parametrosPPETabView:moduloPanelGrid"
                                                        actionListener="#{parametrosPPEBean.handleClearModulo()}"
                                                        process="@this"/> 
                                </h:panelGrid>
                                <p:message id="sistemaMessage"
                                   for="sistemaAutoComplete"/> 

                                <!--####################################################################################-->
                                <!--####################################################################################-->
                                <!--####################################################################################-->




                                <!--####################################################################################-->
                                <!--#################                  MÓDULO                  #########################-->
                                <!--####################################################################################-->

                                <p:outputLabel  id="moduloOutputLabel"
                                                for="param_ppi_ppe_modulo_id"
                                                value="#{i18n.parametrosPPE_modulo_label}" />


                                <h:panelGrid id="moduloPanelGrid" columns="2">

                                    <una:autoCompletePaginator 
                                                                id="param_ppi_ppe_modulo_id" 
                                                                paginator="true"
                                                                paginationRows="5"                
                                                                dropdown="true"
                                                                value="#{parametrosPPEBean.param_ppi_ppe_modulo_id}"
                                                                var="modulo" 
                                                                itemLabel="#{modulo.nombre}" 
                                                                itemValue="#{modulo}"
                                                                completeMethod="#{parametrosPPEBean.completeModulo}"
                                                                converter="#{moduloBean.converter}"
                                                                forceSelection="true" 
                                                                required="true"
                                                                styleClass="una-autocomplete-lov"
                                                                noSelectedOption="true"                                
                                                                noSelectedLabel="#{i18n.parametrosPPE_modulo_select}"
                                                                onNoSelectedOption="#{parametrosPPEBean.handleClearModulo()}">
                                        <f:attribute name="service" value="#{parametrosPPEBean.moduloService}" />
                                    </una:autoCompletePaginator>

                                    <components:dialogFrameworkData lOVBean="#{moduloLOVBean}" 
                                                                    target="#{parametrosPPEBean.param_ppi_ppe_modulo_id}" 
                                                                    id="moduloListDialog"
                                                                    title="#{i18n.sdkuna_moduloLOV_title}"
                                                                    filteredField="sistema"
                                                                    filteredValue="#{parametrosPPEBean.sistemaSelected}"
                                                                    contentWidth="1000"
                                                                    update="parametrosPPETabView:moduloPanelGrid"/>                                                                                        
                                </h:panelGrid>
                                <p:message  id="moduloMessage"
                                            for="param_ppi_ppe_modulo_id"/> 


                                <!--####################################################################################-->
                                <!--####################################################################################-->
                                <!--####################################################################################-->



                                <!--####################################################################################-->
                                <!--#################   TIPODOCUMENTO: planEducacionSuperior   #########################-->
                                <!--####################################################################################-->
                                <p:outputLabel  id="tipoDocumentoPlanEducacionSuperiorOutputLabel"
                                                for="param_ppi_ppe_tipoDocumento_planEducacionSuperior"
                                                value="#{i18n.parametrosPPE_tipoDocumentoPlanEducacionSuperior_label}" />


                                <h:panelGrid    id="tipoDocumentoPlanEducacionSuperiorPanelGrid" columns="2">

                                    <una:autoCompletePaginator
                                                        id="param_ppi_ppe_tipoDocumento_planEducacionSuperior"
                                                        paginator="true"
                                                        paginationRows="5"               
                                                        dropdown="true"
                                                        value="#{parametrosPPEBean.param_ppi_ppe_tipoDocumento_planEducacionSuperior}"
                                                        var="tipoDocumento"
                                                        itemLabel="#{tipoDocumento.nombre}"
                                                        itemValue="#{tipoDocumento}"
                                                        completeMethod="#{tipoDocumentoBean.completeByNombreAndEstado}"
                                                        converter="#{tipoDocumentoBean.converter}"
                                                        forceSelection="true"
                                                        required="true"
                                                        styleClass="una-autocomplete-lov"
                                                        noSelectedOption="true"
                                                        noSelectedLabel="#{i18n.parametrosPPE_tipoDocumento_select}"
                                                        onNoSelectedOption="#{parametrosPPEBean.handleClearTipoDocumentoPlanEducacionSuperior()}">

                                        <f:attribute name="service" value="#{parametrosPPEBean.tipoDocumentoService}" />

                                    </una:autoCompletePaginator>

                                    <components:dialogFrameworkData lOVBean="#{tipoDocumentoLOVBean}"
                                                                    target="#{parametrosPPEBean.param_ppi_ppe_tipoDocumento_planEducacionSuperior}" 
                                                                    id="tipoDocumentoPlanEducacionSuperiorListDialog"
                                                                    title="#{i18n.parametrosPPE_tipoDocumento_LOV_title}"
                                                                    methodName="findByEstado"
                                                                    contentWidth="1000"
                                                                    update="parametrosPPETabView:tipoDocumentoPlanEducacionSuperiorPanelGrid"/>                                                                                 
                                </h:panelGrid>
                                <p:message  id="tipoDocumentoPlanEducacionSuperiorMessage"
                                            for="param_ppi_ppe_tipoDocumento_planEducacionSuperior"/>

                                <!--####################################################################################-->
                                <!--####################################################################################-->
                                <!--####################################################################################-->



                                <!--####################################################################################-->
                                <!--#################   TIPODOCUMENTO: planDesarrolloSostenible  #######################-->
                                <!--####################################################################################-->
                                <p:outputLabel  id="tipoDocumentoPlanDesarrolloSostenibleOutputLabel"
                                                for="param_ppi_ppe_tipoDocumento_planDesarrolloSostenible"
                                                value="#{i18n.parametrosPPE_tipoDocumentoPlanDesarrolloSostenible_label}" />


                                <h:panelGrid    id="tipoDocumentoPlanDesarrolloSosteniblePanelGrid" columns="2">

                                    <una:autoCompletePaginator
                                                        id="param_ppi_ppe_tipoDocumento_planDesarrolloSostenible"
                                                        paginator="true"
                                                        paginationRows="5"               
                                                        dropdown="true"
                                                        value="#{parametrosPPEBean.param_ppi_ppe_tipoDocumento_planDesarrolloSostenible}"
                                                        var="tipoDocumento"
                                                        itemLabel="#{tipoDocumento.nombre}"
                                                        itemValue="#{tipoDocumento}"
                                                        completeMethod="#{tipoDocumentoBean.completeByNombreAndEstado}"
                                                        converter="#{tipoDocumentoBean.converter}"
                                                        forceSelection="true"
                                                        required="true"
                                                        styleClass="una-autocomplete-lov"
                                                        noSelectedOption="true"
                                                        noSelectedLabel="#{i18n.parametrosPPE_tipoDocumento_select}"
                                                        onNoSelectedOption="#{parametrosPPEBean.handleClearTipoDocumentoPlanDesarrolloSostenible()}">
                                                        
                                        <f:attribute name="service" value="#{parametrosPPEBean.tipoDocumentoService}" />

                                    </una:autoCompletePaginator>

                                    <components:dialogFrameworkData lOVBean="#{tipoDocumentoLOVBean}"
                                                                    target="#{parametrosPPEBean.param_ppi_ppe_tipoDocumento_planDesarrolloSostenible}" 
                                                                    id="tipoDocumentoPlanDesarrolloSostenibleListDialog"
                                                                    title="#{i18n.parametrosPPE_tipoDocumento_LOV_title}"
                                                                    methodName="findByEstado"
                                                                    contentWidth="1000"
                                                                    update="parametrosPPETabView:tipoDocumentoPlanDesarrolloSosteniblePanelGrid"/>                                                                                 
                                </h:panelGrid>
                                <p:message  id="tipoDocumentoPlanDesarrolloSostenibleMessage"
                                            for="param_ppi_ppe_tipoDocumento_planDesarrolloSostenible"/>

                                <!--####################################################################################-->
                                <!--####################################################################################-->
                                <!--####################################################################################-->


                                <!--####################################################################################-->
                                <!--#################   TIPODOCUMENTO: planAccionEstrategica     #######################-->
                                <!--####################################################################################-->
                                <p:outputLabel  id="tipoDocumentoPlanAccionEstrategicaOutputLabel"
                                                for="param_ppi_ppe_tipoDocumento_planAccionEstrategica"
                                                value="#{i18n.parametrosPPE_tipoDocumentoPlanAccionEstrategica_label}" />


                                <h:panelGrid    id="tipoDocumentoPlanAccionEstrategicaPanelGrid" columns="2">

                                    <una:autoCompletePaginator
                                                        id="param_ppi_ppe_tipoDocumento_planAccionEstrategica"
                                                        paginator="true"
                                                        paginationRows="5"               
                                                        dropdown="true"
                                                        value="#{parametrosPPEBean.param_ppi_ppe_tipoDocumento_planAccionEstrategica}"
                                                        var="tipoDocumento"
                                                        itemLabel="#{tipoDocumento.nombre}"
                                                        itemValue="#{tipoDocumento}"
                                                        completeMethod="#{tipoDocumentoBean.completeByNombreAndEstado}"
                                                        converter="#{tipoDocumentoBean.converter}"
                                                        forceSelection="true"
                                                        required="true"
                                                        styleClass="una-autocomplete-lov"
                                                        noSelectedOption="true"
                                                        noSelectedLabel="#{i18n.parametrosPPE_tipoDocumento_select}"
                                                        onNoSelectedOption="#{parametrosPPEBean.handleClearTipoDocumentoPlanAccionEstrategica()}">
                                                        
                                        <f:attribute name="service" value="#{parametrosPPEBean.tipoDocumentoService}" />

                                    </una:autoCompletePaginator>

                                    <components:dialogFrameworkData lOVBean="#{tipoDocumentoLOVBean}"
                                                                    target="#{parametrosPPEBean.param_ppi_ppe_tipoDocumento_planAccionEstrategica}" 
                                                                    id="tipoDocumentoPlanAccionEstrategicaListDialog"
                                                                    title="#{i18n.parametrosPPE_tipoDocumento_LOV_title}"
                                                                    methodName="findByEstado"
                                                                    contentWidth="1000"
                                                                    update="parametrosPPETabView:tipoDocumentoPlanAccionEstrategicaPanelGrid"/>                                                                                 
                                </h:panelGrid>
                                <p:message  id="tipoDocumentoPlanAccionEstrategicaMessage"
                                            for="param_ppi_ppe_tipoDocumento_planAccionEstrategica"/>

                                <!--####################################################################################-->
                                <!--####################################################################################-->
                                <!--####################################################################################-->


                                <!--####################################################################################-->
                                <!--#################   TIPODOCUMENTO: planAporteEstrategico     #######################-->
                                <!--####################################################################################-->
                                <p:outputLabel  id="tipoDocumentoPlanAporteEstrategicoOutputLabel"
                                                for="param_ppi_ppe_tipoDocumento_planAporteEstrategico"
                                                value="#{i18n.parametrosPPE_tipoDocumentoPlanAporteEstrategico_label}" />


                                <h:panelGrid    id="tipoDocumentoPlanAporteEstrategicoPanelGrid" columns="2">

                                    <una:autoCompletePaginator
                                                        id="param_ppi_ppe_tipoDocumento_planAporteEstrategico"
                                                        paginator="true"
                                                        paginationRows="5"               
                                                        dropdown="true"
                                                        value="#{parametrosPPEBean.param_ppi_ppe_tipoDocumento_planAporteEstrategico}"
                                                        var="tipoDocumento"
                                                        itemLabel="#{tipoDocumento.nombre}"
                                                        itemValue="#{tipoDocumento}"
                                                        completeMethod="#{tipoDocumentoBean.completeByNombreAndEstado}"
                                                        converter="#{tipoDocumentoBean.converter}"
                                                        forceSelection="true"
                                                        required="true"
                                                        styleClass="una-autocomplete-lov"
                                                        noSelectedOption="true"
                                                        noSelectedLabel="#{i18n.parametrosPPE_tipoDocumento_select}"
                                                        onNoSelectedOption="#{parametrosPPEBean.handleClearTipoDocumentoPlanAporteEstrategico()}">
                                                        
                                        <f:attribute name="service" value="#{parametrosPPEBean.tipoDocumentoService}" />

                                    </una:autoCompletePaginator>

                                    <components:dialogFrameworkData lOVBean="#{tipoDocumentoLOVBean}"
                                                                    target="#{parametrosPPEBean.param_ppi_ppe_tipoDocumento_planAporteEstrategico}" 
                                                                    id="tipoDocumentoPlanAporteEstrategicoListDialog"
                                                                    title="#{i18n.parametrosPPE_tipoDocumento_LOV_title}"
                                                                    methodName="findByEstado"
                                                                    contentWidth="1000"
                                                                    update="parametrosPPETabView:tipoDocumentoPlanAporteEstrategicoPanelGrid"/>                                                                                 
                                </h:panelGrid>
                                <p:message  id="tipoDocumentoPlanAporteEstrategicoMessage"
                                            for="param_ppi_ppe_tipoDocumento_planAporteEstrategico"/>

                                <!--####################################################################################-->
                                <!--####################################################################################-->
                                <!--####################################################################################-->


                                <!--####################################################################################-->
                                <!--#################   TIPODOCUMENTO: planLargoPlazo            #######################-->
                                <!--####################################################################################-->
                                <p:outputLabel  id="tipoDocumentoPlanLargoPlazoOutputLabel"
                                                for="param_ppi_ppe_tipoDocumento_planLargoPlazo"
                                                value="#{i18n.parametrosPPE_tipoDocumentoPlanLargoPlazo_label}" />


                                <h:panelGrid    id="tipoDocumentoPlanLargoPlazoPanelGrid" columns="2">

                                    <una:autoCompletePaginator
                                                        id="param_ppi_ppe_tipoDocumento_planLargoPlazo"
                                                        paginator="true"
                                                        paginationRows="5"               
                                                        dropdown="true"
                                                        value="#{parametrosPPEBean.param_ppi_ppe_tipoDocumento_planLargoPlazo}"
                                                        var="tipoDocumento"
                                                        itemLabel="#{tipoDocumento.nombre}"
                                                        itemValue="#{tipoDocumento}"
                                                        completeMethod="#{tipoDocumentoBean.completeByNombreAndEstado}"
                                                        converter="#{tipoDocumentoBean.converter}"
                                                        forceSelection="true"
                                                        required="true"
                                                        styleClass="una-autocomplete-lov"
                                                        noSelectedOption="true"
                                                        noSelectedLabel="#{i18n.parametrosPPE_tipoDocumento_select}"
                                                        onNoSelectedOption="#{parametrosPPEBean.handleClearTipoDocumentoPlanLargoPlazo()}">
                                                        
                                        <f:attribute name="service" value="#{parametrosPPEBean.tipoDocumentoService}" />

                                    </una:autoCompletePaginator>

                                    <components:dialogFrameworkData lOVBean="#{tipoDocumentoLOVBean}"
                                                                    target="#{parametrosPPEBean.param_ppi_ppe_tipoDocumento_planLargoPlazo}" 
                                                                    id="tipoDocumentoPlanLargoPlazoListDialog"
                                                                    title="#{i18n.parametrosPPE_tipoDocumento_LOV_title}"
                                                                    methodName="findByEstado"
                                                                    contentWidth="1000"
                                                                    update="parametrosPPETabView:tipoDocumentoPlanLargoPlazoPanelGrid"/>                                                                                 
                                </h:panelGrid>
                                <p:message  id="tipoDocumentoPlanLargoPlazoMessage"
                                            for="param_ppi_ppe_tipoDocumento_planLargoPlazo"/>

                                <!--####################################################################################-->
                                <!--####################################################################################-->
                                <!--####################################################################################-->


                                <!--####################################################################################-->
                                <!--#################   TIPODOCUMENTO: planLineaEstrategica      #######################-->
                                <!--####################################################################################-->
                                <p:outputLabel  id="tipoDocumentoPlanLineaEstrategicaOutputLabel"
                                                for="param_ppi_ppe_tipoDocumento_planLineaEstrategica"
                                                value="#{i18n.parametrosPPE_tipoDocumentoPlanLineaEstrategica_label}" />


                                <h:panelGrid    id="tipoDocumentoPlanLineaEstrategicaPanelGrid" columns="2">

                                    <una:autoCompletePaginator
                                                        id="param_ppi_ppe_tipoDocumento_planLineaEstrategica"
                                                        paginator="true"
                                                        paginationRows="5"               
                                                        dropdown="true"
                                                        value="#{parametrosPPEBean.param_ppi_ppe_tipoDocumento_planLineaEstrategica}"
                                                        var="tipoDocumento"
                                                        itemLabel="#{tipoDocumento.nombre}"
                                                        itemValue="#{tipoDocumento}"
                                                        completeMethod="#{tipoDocumentoBean.completeByNombreAndEstado}"
                                                        converter="#{tipoDocumentoBean.converter}"
                                                        forceSelection="true"
                                                        required="true"
                                                        styleClass="una-autocomplete-lov"
                                                        noSelectedOption="true"
                                                        noSelectedLabel="#{i18n.parametrosPPE_tipoDocumento_select}"
                                                        onNoSelectedOption="#{parametrosPPEBean.handleClearTipoDocumentoPlanLineaEstrategica()}">
                                                        
                                        <f:attribute name="service" value="#{parametrosPPEBean.tipoDocumentoService}" />

                                    </una:autoCompletePaginator>

                                    <components:dialogFrameworkData lOVBean="#{tipoDocumentoLOVBean}"
                                                                    target="#{parametrosPPEBean.param_ppi_ppe_tipoDocumento_planLineaEstrategica}" 
                                                                    id="tipoDocumentoPlanLineaEstrategicaListDialog"
                                                                    title="#{i18n.parametrosPPE_tipoDocumento_LOV_title}"
                                                                    methodName="findByEstado"
                                                                    contentWidth="1000"
                                                                    update="parametrosPPETabView:tipoDocumentoPlanLineaEstrategicaPanelGrid"/>                                                                                 
                                </h:panelGrid>
                                <p:message  id="tipoDocumentoPlanLineaEstrategicaMessage"
                                            for="param_ppi_ppe_tipoDocumento_planLineaEstrategica"/>

                                <!--####################################################################################-->
                                <!--####################################################################################-->
                                <!--####################################################################################-->

                            </p:panelGrid>
                        
      

                </p:tab>
                <!-- **************************************************************************************** -->
                <!-- **************************    FIN TAB: VARIOS      ************************************* -->
                <!-- **************************************************************************************** --> 

            </p:tabView>
            <!-- //////////////////////////////////////////////////////////////////////////////////////// -->
            <!-- //////////////////////////////  FIN TABVIEW        ///////////////////////////////////// -->
            <!-- //////////////////////////////////////////////////////////////////////////////////////// --> 

        </una:panelForm>
        <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
        <!-- ++++++++++++++++++++++++++++++++ FIN PANELPARAM  +++++++++++++++++++++++++++++++++++++++++++ -->
        <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->

    </ui:define>
    <!-- ******************************************************************************************** -->
    <!-- *****************************   FIN DEFINE       ******************************************* -->
    <!-- ******************************************************************************************** -->



</ui:composition>
<!-- ******************************************************************************************** -->
<!-- ******************************************************************************************** -->
<!-- **************************  FIN COMPOSICIÓN   ********************************************** -->
<!-- ******************************************************************************************** -->
<!-- ******************************************************************************************** -->

para tipo campo: entidad externa: tipoPlan initParam / beanFilters

  • Y vamos a realizar una autocomplete y LOV para la selección de una entidad externa
  • primero debemos agregar en el repository 2 métodos uno para autocomplete y otro para LOV

TipoPlanRepository.java

  • Definición para encontrar todo los TipoPlan según nombre y activo = 1
/********************************************************************************************************/
    /********************************************************************************************************/
    /********************************************************************************************************/
    /**
     * Definición que retorna un Page<TipoPlan> de todos tipo plan donde activo = 1 y y query de usuario
     * 
     * @param activo : 1 = activo / 0 = inactivo
     * @param query : codigo digitado por el usuario
     * @author: Gustavo Matamoros G.
     * @version: 1.0.0
     * @fechaCreacion: 18/11/2022
     * @fechaModificacion: 18/11/2022
     * @modulo: PPI-PPE
     * @issue: PPI-248
     */
    public Page<TipoPlan> findByNombreIgnoreCaseLikeAndActivo(String nombre, boolean activo, Pageable pageable);
    /********************************************************************************************************/
    /********************************************************************************************************/
    /********************************************************************************************************/
  • Y para encontrar todos los TipoPlan que esten activos
/********************************************************************************************************/
    /********************************************************************************************************/
    /********************************************************************************************************/
    /**
     * Definición que retorna un Page<TipoPlan> de todos tipo plan donde activo = 1
     * 
     * @param activo : 1 = activo / 0 = inactivo
     * @param pageable : para paginación
     * @author: Gustavo Matamoros G.
     * @version: 1.0.0
     * @fechaCreacion: 18/11/2022
     * @fechaModificacion: 18/11/2022
     * @modulo: PPI-PPE
     * @issue: PPI-248
     */
    public Page<TipoPlan> findAllByActivo(Boolean activo, Pageable pageable);
    /********************************************************************************************************/
    /********************************************************************************************************/
    /********************************************************************************************************/
}

TipoPlanService.java

  • Creamos la definición para el autocomplete
/********************************************************************************************************/
    /********************************************************************************************************/
    /********************************************************************************************************/
    /**
     * Definición que retorna un Page<TipoPlan> de todos tipo plan donde activo = 1 y y query de usuario para autocomplete
     * 
     * @param nombre : parametros digitado por el usuario
     * @param activo : 1 = activo / 0 = inactivo
     * @param pageable : para paginación
     * @author: Gustavo Matamoros G.
     * @version: 1.0.0
     * @fechaCreacion: 18/11/2022
     * @fechaModificacion: 18/11/2022
     * @modulo: PPI-PPE
     * @issue: PPI-248
     */
    public Page<TipoPlan> findByNombreLikeAndActivo(String nombre, boolean activo, Pageable pageable);

    /********************************************************************************************************/
    /********************************************************************************************************/
    /********************************************************************************************************/
  • Y para LOV
/********************************************************************************************************/
    /********************************************************************************************************/
    /********************************************************************************************************/
    /**
     * Definición que retorna un Page<TipoPlan> de todos tipo plan donde activo = 1 para LOV
     * 
     * @param filterSpecifications : para especificaciones
     * @param pageable : para paginación
     * @param params : parametros
     * @author: Gustavo Matamoros G.
     * @version: 1.0.0
     * @fechaCreacion: 18/11/2022
     * @fechaModificacion: 18/11/2022
     * @modulo: PPI-PPE
     * @issue: PPI-248
     */
    public Page<TipoPlan> findByActivoLOV(
                ArrayList<FilterSpecification> filterSpecifications, 
                Pageable pageable, 
                Map<String, Object> params);
    /********************************************************************************************************/
    /********************************************************************************************************/
    /********************************************************************************************************/

TipoPlanServiceImpl.java

  • Ahora creamos el método para el autocomplete que va recibir la consulta del usuario y el activo
  • Y manda a obtener los datos desde el repository con la función findByNombreIgnoreCaseLikeAndActivo
/********************************************************************************************************/
    /********************************************************************************************************/
    /********************************************************************************************************/
    /**
     * Mértodo que retorna un Page<TipoPlan> de todos tipo plan donde activo = 1 y y query de usuario para autocomplete
     * 
     * @param nombre : parametros digitado por el usuario
     * @param activo : 1 = activo / 0 = inactivo
     * @param pageable : para paginación
     * @author: Gustavo Matamoros G.
     * @version: 1.0.0
     * @fechaCreacion: 18/11/2022
     * @fechaModificacion: 18/11/2022
     * @modulo: PPI-PPE
     * @issue: PPI-248
     */
    @Override
    public Page<TipoPlan> findByNombreLikeAndActivo(String nombre, boolean activo, Pageable pageable) {
        return repository.findByNombreIgnoreCaseLikeAndActivo("%" + nombre + "%", activo, pageable);
    }

    /********************************************************************************************************/
    /********************************************************************************************************/
    /********************************************************************************************************/
  • Ahora para el LOV ocurre una situación particular, como parametrosPPEBean, no es el Bean que manejar directamente la entidad sino que es una intermedia no podemos pasarle los parametros al LOV de forma normal,
  • Por esta razón debemos utilizar «params» para que reciba el valor de activo = true desde parametrosPPEBean
  • Esto se hace con la siguiente linea
// Obtenemos el parametro "activo" de params
Boolean activo = (Boolean) params.get("activo");
  • Quedando así
/********************************************************************************************************/
    /********************************************************************************************************/
    /********************************************************************************************************/
    /**
     * Definición que retorna un Page<TipoPlan> de todos tipo plan donde activo = 1 para LOV
     * 
     * @param filterSpecifications : para especificaciones
     * @param pageable : para paginación
     * @param params : parametros
     * @author: Gustavo Matamoros G.
     * @version: 1.0.0
     * @fechaCreacion: 18/11/2022
     * @fechaModificacion: 18/11/2022
     * @modulo: PPI-PPE
     * @issue: PPI-248
     */
    @Override
    public Page<TipoPlan> findByActivoLOV(
            ArrayList<FilterSpecification> filterSpecifications,
            Pageable pageable, 
            Map<String, Object> params) {
            
            // ebviamos el filterSpecifications
            this.setFilterSpecifications(filterSpecifications);

            // Obtenemos el parametro "activo" de params
            Boolean activo = (Boolean) params.get("activo");
        
        // Obtenemos los datos
        return repository.findAllByActivo(activo, pageable);
    }
    /********************************************************************************************************/
    /********************************************************************************************************/
    /********************************************************************************************************/

TipoPlanLOVBean.java

  • Ahora como TipoPlan no contaba con una LOV bean lo creamos
/*
 * Copyright (c) 2022.
 *
 * Centro de Gestion Informatica
 * Direccion de Tecnologias de la Informacion y Comunicacion
 * Universidad Nacional - Costa Rica
 * http://www.una.ac.cr
 *
 */

/**********************************************************************/
/**********************************************************************/
/*********************       PACKAGE     ******************************/
/**********************************************************************/
/**********************************************************************/
package cr.ac.una.cgi.sigesa.ppi.ppo.view.LOV;

/**********************************************************************/
/**********************************************************************/
/*********************       IMPORT'S    ******************************/
/**********************************************************************/
/**********************************************************************/


/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
/*+++++++++++++             SDK-UNA         ++++++++++++++++++++++++++*/
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
import cr.ac.una.cgi.sdkuna.view.commons.LOV;
import cr.ac.una.cgi.sdkuna.view.commons.LOVColumn;
import cr.ac.una.cgi.sdkuna.view.commons.LOVImpl;

/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
/*+++++++++++++       SPRING-BOOT           ++++++++++++++++++++++++++*/
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Component;

/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
/*+++++++++++++      TIPOS DE DATOS         ++++++++++++++++++++++++++*/
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import javax.annotation.PostConstruct;
import cr.ac.una.cgi.sdkuna.api.filter.FilterSpecification;
import cr.ac.una.cgi.sdkuna.api.filter.LogicFunction;
import cr.ac.una.cgi.sdkuna.api.filter.Operator;
import java.util.Map;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;


/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
/*+++++++++++++   Proyecto: PPI/PPO         ++++++++++++++++++++++++++*/
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
import cr.ac.una.cgi.sigesa.ppi.ppo.domain.TipoPlan;
import cr.ac.una.cgi.sigesa.ppi.ppo.service.TipoPlanService;

/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
/*+++++++++++++      DOCUMENTACIÓN          ++++++++++++++++++++++++++*/
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
/**
 * Spring LOVBean Session para la administración de la entidad {@link TipoPlan}
 *
 * @author: Gustavo Matamoros G.
 * @version: 1.0.0
 * @fechaCreacion: 17/11/2022
 * @fechaModificacion: 17/11/2022
 * @modulo: PPI-PPE
 * @issue: PPI-248
 */

/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
/*+++++++++++++       CONFIGURACIÓN         ++++++++++++++++++++++++++*/
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
@Component
@Scope("session")
public class TipoPlanLOVBean extends LOVImpl<TipoPlan, TipoPlanService> implements LOV, Serializable {






    /*************************************************************************************************/
    /*************************************************************************************************/
    /******************************      CONSTRUCTOR     *********************************************/
    /*************************************************************************************************/
    /*************************************************************************************************/
    public TipoPlanLOVBean() {

    }
    /*************************************************************************************************/
    /*************************************************************************************************/
    /*************************************************************************************************/
    /*************************************************************************************************/
    /*************************************************************************************************/







    /*************************************************************************************************/
    /*************************************************************************************************/
    /******************************      FUNCIÓN INIT    *********************************************/
    /*************************************************************************************************/
    /*************************************************************************************************/
    @PostConstruct
    public void init() {

        List<LOVColumn> columns = new ArrayList<>();

        // Creamos las relaciones y ordenes de las columnas para el listado
        LOVColumn column1 = new LOVColumn("nombre",             getI18n("tipoPlan_nombre_label"),            true);
        LOVColumn column2 = new LOVColumn("descripcion",        getI18n("tipoPlan_descripcion_label"),       true);
        LOVColumn column3 = new LOVColumn("activo",             getI18n("tipoPlan_activo_label"),           true);


        //Agregamos las columnas a la variable

        columns.add(column1);
        columns.add(column2);
        columns.add(column3);


        this.setTableColumns(columns);

    }
    /*************************************************************************************************/
    /*************************************************************************************************/
    /*************************************************************************************************/
    /*************************************************************************************************/
    /*************************************************************************************************/

 

}

TipoPlanBean.java

  • Ahora para que el autocomplete funcione dentro del Bean de TipoPlan vamos a crear un método que utilice su servicio enviando el parametros de activo = true
/********************************************************************************************************/
    /********************************************************************************************************/
    /********************************************************************************************************/
    /**
     * Método que retorna un Page<TipoPlan> segun query de usuario para autocomplete
     * 
     * @param query : consulta del usuario
     * @param pageable : para paginación
     * @author: Gustavo Matamoros G.
     * @version: 1.0.0
     * @fechaCreacion: 18/11/2022
     * @fechaModificacion: 18/11/2022
     * @modulo: PPI-PPE
     * @issue: PPI-248
     */
    public Page<TipoPlan> completeByNombreAndActivo(String query, Pageable pageable) {
        return service.findByNombreLikeAndActivo(query, true, pageable);
    }
    /********************************************************************************************************/
    /********************************************************************************************************/
    /********************************************************************************************************/

parametrosPPEBean.java

  • Ahora vamos a crear todo lo necesario para que el Bean ParametrosPPEBean, pueda manejar entidades externas
  • Primero agregamos los imports
//-----------------------------------------------------------------
//TipoPlan PXE
//-----------------------------------------------------------------
import cr.ac.una.cgi.sigesa.ppi.ppo.domain.TipoPlan;
import cr.ac.una.cgi.sigesa.ppi.ppo.service.TipoPlanService;
  • Autowired
//-----------------------------------------------------------------
    //TipoPlan PXE
    //-----------------------------------------------------------------
    @Autowired
    private TipoPlanService tipoPlanService;
  • Declaramos el parametros
//-----------------------------------------------------------------
//TipoPlan PXE
//-----------------------------------------------------------------
private TipoPlan param_ppi_ppe_tipoPlan_PXE;
  • Y ahora vamos a crear una especial para el manejo de beanParams
  • Agregamos los imports necesarios
//-----------------------------------------------------------------
//Variables para manejo de params
//-----------------------------------------------------------------
import java.util.HashMap;
import java.util.Map;
  • Agregamos la variable
//-----------------------------------------------------------------
//Variables para manejo de params
//-----------------------------------------------------------------
private Map<String, Object> beanParams = new HashMap();
  • Ahora vamos a crear una método initParametros que va permitir almacenar los valores que necesitemos existan en param para cuando se requieran
  • Para este caso vamos a tener una variable «activo = true» que luego se lo pasamos a el LOV de TipoPlan para que obtenga los TipoPlan.activo=true
  • Y con sus respectivos get y set
/* ############################################################## */
    /* ##############      initProperties     ####################### */
    /* ############################################################## */
    
    // Par manejo de parametros para LOV
    public void initProperties() {
        if (!isPostBack()) {

            // parametro activo = try
            beanParams.put("activo", true);

        }

    }

    //-----------------------------------------------------------------
    //Variables para manejo de params
    //-----------------------------------------------------------------
    public Map<String, Object> getBeanParams() {
        return beanParams;
    }

    public void setBeanParams(Map<String, Object> beanParams) {
        this.beanParams = beanParams;
    }
    
    /* ############################################################## */
    /* ##############  FIN initProperties     ####################### */
    /* ############################################################## */
  • RESULTADO
/*
 * Copyright (c) 2022.
 *
 * Centro de Gestion Informatica
 * Direccion de Tecnologias de la Informacion y Comunicacion
 * Universidad Nacional - Costa Rica
 * http://www.una.ac.cr
 *
 */

/**********************************************************************/
/**********************************************************************/
/*********************       PACKAGE     ******************************/
/**********************************************************************/
/**********************************************************************/
package cr.ac.una.cgi.sigesa.ppi.ppe.view.model;


/**********************************************************************/
/**********************************************************************/
/*********************       IMPORT'S    ******************************/
/**********************************************************************/
/**********************************************************************/


/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
/*+++++++++++++              SPRING         ++++++++++++++++++++++++++*/
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Component;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;



/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
/*+++++++++++++             SDK-UNA         ++++++++++++++++++++++++++*/
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
import cr.ac.una.cgi.sdkuna.domain.Parametro;
import cr.ac.una.cgi.sdkuna.service.ParametroService;
import cr.ac.una.cgi.sdkuna.view.commons.CRUD;
import cr.ac.una.cgi.sdkuna.view.commons.CRUDImpl;





/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
/*+++++++++++++           GENERALES         ++++++++++++++++++++++++++*/
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
import java.io.Serializable;
import java.util.List;


/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
/*+++++++++++++          PARAMETROS         ++++++++++++++++++++++++++*/
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/


//-----------------------------------------------------------------
//TipoPlan PXE
//-----------------------------------------------------------------
import cr.ac.una.cgi.sigesa.ppi.ppo.domain.TipoPlan;
import cr.ac.una.cgi.sigesa.ppi.ppo.service.TipoPlanService;

//-----------------------------------------------------------------
//Variables para manejo de params
//-----------------------------------------------------------------
import java.util.HashMap;
import java.util.Map;




/**********************************************************************/
/**********************************************************************/
/*********************    DOCUMENTACIÓN  ******************************/
/**********************************************************************/
/**********************************************************************/
/**
 * Bean para la administración de la página parametrosPPEEditForm.xhtml
 *
 * @author Gustavo Matamoros González
 * @fechaCreacion: 15/11/2022
 * @fechaModificacion: 15/11/2022
 * @Version: 1.0.0
 * @modulo: PPI-PPE
 * @issue: PPI-248
 */

/**********************************************************************/
/**********************************************************************/
/*********************    CONFIGURACIÓN  ******************************/
/**********************************************************************/
/**********************************************************************/
@Component
@Scope("session")

/**********************************************************************/
/**********************************************************************/
/****************** DEFINICIÓN DE CLASE  ******************************/
/**********************************************************************/
/**********************************************************************/
public class ParametrosPPEBean extends CRUDImpl<Parametro, ParametroService> implements CRUD, Serializable{
    






    
    /******************************************************************/
    /******************************************************************/
    /*********************     AUTOWIRED    ***************************/
    /******************************************************************/
    /******************************************************************/


    //-----------------------------------------------------------------
    //TipoPlan PXE
    //-----------------------------------------------------------------
    @Autowired
    private TipoPlanService tipoPlanService;



    /******************************************************************/
    /******************************************************************/
    /********************* FIN AUTOWIRED    ***************************/
    /******************************************************************/
    /******************************************************************/







    /******************************************************************/
    /******************************************************************/
    /*********************     VARIABLES    ***************************/
    /******************************************************************/
    /******************************************************************/

    //-----------------------------------------------------------------
    //Variables para manejo de params
    //-----------------------------------------------------------------
    private Map<String, Object> beanParams = new HashMap();


   


    //-----------------------------------------------------------------
    //TipoPlan PXE
    //-----------------------------------------------------------------
    private TipoPlan param_ppi_ppe_tipoPlan_PXE;



    /******************************************************************/
    /******************************************************************/
    /********************* FIN VARIABLES    ***************************/
    /******************************************************************/
    /******************************************************************/

    
    



    /******************************************************************/
    /******************************************************************/
    /*********************     MÉTODOS      ***************************/
    /******************************************************************/
    /******************************************************************/

    /* ############################################################## */
    /* ##############         init            ####################### */
    /* ############################################################## */
        
        public void init() {
            //Es la primera vez que ingresa
            if (!isPostBack()) {
                
                // obtenga el sistema
                if (param_ppi_ppe_modulo_id != null) {
                    sistemaSelected = param_ppi_ppe_modulo_id.getSistema();
                }
            }
        }

    /* ############################################################## */
    /* ##############     FIN init            ####################### */
    /* ############################################################## */


    /* ############################################################## */
    /* ##############      initProperties     ####################### */
    /* ############################################################## */
    
    // Par manejo de parametros para LOV
    public void initProperties() {
        if (!isPostBack()) {

            // parametro activo = try
            beanParams.put("activo", true);

        }

    }

    //-----------------------------------------------------------------
    //Variables para manejo de params
    //-----------------------------------------------------------------
    public Map<String, Object> getBeanParams() {
        return beanParams;
    }

    public void setBeanParams(Map<String, Object> beanParams) {
        this.beanParams = beanParams;
    }
    
    /* ############################################################## */
    /* ##############  FIN initProperties     ####################### */
    /* ############################################################## */





    /******************************************************************/
    /******************************************************************/
    /********************* FIN MÉTODOS      ***************************/
    /******************************************************************/
    /******************************************************************/




}
/**********************************************************************/
/**********************************************************************/
/**********************************************************************/
/**********************************************************************/
/**********************************************************************/

parametrosPPEBeanEditForm.xhtml

  • Ahora para el manejo de tipoPlan agregamos
 <!--####################################################################################-->
                                <!--#################              TIPO PLAN                   #########################-->
                                <!--####################################################################################-->
                                <p:outputLabel id="tipoPlan_PXE_outputLabel"
                                       for="param_ppi_ppe_tipoPlan_PXE"
                                       value="#{i18n.parametrosPPE_tipoPlan_PXE_label}" />

                                <h:panelGrid id="tipoPlan_PXE_panelGrid" columns="2">
                                    <una:autoCompletePaginator
                                                id="param_ppi_ppe_tipoPlan_PXE"
                                                paginator="true"
                                                paginationRows="5"                
                                                dropdown="true"
                                                value="#{parametrosPPEBean.param_ppi_ppe_tipoPlan_PXE}"
                                                var="tipoPlanPXE" 
                                                itemLabel="#{tipoPlanPXE.nombre}" 
                                                itemValue="#{tipoPlanPXE}"
                                                completeMethod="#{tipoPlanBean.completeByNombreAndActivo}"
                                                converter="#{tipoPlanBean.converter}"
                                                forceSelection="true" 
                                                required="true"
                                                styleClass="una-autocomplete-lov"
                                                noSelectedOption="true"                                
                                                noSelectedLabel="#{i18n.parametrosPPE_tipoPlan_PXE_select}"
                                                onNoSelectedOption="#{parametrosPPEBean.handleClearTipoPlan_PXE()}">
                                        
                                        <f:attribute name="service" value="#{parametrosPPEBean.tipoPlanService}" />

                                    </una:autoCompletePaginator>


                                    <components:dialogFrameworkData lOVBean="#{tipoPlanLOVBean}"
                                                                    target="#{parametrosPPEBean.param_ppi_ppe_tipoPlan_PXE}"
                                                                    id="tipoPlan_PXE_ListDialog"
                                                                    title="#{i18n.parametrosPPE_tipoPlan_PXE_LOV_title}"
                                                                    beanFilters="#{parametrosPPEBean.beanParams}"
                                                                    methodName="findByActivoLOV"
                                                                    contentWidth="1000"
                                                                    update="parametrosPPETabView:tipoPlan_PXE_panelGrid"
                                                                    />
                                </h:panelGrid>
                                <p:message id="tipoPlan_PXE_message"
                                   for="param_ppi_ppe_tipoPlan_PXE"/> 

                                <!--####################################################################################-->
                                <!--####################################################################################-->
                                <!--####################################################################################-->

Notas:

  • Autcomplete
    • value=»#{parametrosPPEBean.param_ppi_ppe_tipoPlan_PXE}»: es la variable de Bean que va ser administrado
    • var=»tipoPlanPXE»: es la variable tmp que se crea para obtener el objeto y poder trabajar con el como por ejemplo tipoPlanPXE.nombre
    • itemValue=»#{tipoPlanPXE}»: es el objeto
    • completeMethod=»#{tipoPlanBean.completeByNombreAndActivo}»: metodo que creamos en el TipoPlanBean
    • converter=»#{tipoPlanBean.converter}»: hace que funcione como el objeto aunque estemos en otro objeto
    • onNoSelectedOption=»#{parametrosPPEBean.handleClearTipoPlan_PXE()}»: para limpiar el combo
  • LOV:
    • lOVBean=»#{tipoPlanLOVBean}»: LOPV que va a utilizar
    • target=»#{parametrosPPEBean.param_ppi_ppe_tipoPlan_PXE}»: variable que va a manipular
    • beanFilters=»#{parametrosPPEBean.beanParams}»: permite el envió de beanParams
    • methodName=»findByActivoLOV»: metodo implementado en TipoPlanServiceImpl
  • Con esto solo nos queda habilitar la inicialización de initProperties
<f:event type="preRenderView" listener="#{parametrosPPEBean.initParams()}" />
  • RESULTADO
<!--
Copyright (c) 2022.
Centro de Gestion Informatica
Direccion de Tecnologias de la Informacion y Comunicacion
Universidad Nacional - Costa Rica
http://www.una.ac.cr
-->
<!-- ******************************************************************************************** -->
<!-- ******************************************************************************************** -->
<!-- *****************************   COMPOSICIÓN   ********************************************** -->
<!-- ******************************************************************************************** -->
<!-- ******************************************************************************************** -->

<ui:composition template="/templates/crud.xhtml"
                xmlns="http://www.w3.org/1999/xhtml"
                xmlns:f="http://java.sun.com/jsf/core"
                xmlns:h="http://java.sun.com/jsf/html"
                xmlns:p="http://primefaces.org/ui"
                xmlns:ui="http://java.sun.com/jsf/facelets"
                xmlns:components="http://java.sun.com/jsf/composite/components"
                xmlns:una="http://una.ac.cr/ui/components">

                
    <!-- ******************************************************************************************** -->
    <!-- *****************************       TITLE        ******************************************* -->
    <!-- ******************************************************************************************** -->
    <ui:define name="title">#{i18n.parametrosPPE_edit_form_title}</ui:define>
    <!-- ******************************************************************************************** -->
    <!-- ******************************************************************************************** -->
    <!-- ******************************************************************************************** -->
    

    <!-- ******************************************************************************************** -->
    <!-- *****************************      PRERENDER     ******************************************* -->
    <!-- ******************************************************************************************** -->
    <ui:define name="preRender">
        <f:event type="preRenderView" listener="#{parametrosPPEBean.initParams()}" />
        <f:event type="preRenderView" listener="#{parametrosPPEBean.init()}" />
        <f:event type="preRenderView" listener="#{parametrosPPEBean.initProperties()}" />
    </ui:define>
    <!-- ******************************************************************************************** -->
    <!-- ******************************************************************************************** -->
    <!-- ******************************************************************************************** -->




    

    <!-- ******************************************************************************************** -->
    <!-- *****************************       DEFINE       ******************************************* -->
    <!-- ******************************************************************************************** -->
    <ui:define name="contentCRUD">


        <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
        <!-- ++++++++++++++++++++++++++++++++++   TOOLBARPARAMS    ++++++++++++++++++++++++++++++++++++++ -->
        <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
        <components:toolbarParams
            paramBean="#{parametrosPPEBean}"/>
        <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
        <!-- ++++++++++++++++++++++++++++++++ FIN TOOLBARPARAMS    ++++++++++++++++++++++++++++++++++++++ -->
        <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->


        <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
        <!-- ++++++++++++++++++++++++++++++++     PANELPARAM  +++++++++++++++++++++++++++++++++++++++++++ -->
        <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->

        <una:panelForm id="panelParam"   
                       header="#{i18n.parametrosPPE_edit_form_title}"
                       i18nKey="parametrosPPE_edit_form_title">

            <!-- //////////////////////////////////////////////////////////////////////////////////////// -->
            <!-- //////////////////////////////    INSTRUCTIONS     ///////////////////////////////////// -->
            <!-- //////////////////////////////////////////////////////////////////////////////////////// -->        
            <components:requiredInstructions focus="panelParam" />
            <!-- //////////////////////////////////////////////////////////////////////////////////////// -->
            <!-- ///////////////////////////// FIN INSTRUCTIONS     ///////////////////////////////////// -->
            <!-- //////////////////////////////////////////////////////////////////////////////////////// -->  


            <!-- //////////////////////////////////////////////////////////////////////////////////////// -->
            <!-- //////////////////////////////      TABVIEW        ///////////////////////////////////// -->
            <!-- //////////////////////////////////////////////////////////////////////////////////////// --> 
            <p:tabView id="parametrosPPETabView" activeIndex="#{parametrosPPEBean.activeTab}">

                


                <!-- **************************************************************************************** -->
                <!-- **************************        TAB: VARIOS      ************************************* -->
                <!-- **************************************************************************************** --> 
                <p:tab id="tab_varios" title="#{i18n.parametrosPPE_tab_varios}">

                

                    <!-- **************************************************************************************** -->
                    <!-- ****************         TAB-FIELDSET: VARIOS PXE              ************************* -->
                    <!-- **************************************************************************************** -->
                    <p:fieldset 
                        id="parametrosPPE_PXE_fieldset" 
                        legend="#{i18n.parametrosPPE_tipoPlan_PXE_tab_fieldset_title}" 
                        style="margin-bottom:20px">

                        <p:panelGrid columns="3" styleClass="una-panelgrid-nopadding">


                                <!--####################################################################################-->
                                <!--#################              TIPO PLAN                   #########################-->
                                <!--####################################################################################-->
                                <p:outputLabel id="tipoPlan_PXE_outputLabel"
                                       for="param_ppi_ppe_tipoPlan_PXE"
                                       value="#{i18n.parametrosPPE_tipoPlan_PXE_label}" />

                                <h:panelGrid id="tipoPlan_PXE_panelGrid" columns="2">
                                    <una:autoCompletePaginator
                                                id="param_ppi_ppe_tipoPlan_PXE"
                                                paginator="true"
                                                paginationRows="5"                
                                                dropdown="true"
                                                value="#{parametrosPPEBean.param_ppi_ppe_tipoPlan_PXE}"
                                                var="tipoPlanPXE" 
                                                itemLabel="#{tipoPlanPXE.nombre}" 
                                                itemValue="#{tipoPlanPXE}"
                                                completeMethod="#{tipoPlanBean.completeByNombreAndActivo}"
                                                converter="#{tipoPlanBean.converter}"
                                                forceSelection="true" 
                                                required="true"
                                                styleClass="una-autocomplete-lov"
                                                noSelectedOption="true"                                
                                                noSelectedLabel="#{i18n.parametrosPPE_tipoPlan_PXE_select}"
                                                onNoSelectedOption="#{parametrosPPEBean.handleClearTipoPlan_PXE()}">
                                        
                                        <f:attribute name="service" value="#{parametrosPPEBean.tipoPlanService}" />

                                    </una:autoCompletePaginator>


                                    <components:dialogFrameworkData lOVBean="#{tipoPlanLOVBean}"
                                                                    target="#{parametrosPPEBean.param_ppi_ppe_tipoPlan_PXE}"
                                                                    id="tipoPlan_PXE_ListDialog"
                                                                    title="#{i18n.parametrosPPE_tipoPlan_PXE_LOV_title}"
                                                                    beanFilters="#{parametrosPPEBean.beanParams}"
                                                                    methodName="findByActivoLOV"
                                                                    contentWidth="1000"
                                                                    update="parametrosPPETabView:tipoPlan_PXE_panelGrid"
                                                                    />
                                </h:panelGrid>
                                <p:message id="tipoPlan_PXE_message"
                                   for="param_ppi_ppe_tipoPlan_PXE"/> 

                                <!--####################################################################################-->
                                <!--####################################################################################-->
                                <!--####################################################################################-->

                        </p:panelGrid>

                    </p:fieldset>
                    <!-- **************************************************************************************** -->
                    <!-- ****************     FIN TAB-FIELDSET: VARIOS PXE              ************************* -->
                    <!-- **************************************************************************************** -->


                </p:tab>
                <!-- **************************************************************************************** -->
                <!-- **************************    FIN TAB: VARIOS      ************************************* -->
                <!-- **************************************************************************************** --> 

            </p:tabView>
            <!-- //////////////////////////////////////////////////////////////////////////////////////// -->
            <!-- //////////////////////////////  FIN TABVIEW        ///////////////////////////////////// -->
            <!-- //////////////////////////////////////////////////////////////////////////////////////// --> 

        </una:panelForm>
        <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
        <!-- ++++++++++++++++++++++++++++++++ FIN PANELPARAM  +++++++++++++++++++++++++++++++++++++++++++ -->
        <!-- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->

    </ui:define>
    <!-- ******************************************************************************************** -->
    <!-- *****************************   FIN DEFINE       ******************************************* -->
    <!-- ******************************************************************************************** -->



</ui:composition>
<!-- ******************************************************************************************** -->
<!-- ******************************************************************************************** -->
<!-- **************************  FIN COMPOSICIÓN   ********************************************** -->
<!-- ******************************************************************************************** -->
<!-- ******************************************************************************************** -->

Para campo tipo: INTEGER

ParametrosPPEBean.java

  • Declaramos una variable String (esto por que los parametros SIGESA son String)
//-----------------------------------------------------------------
    //RANGO PES
    //-----------------------------------------------------------------
    private String param_ppi_ppe_planEducacionSuperior_rango; 
  • Declaramos los get y set
//-----------------------------------------------------------------
    //RANGO: PES
    //-----------------------------------------------------------------
    public String getParam_ppi_ppe_planEducacionSuperior_rango() {
        return param_ppi_ppe_planEducacionSuperior_rango;
    }

    public void setParam_ppi_ppe_planEducacionSuperior_rango(String param_ppi_ppe_planEducacionSuperior_rango) {
        this.param_ppi_ppe_planEducacionSuperior_rango = param_ppi_ppe_planEducacionSuperior_rango;
    }

parametrosPPEEditForm.xhtml

  • Agregamos el componente y agregamos la valización para que solo se pueden digitar números
<!--####################################################################################-->
                                <!--#################               RANGO PES                  #########################-->
                                <!--####################################################################################-->
                                <p:outputLabel  id="rango_PES_outputLabel"
                                                for="param_ppi_ppe_planEducacionSuperior_rango"
                                                value="#{i18n.parametrosPPE_rango_PES_label}" />

                                <p:inputText    id="param_ppi_ppe_planEducacionSuperior_rango"
                                                value="#{parametrosPPEBean.param_ppi_ppe_planEducacionSuperior_rango}"
                                                required="true"
                                                size="32"
                                                maxlength="32"
                                                onkeyup="$(this).val($(this).val().replace(/[^0-9]/g, ''));"
                                                placeholder="#{i18n.parametrosPPE_rango_PES_placeholder}"/>

                                <p:message      id="rango_PES_message"
                                                for="param_ppi_ppe_planEducacionSuperior_rango"/>

                                <!--####################################################################################-->
                                <!--####################################################################################-->
                                <!--####################################################################################-->
  • Validación solo números
onkeyup="$(this).val($(this).val().replace(/[^0-9]/g, ''));"

Componete: SelectManyMenú

  • El parametro de param_ppi_ppe_unidadesEjecutoras_vinculacionPropia
  • Permite guardar multiples id de unidades ejecutoras separados por como. Ej: 10,11,123,124,138
  • Por esto para poder manejar este tipo de parametro vamos a crear una campos de tpo String que los contenga y que se encuentre oculto
  • Y vamos a utilizar el componente SelectManyMenu para presentar todas las Unidades Ejecutoras y cada vez que el usuario seleccione o desmarque una una ajax va recorrer la lista de seleccionados y crear un string separado por comas de los Id de las UE y asiganrlo al String del parametros

ParametrosPPEBean.java

  • Autowired UnidadEjecutoraService
//-----------------------------------------------------------------
    //UnidadEjecutora
    //-----------------------------------------------------------------
    @Autowired
    private UnidadEjecutoraService unidadEjecutoraService;
  • Creamos la variables
    • param_ppi_ppe_unidadesEjecutoras_vinculacionPropia: alamacena la valor real del parametro
    • listaStringTMPUnidadEjecutoraSeleccionadas: lista temporal que va a contener las UE selecionadas en el componente
    • listaAllUnidadEjecutoraVinculacionPropia: lista de todas las unidades ejecutoras
    • listaUnidadEjecutoraVinculacionPropiaSelected: lista de las UE seleciconadas
/* ############################################################## */
    /* ##############      UnidadEjecutora    ####################### */
    /* ############################################################## */

  

    //-----------------------------------------------------------------
    // VinculacionPropia
    //-----------------------------------------------------------------
    private String param_ppi_ppe_unidadesEjecutoras_vinculacionPropia;
    private String[] listaStringTMPUnidadEjecutoraSeleccionadas;



    // almacena todas las Unidades Ejecutoras
    private List<UnidadEjecutora> listaAllUnidadEjecutoraVinculacionPropia;

    // Almacena las Unidades Ejecutoras seleccionadas
    private List<UnidadEjecutora> listaUnidadEjecutoraVinculacionPropiaSelected;


    /* ############################################################## */
    /* ##############  FIN UnidadEjecutora    ####################### */
    /* ############################################################## */
  • Ahora vamos a crear un metodo initDetails para que inicialice las listas
/* ############################################################## */
    /* ##############      initDetails        ####################### */
    /* ############################################################## */
    public void initDetails() {
        if (!isPostBack()) {
            
            // Obtenemos todas las UE
            this.setListaAllUnidadEjecutoraVinculacionPropia(this.obtenerListAllUnidadEjecutora());
            
            // Creamos una lista vacia para luego almacenar las UE selecionadas 
            this.setListaUnidadEjecutoraVinculacionPropiaSelected(new ArrayList());

            
            // Si el parametro no esta vacio
             if ( 
                (param_ppi_ppe_unidadesEjecutoras_vinculacionPropia != null) || 
                (!param_ppi_ppe_unidadesEjecutoras_vinculacionPropia.equals("")) 
                ) {

                // Creamos un array de id de UE, según parametro
                listaStringTMPUnidadEjecutoraSeleccionadas = param_ppi_ppe_unidadesEjecutoras_vinculacionPropia.split(",");

                // Recorremos el array obteniendo la UE, según ID 
                for (int i=0;i< listaStringTMPUnidadEjecutoraSeleccionadas.length;i++) {

                    // Almacenamos el objeto obtenido en la lista de seleccionados
                    listaUnidadEjecutoraVinculacionPropiaSelected.add(unidadEjecutoraService.findOne(Long.parseLong(listaStringTMPUnidadEjecutoraSeleccionadas[i])));
                }
            }
        }
    }
    /* ############################################################## */
    /* ##############  FIN initDetails        ####################### */
    /* ############################################################## */
  • Creamos get del servicio
//-----------------------------------------------------------------
    //UnidadEjecutoraService
    //-----------------------------------------------------------------
    public UnidadEjecutoraService getUnidadEjecutoraService() {
        return unidadEjecutoraService;
    }
  • Creamos metodo para obtener todas las UE
//-----------------------------------------------------------------
    //UnidadEjecutora: findAll
    //-----------------------------------------------------------------
    public List<UnidadEjecutora> obtenerListAllUnidadEjecutora() {
        return unidadEjecutoraService.findAll();
    }
  • Get y set del parametro
public String getParam_ppi_ppe_unidadesEjecutoras_vinculacionPropia() {
        return param_ppi_ppe_unidadesEjecutoras_vinculacionPropia;
    }

    public void setParam_ppi_ppe_unidadesEjecutoras_vinculacionPropia(String param_ppi_ppe_unidadesEjecutoras_vinculacionPropia) {
        this.param_ppi_ppe_unidadesEjecutoras_vinculacionPropia = param_ppi_ppe_unidadesEjecutoras_vinculacionPropia;
    }
  • Get y set de la lista de todas las UE
public List<UnidadEjecutora> getListaAllUnidadEjecutoraVinculacionPropia() {
        return listaAllUnidadEjecutoraVinculacionPropia;
    }

    public void setListaAllUnidadEjecutoraVinculacionPropia(List<UnidadEjecutora> listaAllUnidadEjecutoraVinculacionPropia) {
        this.listaAllUnidadEjecutoraVinculacionPropia = listaAllUnidadEjecutoraVinculacionPropia;
    }
  • Get y set de la lista de las UE seleccionadas
public List<UnidadEjecutora> getListaUnidadEjecutoraVinculacionPropiaSelected() {
        return listaUnidadEjecutoraVinculacionPropiaSelected;
    }

    public void setListaUnidadEjecutoraVinculacionPropiaSelected(List<UnidadEjecutora> listaUnidadEjecutoraVinculacionPropiaSelected) {
        this.listaUnidadEjecutoraVinculacionPropiaSelected = listaUnidadEjecutoraVinculacionPropiaSelected;
    }
  • Y una funcion que se ejecute cada vez que el usuario marque o desmarque una opción del componete, obtenga los valores y cree el valor correcto para parametro
public void actualizaParam_ppi_ppe_unidadesEjecutoras_vinculacionPropia(){
        
        // Limpiamos el parametro
        this.param_ppi_ppe_unidadesEjecutoras_vinculacionPropia = "";
        
        // Variable temporal para creación de nuevo valor del parametro
        String tmp ="";

        // Recorremos la lista de seleccionados del componete
        for (UnidadEjecutora ue : this.getListaUnidadEjecutoraVinculacionPropiaSelected()) {
            
            //Concatenamos
            tmp += ue.getId()+",";
        }

        // Asignamos el nuevo valor
        this.param_ppi_ppe_unidadesEjecutoras_vinculacionPropia = tmp.substring(0,tmp.length()-1);

    }

parametrosPPEEditForm.xhtml

  • Creamos el campo del String del parametro y este va esta oculto con rendered=»false»
<!--####################################################################################-->
                                <!--#################      UE: VINCULACION_PROPIA TEXT          #########################-->
                                <!--####################################################################################-->
                                <p:outputLabel  id="vinculacionPropia_outputLabel"
                                                for="param_ppi_ppe_unidadesEjecutoras_vinculacionPropia"
                                                value="#{i18n.parametrosPPE_vinculacionPropia_label}"
                                                rendered="false" />

                                <p:inputText    id="param_ppi_ppe_unidadesEjecutoras_vinculacionPropia"
                                                value="#{parametrosPPEBean.param_ppi_ppe_unidadesEjecutoras_vinculacionPropia}"
                                                required="true"
                                                size="32"
                                                maxlength="32"
                                                placeholder="#{i18n.parametrosPPE_vinculacionPropia_placeholder}"
                                                rendered="false"
                                                />

                                <p:message      id="vinculacionPropia_message"
                                                for="param_ppi_ppe_unidadesEjecutoras_vinculacionPropia"
                                                rendered="false"/>

                                <!--####################################################################################-->
                                <!--####################################################################################-->
                                <!--####################################################################################-->
  • Y el componete SelectManyMenu
<!--####################################################################################-->
                                <!--#################          UE: VINCULACION_PROPIA          #########################-->
                                <!--####################################################################################-->
                                <p:outputLabel  id="unidadEjecutoraVinculacionPropia_outputLabel" 
                                                for="unidadEjecutoraVinculacionPropia" 
                                                value="#{i18n.parametrosPPE_unidadEjecutoraVinculacionPropia_label}"/>


                                <h:panelGrid    id="unidadEjecutoraVinculacionPropia_panelGrid" style="width:100%">
                                    <p:selectManyMenu 
                                                    id="unidadEjecutoraVinculacionPropia" 
                                                    value="#{parametrosPPEBean.listaUnidadEjecutoraVinculacionPropiaSelected}"
                                                    converter="#{unidadEjecutoraBean.converter}"
                                                    var="c" 
                                                    filter="true" 
                                                    filterMatchMode="contains" 
                                                    showCheckbox="true" 
                                                    styleClass="una-selectManyMenu"
                                                    style="width:100%">
                                        <f:selectItems 
                                                    value="#{parametrosPPEBean.listaAllUnidadEjecutoraVinculacionPropia}"
                                                    var="ue" 
                                                    itemLabel="#{ue.codigo}"
                                                    itemValue="#{ue}"/>
                                        <p:column>
                                            <h:outputText value="#{c.codigo}"/>
                                        </p:column>
                                        <p:column>
                                            <h:outputText value="#{c.nombre}"/>
                                        </p:column>

                                        <p:ajax 
                                                process="@this" 
                                                listener="#{parametrosPPEBean.actualizaParam_ppi_ppe_unidadesEjecutoras_vinculacionPropia}" 
                                                update="param_ppi_ppe_unidadesEjecutoras_vinculacionPropia"/>
                                    </p:selectManyMenu>
      

                                       
                                </h:panelGrid>
                                <p:message      id="unidadEjecutoraVinculacionPropia_message" 
                                                for="unidadEjecutoraVinculacionPropia" /> 

                                <!--####################################################################################-->
                                <!--####################################################################################-->
                                <!--####################################################################################-->
  • Archivos Finales

ParametrosPPEBean.java

/*
 * Copyright (c) 2022.
 *
 * Centro de Gestion Informatica
 * Direccion de Tecnologias de la Informacion y Comunicacion
 * Universidad Nacional - Costa Rica
 * http://www.una.ac.cr
 *
 */

/**********************************************************************/
/**********************************************************************/
/*********************       PACKAGE     ******************************/
/**********************************************************************/
/**********************************************************************/
package cr.ac.una.cgi.sigesa.ppi.ppe.view.model;


/**********************************************************************/
/**********************************************************************/
/*********************       IMPORT'S    ******************************/
/**********************************************************************/
/**********************************************************************/


/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
/*+++++++++++++              SPRING         ++++++++++++++++++++++++++*/
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Component;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.data.domain.PageImpl;




/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
/*+++++++++++++             SDK-UNA         ++++++++++++++++++++++++++*/
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
import cr.ac.una.cgi.sdkuna.domain.Parametro;
import cr.ac.una.cgi.sdkuna.service.ParametroService;
import cr.ac.una.cgi.sdkuna.view.commons.CRUD;
import cr.ac.una.cgi.sdkuna.view.commons.CRUDImpl;





/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
/*+++++++++++++           GENERALES         ++++++++++++++++++++++++++*/
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
import java.io.Serializable;
import java.util.List;
import java.util.ArrayList;

/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
/*+++++++++++++          PARAMETROS         ++++++++++++++++++++++++++*/
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/

//-----------------------------------------------------------------
//EstadoFormulacionPAE
//-----------------------------------------------------------------
import cr.ac.una.cgi.sigesa.ppi.ppe.domain.EstadoFormulacionPAE;
import cr.ac.una.cgi.sigesa.ppi.ppe.service.EstadoFormulacionPAEService;


//-----------------------------------------------------------------
//EstadoFormulacionPXE
//-----------------------------------------------------------------
import cr.ac.una.cgi.sigesa.ppi.ppe.domain.EstadoFormulacionPXE;
import cr.ac.una.cgi.sigesa.ppi.ppe.service.EstadoFormulacionPXEService;



//-----------------------------------------------------------------
//TipoPlan PXE
//-----------------------------------------------------------------
import cr.ac.una.cgi.sigesa.ppi.ppo.domain.TipoPlan;
import cr.ac.una.cgi.sigesa.ppi.ppo.service.TipoPlanService;

//-----------------------------------------------------------------
//PeriodoAnual
//-----------------------------------------------------------------
import cr.ac.una.cgi.sigesa.epf.cpr.domain.PeriodoAnual;
import cr.ac.una.cgi.sigesa.epf.cpr.service.PeriodoAnualService;

//-----------------------------------------------------------------
//UnidadEjecutora
//-----------------------------------------------------------------
import cr.ac.una.cgi.sigesa.epf.cpr.domain.UnidadEjecutora;
import cr.ac.una.cgi.sigesa.epf.cpr.service.UnidadEjecutoraService;


//-----------------------------------------------------------------
//Variables para manejo de params
//-----------------------------------------------------------------
import java.util.HashMap;
import java.util.Map;

//-----------------------------------------------------------------
//TipoDocumento
//-----------------------------------------------------------------
import cr.ac.una.cgi.sdkuna.domain.Sistema;
import cr.ac.una.cgi.sdkuna.service.SistemaService;
import cr.ac.una.cgi.sdkuna.domain.Modulo;
import cr.ac.una.cgi.sdkuna.service.ModuloService;
import cr.ac.una.cgi.sigesa.epf.cge.domain.TipoDocumento;
import cr.ac.una.cgi.sigesa.epf.cge.service.TipoDocumentoService;




/**********************************************************************/
/**********************************************************************/
/*********************    DOCUMENTACIÓN  ******************************/
/**********************************************************************/
/**********************************************************************/
/**
 * Bean para la administración de la página parametrosPPEEditForm.xhtml
 *
 * @author Gustavo Matamoros González
 * @fechaCreacion: 15/11/2022
 * @fechaModificacion: 15/11/2022
 * @Version: 1.0.0
 * @modulo: PPI-PPE
 * @issue: PPI-248
 */

/**********************************************************************/
/**********************************************************************/
/*********************    CONFIGURACIÓN  ******************************/
/**********************************************************************/
/**********************************************************************/
@Component
@Scope("session")

/**********************************************************************/
/**********************************************************************/
/****************** DEFINICIÓN DE CLASE  ******************************/
/**********************************************************************/
/**********************************************************************/
public class ParametrosPPEBean extends CRUDImpl<Parametro, ParametroService> implements CRUD, Serializable{
    






    
    /******************************************************************/
    /******************************************************************/
    /*********************     AUTOWIRED    ***************************/
    /******************************************************************/
    /******************************************************************/

    //-----------------------------------------------------------------
    //EstadoFormulacionPAE
    //-----------------------------------------------------------------
    @Autowired
    private EstadoFormulacionPAEService estadoFormulacionPAEService;


    //-----------------------------------------------------------------
    //EstadoFormulacionPXE
    //-----------------------------------------------------------------
    @Autowired
    private EstadoFormulacionPXEService estadoFormulacionPXEService;

    //-----------------------------------------------------------------
    //TipoPlan PXE
    //-----------------------------------------------------------------
    @Autowired
    private TipoPlanService tipoPlanService;


    //-----------------------------------------------------------------
    //PeriodoAnual
    //-----------------------------------------------------------------
    @Autowired
    private PeriodoAnualService periodoAnualService;



    //-----------------------------------------------------------------
    //TipoDocumento
    //-----------------------------------------------------------------

    @Autowired
    ModuloService moduloService;

    @Autowired
    TipoDocumentoService tipoDocumentoService;

    //-----------------------------------------------------------------
    //UnidadEjecutora
    //-----------------------------------------------------------------
    @Autowired
    private UnidadEjecutoraService unidadEjecutoraService;


    /******************************************************************/
    /******************************************************************/
    /********************* FIN AUTOWIRED    ***************************/
    /******************************************************************/
    /******************************************************************/







    /******************************************************************/
    /******************************************************************/
    /*********************     VARIABLES    ***************************/
    /******************************************************************/
    /******************************************************************/

    //-----------------------------------------------------------------
    //Variables para manejo de params
    //-----------------------------------------------------------------
    private Map<String, Object> beanParams = new HashMap();


    


    /* ############################################################## */
    /* ##############           PXE           ####################### */
    /* ############################################################## */
    //-----------------------------------------------------------------
    //EstadoFormulacionPXE
    //-----------------------------------------------------------------
    private EstadoFormulacionPXE param_ppi_ppe_estadoFormulacionPXE_anulado;
    private EstadoFormulacionPXE param_ppi_ppe_estadoFormulacionPXE_borrador;
    private EstadoFormulacionPXE param_ppi_ppe_estadoFormulacionPXE_completado;
    private EstadoFormulacionPXE param_ppi_ppe_estadoFormulacionPXE_ratificado;
    private EstadoFormulacionPXE param_ppi_ppe_estadoFormulacionPXE_aprobado;


    //-----------------------------------------------------------------
    //TipoPlan PXE
    //-----------------------------------------------------------------
    private TipoPlan param_ppi_ppe_tipoPlan_PXE;


    //-----------------------------------------------------------------
    //anoInicio PXE
    //-----------------------------------------------------------------
    private PeriodoAnual param_ppi_ppe_anoInicio_planAccionEstrategica;

    /* ############################################################## */
    /* ##############       FIN PXE           ####################### */
    /* ############################################################## */



    /* ############################################################## */
    /* ##############           PAE           ####################### */
    /* ############################################################## */

    //-----------------------------------------------------------------
    //EstadoFormulacionPAE
    //-----------------------------------------------------------------
    private EstadoFormulacionPAE param_ppi_ppe_estadoFormulacionPAE_anulado;
    private EstadoFormulacionPAE param_ppi_ppe_estadoFormulacionPAE_borrador;
    private EstadoFormulacionPAE param_ppi_ppe_estadoFormulacionPAE_completado;
    private EstadoFormulacionPAE param_ppi_ppe_estadoFormulacionPAE_ratificado;
    private EstadoFormulacionPAE param_ppi_ppe_estadoFormulacionPAE_aprobado;


    //-----------------------------------------------------------------
    //anoInicio PAE
    //-----------------------------------------------------------------
    private PeriodoAnual param_ppi_ppe_anoInicio_planAporteEstrategico;
    private PeriodoAnual param_ppi_ppe_anoInicio_aporteEstrategico;


    //-----------------------------------------------------------------
    //anoFinal PAE
    //-----------------------------------------------------------------
    private PeriodoAnual param_ppi_ppe_anoFinal_aporteEstrategico;

    //-----------------------------------------------------------------
    //porcentajeMin PAE
    //-----------------------------------------------------------------
    private String param_ppi_ppe_porcentajeMin_aporteEstrategico_metaPoa; 

    /* ############################################################## */
    /* ##############       FIN PAE           ####################### */
    /* ############################################################## */


    /* ############################################################## */
    /* ##############           PES           ####################### */
    /* ############################################################## */

    //-----------------------------------------------------------------
    //anoInicio PES
    //-----------------------------------------------------------------
    private PeriodoAnual param_ppi_ppe_planEducacionSuperior_periodoAnualInicial_id;

    //-----------------------------------------------------------------
    //RANGO PES
    //-----------------------------------------------------------------
    private String param_ppi_ppe_planEducacionSuperior_rango; 

    
    /* ############################################################## */
    /* ##############        FIN PES          ####################### */
    /* ############################################################## */


    /* ############################################################## */
    /* ##############           PLP           ####################### */
    /* ############################################################## */
    //-----------------------------------------------------------------
    //anoInicio PES
    //-----------------------------------------------------------------
    private PeriodoAnual param_ppi_ppe_anoInicio_planLargoPlazo;


    //-----------------------------------------------------------------
    //annnoMas PES
    //-----------------------------------------------------------------
    private String param_ppi_ppe_periodoAnual_annos_mas; 

    /* ############################################################## */
    /* ##############       FIN PLP           ####################### */
    /* ############################################################## */



    
    /* ############################################################## */
    /* ##############      TipoDocumento      ####################### */
    /* ############################################################## */

    //-----------------------------------------------------------------
    // Sistema
    //-----------------------------------------------------------------
    private Sistema sistemaSelected;

    //-----------------------------------------------------------------
    // Módulo
    //-----------------------------------------------------------------
    private Modulo param_ppi_ppe_modulo_id;

    //-----------------------------------------------------------------
    //TipoDocumento
    //-----------------------------------------------------------------
    private TipoDocumento param_ppi_ppe_tipoDocumento_planEducacionSuperior;
    private TipoDocumento param_ppi_ppe_tipoDocumento_planDesarrolloSostenible;
    private TipoDocumento param_ppi_ppe_tipoDocumento_planAccionEstrategica;
    private TipoDocumento param_ppi_ppe_tipoDocumento_planAporteEstrategico;
    private TipoDocumento param_ppi_ppe_tipoDocumento_planLargoPlazo;
    private TipoDocumento param_ppi_ppe_tipoDocumento_planLineaEstrategica;


    /* ############################################################## */
    /* ##############  FIN TipoDocumento      ####################### */
    /* ############################################################## */




    /* ############################################################## */
    /* ##############      UnidadEjecutora    ####################### */
    /* ############################################################## */

    //-----------------------------------------------------------------
    // VinculacionRectoria
    //-----------------------------------------------------------------
    private UnidadEjecutora param_ppi_ppe_unidadesEjecutoras_vinculacionRectoria;
    private String unidadEjecutoraVinculacionRectoriaNombre;

    //-----------------------------------------------------------------
    // VinculacionPropia
    //-----------------------------------------------------------------
    private String param_ppi_ppe_unidadesEjecutoras_vinculacionPropia;
    private String[] listaStringTMPUnidadEjecutoraSeleccionadas;



    // almacena todas las Unidades Ejecutoras
    private List<UnidadEjecutora> listaAllUnidadEjecutoraVinculacionPropia;

    // Almacena las Unidades Ejecutoras seleccionadas
    private List<UnidadEjecutora> listaUnidadEjecutoraVinculacionPropiaSelected;


    /* ############################################################## */
    /* ##############  FIN UnidadEjecutora    ####################### */
    /* ############################################################## */


    /******************************************************************/
    /******************************************************************/
    /********************* FIN VARIABLES    ***************************/
    /******************************************************************/
    /******************************************************************/

    
    

    


    /******************************************************************/
    /******************************************************************/
    /*********************     MÉTODOS      ***************************/
    /******************************************************************/
    /******************************************************************/

    /* ############################################################## */
    /* ##############         init            ####################### */
    /* ############################################################## */
        
        public void init() {
            //Es la primera vez que ingresa
            if (!isPostBack()) {
                
                // obtenga el sistema
                if (param_ppi_ppe_modulo_id != null) {
                    sistemaSelected = param_ppi_ppe_modulo_id.getSistema();
                }

                
                
            }
        }

    /* ############################################################## */
    /* ##############     FIN init            ####################### */
    /* ############################################################## */


    /* ############################################################## */
    /* ##############      initProperties     ####################### */
    /* ############################################################## */
    
    // Par manejo de parametros para LOV
    public void initProperties() {
        if (!isPostBack()) {

            // parametro activo = try
            beanParams.put("activo", true);

        }

    }

    //-----------------------------------------------------------------
    //Variables para manejo de params
    //-----------------------------------------------------------------
    public Map<String, Object> getBeanParams() {
        return beanParams;
    }

    public void setBeanParams(Map<String, Object> beanParams) {
        this.beanParams = beanParams;
    }

    /* ############################################################## */
    /* ##############  FIN initProperties     ####################### */
    /* ############################################################## */



    /* ############################################################## */
    /* ##############      initDetails        ####################### */
    /* ############################################################## */
    public void initDetails() {
        if (!isPostBack()) {
            
            // Obtenemos todas las UE
            this.setListaAllUnidadEjecutoraVinculacionPropia(this.obtenerListAllUnidadEjecutora());
            
            // Creamos una lista vacia para luego almacenar las UE selecionadas 
            this.setListaUnidadEjecutoraVinculacionPropiaSelected(new ArrayList());

            
            // Si el parametro no esta vacio
             if ( 
                (param_ppi_ppe_unidadesEjecutoras_vinculacionPropia != null) || 
                (!param_ppi_ppe_unidadesEjecutoras_vinculacionPropia.equals("")) 
                ) {

                // Creamos un array de id de UE, según parametro
                listaStringTMPUnidadEjecutoraSeleccionadas = param_ppi_ppe_unidadesEjecutoras_vinculacionPropia.split(",");

                // Recorremos el array obteniendo la UE, según ID 
                for (int i=0;i< listaStringTMPUnidadEjecutoraSeleccionadas.length;i++) {

                    // Almacenamos el objeto obtenido en la lista de seleccionados
                    listaUnidadEjecutoraVinculacionPropiaSelected.add(unidadEjecutoraService.findOne(Long.parseLong(listaStringTMPUnidadEjecutoraSeleccionadas[i])));
                }
            }
        }
    }
    /* ############################################################## */
    /* ##############  FIN initDetails        ####################### */
    /* ############################################################## */






    /* ############################################################## */
    /* ##############      TipoDocumento      ####################### */
    /* ############################################################## */

    //-----------------------------------------------------------------
    //Sistema
    //-----------------------------------------------------------------

    // Variable: sistemaSelected
    public Sistema getSistemaSelected() {
        return sistemaSelected;
    }

    // Variable: sistemaSelected
    public void setSistemaSelected(Sistema sistemaSelected) {
        this.sistemaSelected = sistemaSelected;
    }

    // Limpeza Sistema
    public void handleClearSistema() {
        this.setSistemaSelected(null);
        handleClearModulo();
    }


    //-----------------------------------------------------------------
    //Módulo
    //-----------------------------------------------------------------
    
    //Servicio
    public ModuloService getModuloService() {
        return moduloService;
    }

    //Servicio
    public void setModuloService(ModuloService moduloService) {
        this.moduloService = moduloService;
    }

    //variable: getParam_ppi_ppe_modulo_id
    public Modulo getParam_ppi_ppe_modulo_id() {
        return param_ppi_ppe_modulo_id;
    }

    //variable: setParam_ppi_ppe_modulo_id
    public void setParam_ppi_ppe_modulo_id(Modulo param_ppi_ppe_modulo_id) {
        this.param_ppi_ppe_modulo_id = param_ppi_ppe_modulo_id;
    }

    // Limpieza de módulo
    public void handleClearModulo() {
        this.setParam_ppi_ppe_modulo_id(null);
    }

    // Autocomplete: módulo
    public Page<Modulo> completeModulo(String query, Pageable pageable) {
        return moduloService.findBySistemaOrderBySequenciaAsc(query, sistemaSelected, pageable);
    }

    //-----------------------------------------------------------------
    //TipoDocumentoService
    //-----------------------------------------------------------------
    public TipoDocumentoService getTipoDocumentoService() {
        return tipoDocumentoService;
    }

    public void setTipoDocumentoService(TipoDocumentoService tipoDocumentoService) {
        this.tipoDocumentoService = tipoDocumentoService;
    }

    //-----------------------------------------------------------------
    //TipoDocumento: planEducacionSuperior
    //-----------------------------------------------------------------
    public TipoDocumento getParam_ppi_ppe_tipoDocumento_planEducacionSuperior() {
        return param_ppi_ppe_tipoDocumento_planEducacionSuperior;
    }

    public void setParam_ppi_ppe_tipoDocumento_planEducacionSuperior(TipoDocumento param_ppi_ppe_tipoDocumento_planEducacionSuperior) {
        this.param_ppi_ppe_tipoDocumento_planEducacionSuperior = param_ppi_ppe_tipoDocumento_planEducacionSuperior;
    }

    //Limpieza
    public void handleClearTipoDocumentoPlanEducacionSuperior() {
        this.setParam_ppi_ppe_tipoDocumento_planEducacionSuperior(null);
    }

    //-----------------------------------------------------------------
    //TipoDocumento: planDesarrolloSostenible
    //-----------------------------------------------------------------
    public TipoDocumento getParam_ppi_ppe_tipoDocumento_planDesarrolloSostenible() {
        return param_ppi_ppe_tipoDocumento_planDesarrolloSostenible;
    }

    public void setParam_ppi_ppe_tipoDocumento_planDesarrolloSostenible(TipoDocumento param_ppi_ppe_tipoDocumento_planDesarrolloSostenible) {
        this.param_ppi_ppe_tipoDocumento_planDesarrolloSostenible = param_ppi_ppe_tipoDocumento_planDesarrolloSostenible;
    }

    //Limpieza
    public void handleClearTipoDocumentoPlanDesarrolloSostenible() {
        this.setParam_ppi_ppe_tipoDocumento_planDesarrolloSostenible(null);
    }

    //-----------------------------------------------------------------
    //TipoDocumento: planAccionEstrategica
    //-----------------------------------------------------------------
    public TipoDocumento getParam_ppi_ppe_tipoDocumento_planAccionEstrategica() {
        return param_ppi_ppe_tipoDocumento_planAccionEstrategica;
    }

    public void setParam_ppi_ppe_tipoDocumento_planAccionEstrategica(TipoDocumento param_ppi_ppe_tipoDocumento_planAccionEstrategica) {
        this.param_ppi_ppe_tipoDocumento_planAccionEstrategica = param_ppi_ppe_tipoDocumento_planAccionEstrategica;
    }

    //Limpieza
    public void handleClearTipoDocumentoPlanAccionEstrategica() {
        this.setParam_ppi_ppe_tipoDocumento_planAccionEstrategica(null);
    }

    //-----------------------------------------------------------------
    //TipoDocumento: planAporteEstrategico
    //-----------------------------------------------------------------
    public TipoDocumento getParam_ppi_ppe_tipoDocumento_planAporteEstrategico() {
        return param_ppi_ppe_tipoDocumento_planAporteEstrategico;
    }

    public void setParam_ppi_ppe_tipoDocumento_planAporteEstrategico(TipoDocumento param_ppi_ppe_tipoDocumento_planAporteEstrategico) {
        this.param_ppi_ppe_tipoDocumento_planAporteEstrategico = param_ppi_ppe_tipoDocumento_planAporteEstrategico;
    }

    //Limpieza
    public void handleClearTipoDocumentoPlanAporteEstrategico() {
        this.setParam_ppi_ppe_tipoDocumento_planAporteEstrategico(null);
    }

    //-----------------------------------------------------------------
    //TipoDocumento: planLargoPlazo
    //-----------------------------------------------------------------
    public TipoDocumento getParam_ppi_ppe_tipoDocumento_planLargoPlazo() {
        return param_ppi_ppe_tipoDocumento_planLargoPlazo;
    }

    public void setParam_ppi_ppe_tipoDocumento_planLargoPlazo(TipoDocumento param_ppi_ppe_tipoDocumento_planLargoPlazo) {
        this.param_ppi_ppe_tipoDocumento_planLargoPlazo = param_ppi_ppe_tipoDocumento_planLargoPlazo;
    }

    //Limpieza
    public void handleClearTipoDocumentoPlanLargoPlazo() {
        this.setParam_ppi_ppe_tipoDocumento_planLargoPlazo(null);
    }


    //-----------------------------------------------------------------
    //TipoDocumento: planLineaEstrategica
    //-----------------------------------------------------------------
    public TipoDocumento getParam_ppi_ppe_tipoDocumento_planLineaEstrategica() {
        return param_ppi_ppe_tipoDocumento_planLineaEstrategica;
    }

    public void setParam_ppi_ppe_tipoDocumento_planLineaEstrategica(TipoDocumento param_ppi_ppe_tipoDocumento_planLineaEstrategica) {
        this.param_ppi_ppe_tipoDocumento_planLineaEstrategica = param_ppi_ppe_tipoDocumento_planLineaEstrategica;
    }

    //Limpieza
    public void handleClearTipoDocumentoPlanLineaEstrategica() {
        this.setParam_ppi_ppe_tipoDocumento_planLineaEstrategica(null);
    }

    /* ############################################################## */
    /* ##############  FIN TipoDocumento      ####################### */
    /* ############################################################## */


    /* ############################################################## */
    /* ##############    PeriodoAnual         ####################### */
    /* ############################################################## */
    //-----------------------------------------------------------------
    //Periodo Anual
    //-----------------------------------------------------------------

    public PeriodoAnualService getPeriodoAnualService() {
        return periodoAnualService;
    }

    public void setPeriodoAnualService(PeriodoAnualService periodoAnualService) {
        this.periodoAnualService = periodoAnualService;
    }

    // Obtener los periodos Anuales
    public Page<PeriodoAnual> obtenerPagePeriodosAnuales(String query, Pageable pageable) {
        return periodoAnualService.findAllOrderByAnoDesc(query,pageable);
       
    }

    /* ############################################################## */
    /* ##############   FIN PeriodoAnual      ####################### */
    /* ############################################################## */


    /* ############################################################## */
    /* ##############          PXE            ####################### */
    /* ############################################################## */

    //-----------------------------------------------------------------
    //TipoPlan: PXE
    //-----------------------------------------------------------------

    public TipoPlanService getTipoPlanService() {
        return tipoPlanService;
    }

    public void setTipoPlanService(TipoPlanService tipoPlanService) {
        this.tipoPlanService = tipoPlanService;
    }


    public TipoPlan getParam_ppi_ppe_tipoPlan_PXE() {
        return param_ppi_ppe_tipoPlan_PXE;
    }

    public void setParam_ppi_ppe_tipoPlan_PXE(TipoPlan param_ppi_ppe_tipoPlan_PXE) {
        this.param_ppi_ppe_tipoPlan_PXE = param_ppi_ppe_tipoPlan_PXE;
    }

    //Limpieza
    public void handleClearTipoPlan_PXE() {
        this.setParam_ppi_ppe_tipoPlan_PXE(null);
    }



    //-----------------------------------------------------------------
    //anoInicio: PXE
    //-----------------------------------------------------------------

    public PeriodoAnual getParam_ppi_ppe_anoInicio_planAccionEstrategica() {
        return param_ppi_ppe_anoInicio_planAccionEstrategica;
    }

    public void setParam_ppi_ppe_anoInicio_planAccionEstrategica(PeriodoAnual param_ppi_ppe_anoInicio_planAccionEstrategica) {
        this.param_ppi_ppe_anoInicio_planAccionEstrategica = param_ppi_ppe_anoInicio_planAccionEstrategica;
    }
    //Limpieza
    public void handleClearAnoInicio_PXE() {
        this.setParam_ppi_ppe_anoInicio_planAccionEstrategica(null);
    }

    /* ############################################################## */
    /* ##############      FIN PXE            ####################### */
    /* ############################################################## */





    /* ############################################################## */
    /* ##############          PAE            ####################### */
    /* ############################################################## */

    //-----------------------------------------------------------------
    //planAnoInicio: PAE
    //-----------------------------------------------------------------

    public PeriodoAnual getParam_ppi_ppe_anoInicio_planAporteEstrategico() {
        return param_ppi_ppe_anoInicio_planAporteEstrategico;
    }

    public void setParam_ppi_ppe_anoInicio_planAporteEstrategico(PeriodoAnual param_ppi_ppe_anoInicio_planAporteEstrategico) {
        this.param_ppi_ppe_anoInicio_planAporteEstrategico = param_ppi_ppe_anoInicio_planAporteEstrategico;
    }
    //Limpieza
    public void handleClearPlanAnoInicio_PAE() {
        this.setParam_ppi_ppe_anoInicio_planAporteEstrategico(null);
    }


    //-----------------------------------------------------------------
    //anoInicio: PAE
    //-----------------------------------------------------------------

    public PeriodoAnual getParam_ppi_ppe_anoInicio_aporteEstrategico() {
        return param_ppi_ppe_anoInicio_aporteEstrategico;
    }

    public void setParam_ppi_ppe_anoInicio_aporteEstrategico(PeriodoAnual param_ppi_ppe_anoInicio_aporteEstrategico) {
        this.param_ppi_ppe_anoInicio_aporteEstrategico = param_ppi_ppe_anoInicio_aporteEstrategico;
    }
    //Limpieza
    public void handleClearAnoInicio_PAE() {
        this.setParam_ppi_ppe_anoInicio_aporteEstrategico(null);
    }



    //-----------------------------------------------------------------
    //anoFinal: PAE
    //-----------------------------------------------------------------

    public PeriodoAnual getParam_ppi_ppe_anoFinal_aporteEstrategico() {
        return param_ppi_ppe_anoFinal_aporteEstrategico;
    }

    public void setParam_ppi_ppe_anoFinal_aporteEstrategico(PeriodoAnual param_ppi_ppe_anoFinal_aporteEstrategico) {
        this.param_ppi_ppe_anoFinal_aporteEstrategico = param_ppi_ppe_anoFinal_aporteEstrategico;
    }
    //Limpieza
    public void handleClearAnoFinal_PAE() {
        this.setParam_ppi_ppe_anoFinal_aporteEstrategico(null);
    }

    //-----------------------------------------------------------------
    //porcentajeMin: PAE
    //-----------------------------------------------------------------
    public String getParam_ppi_ppe_porcentajeMin_aporteEstrategico_metaPoa() {
        return param_ppi_ppe_porcentajeMin_aporteEstrategico_metaPoa;
    }

    public void setParam_ppi_ppe_porcentajeMin_aporteEstrategico_metaPoa(String param_ppi_ppe_porcentajeMin_aporteEstrategico_metaPoa) {
        this.param_ppi_ppe_porcentajeMin_aporteEstrategico_metaPoa = param_ppi_ppe_porcentajeMin_aporteEstrategico_metaPoa;
    }


    
    /* ############################################################## */
    /* ##############      FIN PAE            ####################### */
    /* ############################################################## */




    /* ############################################################## */
    /* ##############          PES            ####################### */
    /* ############################################################## */

    //-----------------------------------------------------------------
    //anoInicio: PES
    //-----------------------------------------------------------------

    public PeriodoAnual getParam_ppi_ppe_planEducacionSuperior_periodoAnualInicial_id() {
        return param_ppi_ppe_anoInicio_aporteEstrategico;
    }

    public void setParam_ppi_ppe_planEducacionSuperior_periodoAnualInicial_id(PeriodoAnual param_ppi_ppe_planEducacionSuperior_periodoAnualInicial_id) {
        this.param_ppi_ppe_planEducacionSuperior_periodoAnualInicial_id = param_ppi_ppe_planEducacionSuperior_periodoAnualInicial_id;
    }
    //Limpieza
    public void handleClearAnoInicio_PES() {
        this.setParam_ppi_ppe_planEducacionSuperior_periodoAnualInicial_id(null);
    }

    //-----------------------------------------------------------------
    //RANGO: PES
    //-----------------------------------------------------------------
    public String getParam_ppi_ppe_planEducacionSuperior_rango() {
        return param_ppi_ppe_planEducacionSuperior_rango;
    }

    public void setParam_ppi_ppe_planEducacionSuperior_rango(String param_ppi_ppe_planEducacionSuperior_rango) {
        this.param_ppi_ppe_planEducacionSuperior_rango = param_ppi_ppe_planEducacionSuperior_rango;
    }

    /* ############################################################## */
    /* ##############      FIN PES            ####################### */
    /* ############################################################## */




    /* ############################################################## */
    /* ##############          PLP            ####################### */
    /* ############################################################## */

    //-----------------------------------------------------------------
    //anoInicio: PLP
    //-----------------------------------------------------------------

    public PeriodoAnual getParam_ppi_ppe_anoInicio_planLargoPlazo() {
        return param_ppi_ppe_anoInicio_planLargoPlazo;
    }

    public void setParam_ppi_ppe_anoInicio_planLargoPlazo(PeriodoAnual param_ppi_ppe_anoInicio_planLargoPlazo) {
        this.param_ppi_ppe_anoInicio_planLargoPlazo = param_ppi_ppe_anoInicio_planLargoPlazo;
    }
    //Limpieza
    public void handleClearAnoInicio_PLP() {
        this.setParam_ppi_ppe_planEducacionSuperior_periodoAnualInicial_id(null);
    }

    //-----------------------------------------------------------------
    //AnnoMas: PLP
    //-----------------------------------------------------------------
    public String getParam_ppi_ppe_periodoAnual_annos_mas() {
        return param_ppi_ppe_periodoAnual_annos_mas;
    }

    public void setParam_ppi_ppe_periodoAnual_annos_mas(String param_ppi_ppe_periodoAnual_annos_mas) {
        this.param_ppi_ppe_periodoAnual_annos_mas = param_ppi_ppe_periodoAnual_annos_mas;
    }


    /* ############################################################## */
    /* ##############      FIN PLP            ####################### */
    /* ############################################################## */





    /* ############################################################## */
    /* ##############      UnidadEjecutora    ####################### */
    /* ############################################################## */

    //-----------------------------------------------------------------
    //UnidadEjecutoraService
    //-----------------------------------------------------------------
    public UnidadEjecutoraService getUnidadEjecutoraService() {
        return unidadEjecutoraService;
    }

    //-----------------------------------------------------------------
    //UnidadEjecutora: autocomplete
    //-----------------------------------------------------------------
    public Page<UnidadEjecutora> completeUnidadVinculacionRectoria(String query, Pageable pageable) {
        return unidadEjecutoraService.findAutocompleteByQuery(query,"codigo", pageable);
    }

    //-----------------------------------------------------------------
    //UnidadEjecutora: findAll
    //-----------------------------------------------------------------
    public List<UnidadEjecutora> obtenerListAllUnidadEjecutora() {
        return unidadEjecutoraService.findAll();
    }

    //-----------------------------------------------------------------
    //VinculacionRectoria
    //-----------------------------------------------------------------
    public UnidadEjecutora getParam_ppi_ppe_unidadesEjecutoras_vinculacionRectoria() {
        return param_ppi_ppe_unidadesEjecutoras_vinculacionRectoria;
    }

    public void setParam_ppi_ppe_unidadesEjecutoras_vinculacionRectoria(UnidadEjecutora param_ppi_ppe_unidadesEjecutoras_vinculacionRectoria) {
        this.param_ppi_ppe_unidadesEjecutoras_vinculacionRectoria = param_ppi_ppe_unidadesEjecutoras_vinculacionRectoria;
    }

    //-----------------------------------------------------------------
    //VinculacionRectoria: Nombre
    //-----------------------------------------------------------------
    public String getUnidadEjecutoraVinculacionRectoriaNombre() {
        if(param_ppi_ppe_unidadesEjecutoras_vinculacionRectoria != null)
        unidadEjecutoraVinculacionRectoriaNombre = param_ppi_ppe_unidadesEjecutoras_vinculacionRectoria.getNombre();
        return unidadEjecutoraVinculacionRectoriaNombre;
    }
    public void setUnidadEjecutoraVinculacionRectoriaNombre(String unidadEjecutoraVinculacionRectoriaNombre) {
        this.unidadEjecutoraVinculacionRectoriaNombre = unidadEjecutoraVinculacionRectoriaNombre;
    }

    //Limpieza
    public void handleClearUnidadEjecutoraVinculacionRectoria() {
        this.setParam_ppi_ppe_unidadesEjecutoras_vinculacionRectoria(null);
    }


    //-----------------------------------------------------------------
    //VinculacionPropia
    //-----------------------------------------------------------------
    public String getParam_ppi_ppe_unidadesEjecutoras_vinculacionPropia() {
        return param_ppi_ppe_unidadesEjecutoras_vinculacionPropia;
    }

    public void setParam_ppi_ppe_unidadesEjecutoras_vinculacionPropia(String param_ppi_ppe_unidadesEjecutoras_vinculacionPropia) {
        this.param_ppi_ppe_unidadesEjecutoras_vinculacionPropia = param_ppi_ppe_unidadesEjecutoras_vinculacionPropia;
    }

    public List<UnidadEjecutora> getListaAllUnidadEjecutoraVinculacionPropia() {
        return listaAllUnidadEjecutoraVinculacionPropia;
    }

    public void setListaAllUnidadEjecutoraVinculacionPropia(List<UnidadEjecutora> listaAllUnidadEjecutoraVinculacionPropia) {
        this.listaAllUnidadEjecutoraVinculacionPropia = listaAllUnidadEjecutoraVinculacionPropia;
    }


    public List<UnidadEjecutora> getListaUnidadEjecutoraVinculacionPropiaSelected() {
        return listaUnidadEjecutoraVinculacionPropiaSelected;
    }

    public void setListaUnidadEjecutoraVinculacionPropiaSelected(List<UnidadEjecutora> listaUnidadEjecutoraVinculacionPropiaSelected) {
        this.listaUnidadEjecutoraVinculacionPropiaSelected = listaUnidadEjecutoraVinculacionPropiaSelected;
    }

    public void actualizaParam_ppi_ppe_unidadesEjecutoras_vinculacionPropia(){
        
        // Limpiamos el parametro
        this.param_ppi_ppe_unidadesEjecutoras_vinculacionPropia = "";
        
        // Variable temporal para creación de nuevo valor del parametro
        String tmp ="";

        // Recorremos la lista de seleccionados del componete
        for (UnidadEjecutora ue : this.getListaUnidadEjecutoraVinculacionPropiaSelected()) {
            
            //Concatenamos
            tmp += ue.getId()+",";
        }

        // Asignamos el nuevo valor
        this.param_ppi_ppe_unidadesEjecutoras_vinculacionPropia = tmp.substring(0,tmp.length()-1);

    }


    /* ############################################################## */
    /* ##############  FIN UnidadEjecutora    ####################### */
    /* ############################################################## */





    /* ############################################################## */
    /* ##############   EstadoFormulacionPAE  ####################### */
    /* ############################################################## */

    //-----------------------------------------------------------------
    //EstadoFormulacionPAE
    //-----------------------------------------------------------------

    // Obtener todos los estados de formulación PXE
    public List<EstadoFormulacionPAE> getEstadosFormulacionPAE() {
        return estadoFormulacionPAEService.findAll();
    }

    // Obtener EstadoFormulacionPXEService
    public EstadoFormulacionPAEService getEstadoFormulacionPAEService() {
        return estadoFormulacionPAEService;
    }

    //-----------------------------------------------------------------
    //EstadoFormulacionPAE: Anulado
    //-----------------------------------------------------------------
    public EstadoFormulacionPAE getParam_ppi_ppe_estadoFormulacionPAE_anulado() {
        return param_ppi_ppe_estadoFormulacionPAE_anulado;
    }

    public void setParam_ppi_ppe_estadoFormulacionPAE_anulado(EstadoFormulacionPAE param_ppi_ppe_estadoFormulacionPAE_anulado) {
        this.param_ppi_ppe_estadoFormulacionPAE_anulado = param_ppi_ppe_estadoFormulacionPAE_anulado;
    }

    //-----------------------------------------------------------------
    //EstadoFormulacionPAE: Borrador
    //-----------------------------------------------------------------
    public EstadoFormulacionPAE getParam_ppi_ppe_estadoFormulacionPAE_borrador() {
        return param_ppi_ppe_estadoFormulacionPAE_borrador;
    }

    public void setParam_ppi_ppe_estadoFormulacionPAE_borrador(EstadoFormulacionPAE param_ppi_ppe_estadoFormulacionPAE_borrador) {
        this.param_ppi_ppe_estadoFormulacionPAE_borrador = param_ppi_ppe_estadoFormulacionPAE_borrador;
    }


    //-----------------------------------------------------------------
    //EstadoFormulacionPAE: Completado
    //-----------------------------------------------------------------
    public EstadoFormulacionPAE getParam_ppi_ppe_estadoFormulacionPAE_completado() {
        return param_ppi_ppe_estadoFormulacionPAE_completado;
    }

    public void setParam_ppi_ppe_estadoFormulacionPAE_completado(EstadoFormulacionPAE param_ppi_ppe_estadoFormulacionPAE_completado) {
        this.param_ppi_ppe_estadoFormulacionPAE_completado = param_ppi_ppe_estadoFormulacionPAE_completado;
    }


    //-----------------------------------------------------------------
    //EstadoFormulacionPAE: Ratificado
    //-----------------------------------------------------------------
    public EstadoFormulacionPAE getParam_ppi_ppe_estadoFormulacionPAE_ratificado() {
        return param_ppi_ppe_estadoFormulacionPAE_ratificado;
    }

    public void setParam_ppi_ppe_estadoFormulacionPAE_ratificado(EstadoFormulacionPAE param_ppi_ppe_estadoFormulacionPAE_ratificado) {
        this.param_ppi_ppe_estadoFormulacionPAE_ratificado = param_ppi_ppe_estadoFormulacionPAE_ratificado;
    }

    //-----------------------------------------------------------------
    //EstadoFormulacionPAE: Aprobado
    //-----------------------------------------------------------------
    public EstadoFormulacionPAE getParam_ppi_ppe_estadoFormulacionPAE_aprobado() {
        return param_ppi_ppe_estadoFormulacionPAE_aprobado;
    }

    public void setParam_ppi_ppe_estadoFormulacionPAE_aprobado(EstadoFormulacionPAE param_ppi_ppe_estadoFormulacionPAE_aprobado) {
        this.param_ppi_ppe_estadoFormulacionPAE_aprobado = param_ppi_ppe_estadoFormulacionPAE_aprobado;
    }
    /* ############################################################## */
    /* ############     FIN EstadoFormulacionPAE  ################### */
    /* ############################################################## */




    /* ############################################################## */
    /* ##############   EstadoFormulacionPXE  ####################### */
    /* ############################################################## */

    //-----------------------------------------------------------------
    //EstadoFormulacionPXE
    //-----------------------------------------------------------------

    // Obtener todos los estados de formulación PXE
    public List<EstadoFormulacionPXE> getEstadosFormulacionPXE() {
        return estadoFormulacionPXEService.findAll();
    }

    // Obtener EstadoFormulacionPXEService
    public EstadoFormulacionPXEService getEstadoFormulacionPXEService() {
        return estadoFormulacionPXEService;
    }

    //-----------------------------------------------------------------
    //EstadoFormulacionPXE: Anulado
    //-----------------------------------------------------------------
    public EstadoFormulacionPXE getParam_ppi_ppe_estadoFormulacionPXE_anulado() {
        return param_ppi_ppe_estadoFormulacionPXE_anulado;
    }

    public void setParam_ppi_ppe_estadoFormulacionPXE_anulado(EstadoFormulacionPXE param_ppi_ppe_estadoFormulacionPXE_anulado) {
        this.param_ppi_ppe_estadoFormulacionPXE_anulado = param_ppi_ppe_estadoFormulacionPXE_anulado;
    }

    //-----------------------------------------------------------------
    //EstadoFormulacionPXE: Borrador
    //-----------------------------------------------------------------
    public EstadoFormulacionPXE getParam_ppi_ppe_estadoFormulacionPXE_borrador() {
        return param_ppi_ppe_estadoFormulacionPXE_borrador;
    }

    public void setParam_ppi_ppe_estadoFormulacionPXE_borrador(EstadoFormulacionPXE param_ppi_ppe_estadoFormulacionPXE_borrador) {
        this.param_ppi_ppe_estadoFormulacionPXE_borrador = param_ppi_ppe_estadoFormulacionPXE_borrador;
    }


    //-----------------------------------------------------------------
    //EstadoFormulacionPXE: Completado
    //-----------------------------------------------------------------
    public EstadoFormulacionPXE getParam_ppi_ppe_estadoFormulacionPXE_completado() {
        return param_ppi_ppe_estadoFormulacionPXE_completado;
    }

    public void setParam_ppi_ppe_estadoFormulacionPXE_completado(EstadoFormulacionPXE param_ppi_ppe_estadoFormulacionPXE_completado) {
        this.param_ppi_ppe_estadoFormulacionPXE_completado = param_ppi_ppe_estadoFormulacionPXE_completado;
    }


    //-----------------------------------------------------------------
    //EstadoFormulacionPXE: Ratificado
    //-----------------------------------------------------------------
    public EstadoFormulacionPXE getParam_ppi_ppe_estadoFormulacionPXE_ratificado() {
        return param_ppi_ppe_estadoFormulacionPXE_ratificado;
    }

    public void setParam_ppi_ppe_estadoFormulacionPXE_ratificado(EstadoFormulacionPXE param_ppi_ppe_estadoFormulacionPXE_ratificado) {
        this.param_ppi_ppe_estadoFormulacionPXE_ratificado = param_ppi_ppe_estadoFormulacionPXE_ratificado;
    }

    //-----------------------------------------------------------------
    //EstadoFormulacionPXE: Aprobado
    //-----------------------------------------------------------------
    public EstadoFormulacionPXE getParam_ppi_ppe_estadoFormulacionPXE_aprobado() {
        return param_ppi_ppe_estadoFormulacionPXE_aprobado;
    }

    public void setParam_ppi_ppe_estadoFormulacionPXE_aprobado(EstadoFormulacionPXE param_ppi_ppe_estadoFormulacionPXE_aprobado) {
        this.param_ppi_ppe_estadoFormulacionPXE_aprobado = param_ppi_ppe_estadoFormulacionPXE_aprobado;
    }
    /* ############################################################## */
    /* ##############   EstadoFormulacionPXE  ####################### */
    /* ############################################################## */






    /******************************************************************/
    /******************************************************************/
    /********************* FIN MÉTODOS      ***************************/
    /******************************************************************/
    /******************************************************************/




}
/**********************************************************************/
/**********************************************************************/
/**********************************************************************/
/**********************************************************************/
/**********************************************************************/

parametrosPPEEditForm.xhtml

/*
 * Copyright (c) 2022.
 *
 * Centro de Gestion Informatica
 * Direccion de Tecnologias de la Informacion y Comunicacion
 * Universidad Nacional - Costa Rica
 * http://www.una.ac.cr
 *
 */

/**********************************************************************/
/**********************************************************************/
/*********************       PACKAGE     ******************************/
/**********************************************************************/
/**********************************************************************/
package cr.ac.una.cgi.sigesa.ppi.ppe.view.model;


/**********************************************************************/
/**********************************************************************/
/*********************       IMPORT'S    ******************************/
/**********************************************************************/
/**********************************************************************/


/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
/*+++++++++++++              SPRING         ++++++++++++++++++++++++++*/
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Component;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.data.domain.PageImpl;




/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
/*+++++++++++++             SDK-UNA         ++++++++++++++++++++++++++*/
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
import cr.ac.una.cgi.sdkuna.domain.Parametro;
import cr.ac.una.cgi.sdkuna.service.ParametroService;
import cr.ac.una.cgi.sdkuna.view.commons.CRUD;
import cr.ac.una.cgi.sdkuna.view.commons.CRUDImpl;





/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
/*+++++++++++++           GENERALES         ++++++++++++++++++++++++++*/
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
import java.io.Serializable;
import java.util.List;
import java.util.ArrayList;

/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
/*+++++++++++++          PARAMETROS         ++++++++++++++++++++++++++*/
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/

//-----------------------------------------------------------------
//EstadoFormulacionPAE
//-----------------------------------------------------------------
import cr.ac.una.cgi.sigesa.ppi.ppe.domain.EstadoFormulacionPAE;
import cr.ac.una.cgi.sigesa.ppi.ppe.service.EstadoFormulacionPAEService;


//-----------------------------------------------------------------
//EstadoFormulacionPXE
//-----------------------------------------------------------------
import cr.ac.una.cgi.sigesa.ppi.ppe.domain.EstadoFormulacionPXE;
import cr.ac.una.cgi.sigesa.ppi.ppe.service.EstadoFormulacionPXEService;



//-----------------------------------------------------------------
//TipoPlan PXE
//-----------------------------------------------------------------
import cr.ac.una.cgi.sigesa.ppi.ppo.domain.TipoPlan;
import cr.ac.una.cgi.sigesa.ppi.ppo.service.TipoPlanService;

//-----------------------------------------------------------------
//PeriodoAnual
//-----------------------------------------------------------------
import cr.ac.una.cgi.sigesa.epf.cpr.domain.PeriodoAnual;
import cr.ac.una.cgi.sigesa.epf.cpr.service.PeriodoAnualService;

//-----------------------------------------------------------------
//UnidadEjecutora
//-----------------------------------------------------------------
import cr.ac.una.cgi.sigesa.epf.cpr.domain.UnidadEjecutora;
import cr.ac.una.cgi.sigesa.epf.cpr.service.UnidadEjecutoraService;


//-----------------------------------------------------------------
//Variables para manejo de params
//-----------------------------------------------------------------
import java.util.HashMap;
import java.util.Map;

//-----------------------------------------------------------------
//TipoDocumento
//-----------------------------------------------------------------
import cr.ac.una.cgi.sdkuna.domain.Sistema;
import cr.ac.una.cgi.sdkuna.service.SistemaService;
import cr.ac.una.cgi.sdkuna.domain.Modulo;
import cr.ac.una.cgi.sdkuna.service.ModuloService;
import cr.ac.una.cgi.sigesa.epf.cge.domain.TipoDocumento;
import cr.ac.una.cgi.sigesa.epf.cge.service.TipoDocumentoService;




/**********************************************************************/
/**********************************************************************/
/*********************    DOCUMENTACIÓN  ******************************/
/**********************************************************************/
/**********************************************************************/
/**
 * Bean para la administración de la página parametrosPPEEditForm.xhtml
 *
 * @author Gustavo Matamoros González
 * @fechaCreacion: 15/11/2022
 * @fechaModificacion: 15/11/2022
 * @Version: 1.0.0
 * @modulo: PPI-PPE
 * @issue: PPI-248
 */

/**********************************************************************/
/**********************************************************************/
/*********************    CONFIGURACIÓN  ******************************/
/**********************************************************************/
/**********************************************************************/
@Component
@Scope("session")

/**********************************************************************/
/**********************************************************************/
/****************** DEFINICIÓN DE CLASE  ******************************/
/**********************************************************************/
/**********************************************************************/
public class ParametrosPPEBean extends CRUDImpl<Parametro, ParametroService> implements CRUD, Serializable{
    






    
    /******************************************************************/
    /******************************************************************/
    /*********************     AUTOWIRED    ***************************/
    /******************************************************************/
    /******************************************************************/

    //-----------------------------------------------------------------
    //EstadoFormulacionPAE
    //-----------------------------------------------------------------
    @Autowired
    private EstadoFormulacionPAEService estadoFormulacionPAEService;


    //-----------------------------------------------------------------
    //EstadoFormulacionPXE
    //-----------------------------------------------------------------
    @Autowired
    private EstadoFormulacionPXEService estadoFormulacionPXEService;

    //-----------------------------------------------------------------
    //TipoPlan PXE
    //-----------------------------------------------------------------
    @Autowired
    private TipoPlanService tipoPlanService;


    //-----------------------------------------------------------------
    //PeriodoAnual
    //-----------------------------------------------------------------
    @Autowired
    private PeriodoAnualService periodoAnualService;



    //-----------------------------------------------------------------
    //TipoDocumento
    //-----------------------------------------------------------------

    @Autowired
    ModuloService moduloService;

    @Autowired
    TipoDocumentoService tipoDocumentoService;

    //-----------------------------------------------------------------
    //UnidadEjecutora
    //-----------------------------------------------------------------
    @Autowired
    private UnidadEjecutoraService unidadEjecutoraService;


    /******************************************************************/
    /******************************************************************/
    /********************* FIN AUTOWIRED    ***************************/
    /******************************************************************/
    /******************************************************************/







    /******************************************************************/
    /******************************************************************/
    /*********************     VARIABLES    ***************************/
    /******************************************************************/
    /******************************************************************/

    //-----------------------------------------------------------------
    //Variables para manejo de params
    //-----------------------------------------------------------------
    private Map<String, Object> beanParams = new HashMap();


    


    /* ############################################################## */
    /* ##############           PXE           ####################### */
    /* ############################################################## */
    //-----------------------------------------------------------------
    //EstadoFormulacionPXE
    //-----------------------------------------------------------------
    private EstadoFormulacionPXE param_ppi_ppe_estadoFormulacionPXE_anulado;
    private EstadoFormulacionPXE param_ppi_ppe_estadoFormulacionPXE_borrador;
    private EstadoFormulacionPXE param_ppi_ppe_estadoFormulacionPXE_completado;
    private EstadoFormulacionPXE param_ppi_ppe_estadoFormulacionPXE_ratificado;
    private EstadoFormulacionPXE param_ppi_ppe_estadoFormulacionPXE_aprobado;


    //-----------------------------------------------------------------
    //TipoPlan PXE
    //-----------------------------------------------------------------
    private TipoPlan param_ppi_ppe_tipoPlan_PXE;


    //-----------------------------------------------------------------
    //anoInicio PXE
    //-----------------------------------------------------------------
    private PeriodoAnual param_ppi_ppe_anoInicio_planAccionEstrategica;

    /* ############################################################## */
    /* ##############       FIN PXE           ####################### */
    /* ############################################################## */



    /* ############################################################## */
    /* ##############           PAE           ####################### */
    /* ############################################################## */

    //-----------------------------------------------------------------
    //EstadoFormulacionPAE
    //-----------------------------------------------------------------
    private EstadoFormulacionPAE param_ppi_ppe_estadoFormulacionPAE_anulado;
    private EstadoFormulacionPAE param_ppi_ppe_estadoFormulacionPAE_borrador;
    private EstadoFormulacionPAE param_ppi_ppe_estadoFormulacionPAE_completado;
    private EstadoFormulacionPAE param_ppi_ppe_estadoFormulacionPAE_ratificado;
    private EstadoFormulacionPAE param_ppi_ppe_estadoFormulacionPAE_aprobado;


    //-----------------------------------------------------------------
    //anoInicio PAE
    //-----------------------------------------------------------------
    private PeriodoAnual param_ppi_ppe_anoInicio_planAporteEstrategico;
    private PeriodoAnual param_ppi_ppe_anoInicio_aporteEstrategico;


    //-----------------------------------------------------------------
    //anoFinal PAE
    //-----------------------------------------------------------------
    private PeriodoAnual param_ppi_ppe_anoFinal_aporteEstrategico;

    //-----------------------------------------------------------------
    //porcentajeMin PAE
    //-----------------------------------------------------------------
    private String param_ppi_ppe_porcentajeMin_aporteEstrategico_metaPoa; 

    /* ############################################################## */
    /* ##############       FIN PAE           ####################### */
    /* ############################################################## */


    /* ############################################################## */
    /* ##############           PES           ####################### */
    /* ############################################################## */

    //-----------------------------------------------------------------
    //anoInicio PES
    //-----------------------------------------------------------------
    private PeriodoAnual param_ppi_ppe_planEducacionSuperior_periodoAnualInicial_id;

    //-----------------------------------------------------------------
    //RANGO PES
    //-----------------------------------------------------------------
    private String param_ppi_ppe_planEducacionSuperior_rango; 

    
    /* ############################################################## */
    /* ##############        FIN PES          ####################### */
    /* ############################################################## */


    /* ############################################################## */
    /* ##############           PLP           ####################### */
    /* ############################################################## */
    //-----------------------------------------------------------------
    //anoInicio PES
    //-----------------------------------------------------------------
    private PeriodoAnual param_ppi_ppe_anoInicio_planLargoPlazo;


    //-----------------------------------------------------------------
    //annnoMas PES
    //-----------------------------------------------------------------
    private String param_ppi_ppe_periodoAnual_annos_mas; 

    /* ############################################################## */
    /* ##############       FIN PLP           ####################### */
    /* ############################################################## */



    
    /* ############################################################## */
    /* ##############      TipoDocumento      ####################### */
    /* ############################################################## */

    //-----------------------------------------------------------------
    // Sistema
    //-----------------------------------------------------------------
    private Sistema sistemaSelected;

    //-----------------------------------------------------------------
    // Módulo
    //-----------------------------------------------------------------
    private Modulo param_ppi_ppe_modulo_id;

    //-----------------------------------------------------------------
    //TipoDocumento
    //-----------------------------------------------------------------
    private TipoDocumento param_ppi_ppe_tipoDocumento_planEducacionSuperior;
    private TipoDocumento param_ppi_ppe_tipoDocumento_planDesarrolloSostenible;
    private TipoDocumento param_ppi_ppe_tipoDocumento_planAccionEstrategica;
    private TipoDocumento param_ppi_ppe_tipoDocumento_planAporteEstrategico;
    private TipoDocumento param_ppi_ppe_tipoDocumento_planLargoPlazo;
    private TipoDocumento param_ppi_ppe_tipoDocumento_planLineaEstrategica;


    /* ############################################################## */
    /* ##############  FIN TipoDocumento      ####################### */
    /* ############################################################## */




    /* ############################################################## */
    /* ##############      UnidadEjecutora    ####################### */
    /* ############################################################## */

    //-----------------------------------------------------------------
    // VinculacionRectoria
    //-----------------------------------------------------------------
    private UnidadEjecutora param_ppi_ppe_unidadesEjecutoras_vinculacionRectoria;
    private String unidadEjecutoraVinculacionRectoriaNombre;

    //-----------------------------------------------------------------
    // VinculacionPropia
    //-----------------------------------------------------------------
    private String param_ppi_ppe_unidadesEjecutoras_vinculacionPropia;
    private String[] listaStringTMPUnidadEjecutoraSeleccionadas;



    // almacena todas las Unidades Ejecutoras
    private List<UnidadEjecutora> listaAllUnidadEjecutoraVinculacionPropia;

    // Almacena las Unidades Ejecutoras seleccionadas
    private List<UnidadEjecutora> listaUnidadEjecutoraVinculacionPropiaSelected;


    /* ############################################################## */
    /* ##############  FIN UnidadEjecutora    ####################### */
    /* ############################################################## */


    /******************************************************************/
    /******************************************************************/
    /********************* FIN VARIABLES    ***************************/
    /******************************************************************/
    /******************************************************************/

    
    

    


    /******************************************************************/
    /******************************************************************/
    /*********************     MÉTODOS      ***************************/
    /******************************************************************/
    /******************************************************************/

    /* ############################################################## */
    /* ##############         init            ####################### */
    /* ############################################################## */
        
        public void init() {
            //Es la primera vez que ingresa
            if (!isPostBack()) {
                
                // obtenga el sistema
                if (param_ppi_ppe_modulo_id != null) {
                    sistemaSelected = param_ppi_ppe_modulo_id.getSistema();
                }

                
                
            }
        }

    /* ############################################################## */
    /* ##############     FIN init            ####################### */
    /* ############################################################## */


    /* ############################################################## */
    /* ##############      initProperties     ####################### */
    /* ############################################################## */
    
    // Par manejo de parametros para LOV
    public void initProperties() {
        if (!isPostBack()) {

            // parametro activo = try
            beanParams.put("activo", true);

        }

    }

    //-----------------------------------------------------------------
    //Variables para manejo de params
    //-----------------------------------------------------------------
    public Map<String, Object> getBeanParams() {
        return beanParams;
    }

    public void setBeanParams(Map<String, Object> beanParams) {
        this.beanParams = beanParams;
    }

    /* ############################################################## */
    /* ##############  FIN initProperties     ####################### */
    /* ############################################################## */



    /* ############################################################## */
    /* ##############      initDetails        ####################### */
    /* ############################################################## */
    public void initDetails() {
        if (!isPostBack()) {
            
            // Obtenemos todas las UE
            this.setListaAllUnidadEjecutoraVinculacionPropia(this.obtenerListAllUnidadEjecutora());
            
            // Creamos una lista vacia para luego almacenar las UE selecionadas 
            this.setListaUnidadEjecutoraVinculacionPropiaSelected(new ArrayList());

            
            // Si el parametro no esta vacio
             if ( 
                (param_ppi_ppe_unidadesEjecutoras_vinculacionPropia != null) || 
                (!param_ppi_ppe_unidadesEjecutoras_vinculacionPropia.equals("")) 
                ) {

                // Creamos un array de id de UE, según parametro
                listaStringTMPUnidadEjecutoraSeleccionadas = param_ppi_ppe_unidadesEjecutoras_vinculacionPropia.split(",");

                // Recorremos el array obteniendo la UE, según ID 
                for (int i=0;i< listaStringTMPUnidadEjecutoraSeleccionadas.length;i++) {

                    // Almacenamos el objeto obtenido en la lista de seleccionados
                    listaUnidadEjecutoraVinculacionPropiaSelected.add(unidadEjecutoraService.findOne(Long.parseLong(listaStringTMPUnidadEjecutoraSeleccionadas[i])));
                }
            }
        }
    }
    /* ############################################################## */
    /* ##############  FIN initDetails        ####################### */
    /* ############################################################## */






    /* ############################################################## */
    /* ##############      TipoDocumento      ####################### */
    /* ############################################################## */

    //-----------------------------------------------------------------
    //Sistema
    //-----------------------------------------------------------------

    // Variable: sistemaSelected
    public Sistema getSistemaSelected() {
        return sistemaSelected;
    }

    // Variable: sistemaSelected
    public void setSistemaSelected(Sistema sistemaSelected) {
        this.sistemaSelected = sistemaSelected;
    }

    // Limpeza Sistema
    public void handleClearSistema() {
        this.setSistemaSelected(null);
        handleClearModulo();
    }


    //-----------------------------------------------------------------
    //Módulo
    //-----------------------------------------------------------------
    
    //Servicio
    public ModuloService getModuloService() {
        return moduloService;
    }

    //Servicio
    public void setModuloService(ModuloService moduloService) {
        this.moduloService = moduloService;
    }

    //variable: getParam_ppi_ppe_modulo_id
    public Modulo getParam_ppi_ppe_modulo_id() {
        return param_ppi_ppe_modulo_id;
    }

    //variable: setParam_ppi_ppe_modulo_id
    public void setParam_ppi_ppe_modulo_id(Modulo param_ppi_ppe_modulo_id) {
        this.param_ppi_ppe_modulo_id = param_ppi_ppe_modulo_id;
    }

    // Limpieza de módulo
    public void handleClearModulo() {
        this.setParam_ppi_ppe_modulo_id(null);
    }

    // Autocomplete: módulo
    public Page<Modulo> completeModulo(String query, Pageable pageable) {
        return moduloService.findBySistemaOrderBySequenciaAsc(query, sistemaSelected, pageable);
    }

    //-----------------------------------------------------------------
    //TipoDocumentoService
    //-----------------------------------------------------------------
    public TipoDocumentoService getTipoDocumentoService() {
        return tipoDocumentoService;
    }

    public void setTipoDocumentoService(TipoDocumentoService tipoDocumentoService) {
        this.tipoDocumentoService = tipoDocumentoService;
    }

    //-----------------------------------------------------------------
    //TipoDocumento: planEducacionSuperior
    //-----------------------------------------------------------------
    public TipoDocumento getParam_ppi_ppe_tipoDocumento_planEducacionSuperior() {
        return param_ppi_ppe_tipoDocumento_planEducacionSuperior;
    }

    public void setParam_ppi_ppe_tipoDocumento_planEducacionSuperior(TipoDocumento param_ppi_ppe_tipoDocumento_planEducacionSuperior) {
        this.param_ppi_ppe_tipoDocumento_planEducacionSuperior = param_ppi_ppe_tipoDocumento_planEducacionSuperior;
    }

    //Limpieza
    public void handleClearTipoDocumentoPlanEducacionSuperior() {
        this.setParam_ppi_ppe_tipoDocumento_planEducacionSuperior(null);
    }

    //-----------------------------------------------------------------
    //TipoDocumento: planDesarrolloSostenible
    //-----------------------------------------------------------------
    public TipoDocumento getParam_ppi_ppe_tipoDocumento_planDesarrolloSostenible() {
        return param_ppi_ppe_tipoDocumento_planDesarrolloSostenible;
    }

    public void setParam_ppi_ppe_tipoDocumento_planDesarrolloSostenible(TipoDocumento param_ppi_ppe_tipoDocumento_planDesarrolloSostenible) {
        this.param_ppi_ppe_tipoDocumento_planDesarrolloSostenible = param_ppi_ppe_tipoDocumento_planDesarrolloSostenible;
    }

    //Limpieza
    public void handleClearTipoDocumentoPlanDesarrolloSostenible() {
        this.setParam_ppi_ppe_tipoDocumento_planDesarrolloSostenible(null);
    }

    //-----------------------------------------------------------------
    //TipoDocumento: planAccionEstrategica
    //-----------------------------------------------------------------
    public TipoDocumento getParam_ppi_ppe_tipoDocumento_planAccionEstrategica() {
        return param_ppi_ppe_tipoDocumento_planAccionEstrategica;
    }

    public void setParam_ppi_ppe_tipoDocumento_planAccionEstrategica(TipoDocumento param_ppi_ppe_tipoDocumento_planAccionEstrategica) {
        this.param_ppi_ppe_tipoDocumento_planAccionEstrategica = param_ppi_ppe_tipoDocumento_planAccionEstrategica;
    }

    //Limpieza
    public void handleClearTipoDocumentoPlanAccionEstrategica() {
        this.setParam_ppi_ppe_tipoDocumento_planAccionEstrategica(null);
    }

    //-----------------------------------------------------------------
    //TipoDocumento: planAporteEstrategico
    //-----------------------------------------------------------------
    public TipoDocumento getParam_ppi_ppe_tipoDocumento_planAporteEstrategico() {
        return param_ppi_ppe_tipoDocumento_planAporteEstrategico;
    }

    public void setParam_ppi_ppe_tipoDocumento_planAporteEstrategico(TipoDocumento param_ppi_ppe_tipoDocumento_planAporteEstrategico) {
        this.param_ppi_ppe_tipoDocumento_planAporteEstrategico = param_ppi_ppe_tipoDocumento_planAporteEstrategico;
    }

    //Limpieza
    public void handleClearTipoDocumentoPlanAporteEstrategico() {
        this.setParam_ppi_ppe_tipoDocumento_planAporteEstrategico(null);
    }

    //-----------------------------------------------------------------
    //TipoDocumento: planLargoPlazo
    //-----------------------------------------------------------------
    public TipoDocumento getParam_ppi_ppe_tipoDocumento_planLargoPlazo() {
        return param_ppi_ppe_tipoDocumento_planLargoPlazo;
    }

    public void setParam_ppi_ppe_tipoDocumento_planLargoPlazo(TipoDocumento param_ppi_ppe_tipoDocumento_planLargoPlazo) {
        this.param_ppi_ppe_tipoDocumento_planLargoPlazo = param_ppi_ppe_tipoDocumento_planLargoPlazo;
    }

    //Limpieza
    public void handleClearTipoDocumentoPlanLargoPlazo() {
        this.setParam_ppi_ppe_tipoDocumento_planLargoPlazo(null);
    }


    //-----------------------------------------------------------------
    //TipoDocumento: planLineaEstrategica
    //-----------------------------------------------------------------
    public TipoDocumento getParam_ppi_ppe_tipoDocumento_planLineaEstrategica() {
        return param_ppi_ppe_tipoDocumento_planLineaEstrategica;
    }

    public void setParam_ppi_ppe_tipoDocumento_planLineaEstrategica(TipoDocumento param_ppi_ppe_tipoDocumento_planLineaEstrategica) {
        this.param_ppi_ppe_tipoDocumento_planLineaEstrategica = param_ppi_ppe_tipoDocumento_planLineaEstrategica;
    }

    //Limpieza
    public void handleClearTipoDocumentoPlanLineaEstrategica() {
        this.setParam_ppi_ppe_tipoDocumento_planLineaEstrategica(null);
    }

    /* ############################################################## */
    /* ##############  FIN TipoDocumento      ####################### */
    /* ############################################################## */


    /* ############################################################## */
    /* ##############    PeriodoAnual         ####################### */
    /* ############################################################## */
    //-----------------------------------------------------------------
    //Periodo Anual
    //-----------------------------------------------------------------

    public PeriodoAnualService getPeriodoAnualService() {
        return periodoAnualService;
    }

    public void setPeriodoAnualService(PeriodoAnualService periodoAnualService) {
        this.periodoAnualService = periodoAnualService;
    }

    // Obtener los periodos Anuales
    public Page<PeriodoAnual> obtenerPagePeriodosAnuales(String query, Pageable pageable) {
        return periodoAnualService.findAllOrderByAnoDesc(query,pageable);
       
    }

    /* ############################################################## */
    /* ##############   FIN PeriodoAnual      ####################### */
    /* ############################################################## */


    /* ############################################################## */
    /* ##############          PXE            ####################### */
    /* ############################################################## */

    //-----------------------------------------------------------------
    //TipoPlan: PXE
    //-----------------------------------------------------------------

    public TipoPlanService getTipoPlanService() {
        return tipoPlanService;
    }

    public void setTipoPlanService(TipoPlanService tipoPlanService) {
        this.tipoPlanService = tipoPlanService;
    }


    public TipoPlan getParam_ppi_ppe_tipoPlan_PXE() {
        return param_ppi_ppe_tipoPlan_PXE;
    }

    public void setParam_ppi_ppe_tipoPlan_PXE(TipoPlan param_ppi_ppe_tipoPlan_PXE) {
        this.param_ppi_ppe_tipoPlan_PXE = param_ppi_ppe_tipoPlan_PXE;
    }

    //Limpieza
    public void handleClearTipoPlan_PXE() {
        this.setParam_ppi_ppe_tipoPlan_PXE(null);
    }



    //-----------------------------------------------------------------
    //anoInicio: PXE
    //-----------------------------------------------------------------

    public PeriodoAnual getParam_ppi_ppe_anoInicio_planAccionEstrategica() {
        return param_ppi_ppe_anoInicio_planAccionEstrategica;
    }

    public void setParam_ppi_ppe_anoInicio_planAccionEstrategica(PeriodoAnual param_ppi_ppe_anoInicio_planAccionEstrategica) {
        this.param_ppi_ppe_anoInicio_planAccionEstrategica = param_ppi_ppe_anoInicio_planAccionEstrategica;
    }
    //Limpieza
    public void handleClearAnoInicio_PXE() {
        this.setParam_ppi_ppe_anoInicio_planAccionEstrategica(null);
    }

    /* ############################################################## */
    /* ##############      FIN PXE            ####################### */
    /* ############################################################## */





    /* ############################################################## */
    /* ##############          PAE            ####################### */
    /* ############################################################## */

    //-----------------------------------------------------------------
    //planAnoInicio: PAE
    //-----------------------------------------------------------------

    public PeriodoAnual getParam_ppi_ppe_anoInicio_planAporteEstrategico() {
        return param_ppi_ppe_anoInicio_planAporteEstrategico;
    }

    public void setParam_ppi_ppe_anoInicio_planAporteEstrategico(PeriodoAnual param_ppi_ppe_anoInicio_planAporteEstrategico) {
        this.param_ppi_ppe_anoInicio_planAporteEstrategico = param_ppi_ppe_anoInicio_planAporteEstrategico;
    }
    //Limpieza
    public void handleClearPlanAnoInicio_PAE() {
        this.setParam_ppi_ppe_anoInicio_planAporteEstrategico(null);
    }


    //-----------------------------------------------------------------
    //anoInicio: PAE
    //-----------------------------------------------------------------

    public PeriodoAnual getParam_ppi_ppe_anoInicio_aporteEstrategico() {
        return param_ppi_ppe_anoInicio_aporteEstrategico;
    }

    public void setParam_ppi_ppe_anoInicio_aporteEstrategico(PeriodoAnual param_ppi_ppe_anoInicio_aporteEstrategico) {
        this.param_ppi_ppe_anoInicio_aporteEstrategico = param_ppi_ppe_anoInicio_aporteEstrategico;
    }
    //Limpieza
    public void handleClearAnoInicio_PAE() {
        this.setParam_ppi_ppe_anoInicio_aporteEstrategico(null);
    }



    //-----------------------------------------------------------------
    //anoFinal: PAE
    //-----------------------------------------------------------------

    public PeriodoAnual getParam_ppi_ppe_anoFinal_aporteEstrategico() {
        return param_ppi_ppe_anoFinal_aporteEstrategico;
    }

    public void setParam_ppi_ppe_anoFinal_aporteEstrategico(PeriodoAnual param_ppi_ppe_anoFinal_aporteEstrategico) {
        this.param_ppi_ppe_anoFinal_aporteEstrategico = param_ppi_ppe_anoFinal_aporteEstrategico;
    }
    //Limpieza
    public void handleClearAnoFinal_PAE() {
        this.setParam_ppi_ppe_anoFinal_aporteEstrategico(null);
    }

    //-----------------------------------------------------------------
    //porcentajeMin: PAE
    //-----------------------------------------------------------------
    public String getParam_ppi_ppe_porcentajeMin_aporteEstrategico_metaPoa() {
        return param_ppi_ppe_porcentajeMin_aporteEstrategico_metaPoa;
    }

    public void setParam_ppi_ppe_porcentajeMin_aporteEstrategico_metaPoa(String param_ppi_ppe_porcentajeMin_aporteEstrategico_metaPoa) {
        this.param_ppi_ppe_porcentajeMin_aporteEstrategico_metaPoa = param_ppi_ppe_porcentajeMin_aporteEstrategico_metaPoa;
    }


    
    /* ############################################################## */
    /* ##############      FIN PAE            ####################### */
    /* ############################################################## */




    /* ############################################################## */
    /* ##############          PES            ####################### */
    /* ############################################################## */

    //-----------------------------------------------------------------
    //anoInicio: PES
    //-----------------------------------------------------------------

    public PeriodoAnual getParam_ppi_ppe_planEducacionSuperior_periodoAnualInicial_id() {
        return param_ppi_ppe_anoInicio_aporteEstrategico;
    }

    public void setParam_ppi_ppe_planEducacionSuperior_periodoAnualInicial_id(PeriodoAnual param_ppi_ppe_planEducacionSuperior_periodoAnualInicial_id) {
        this.param_ppi_ppe_planEducacionSuperior_periodoAnualInicial_id = param_ppi_ppe_planEducacionSuperior_periodoAnualInicial_id;
    }
    //Limpieza
    public void handleClearAnoInicio_PES() {
        this.setParam_ppi_ppe_planEducacionSuperior_periodoAnualInicial_id(null);
    }

    //-----------------------------------------------------------------
    //RANGO: PES
    //-----------------------------------------------------------------
    public String getParam_ppi_ppe_planEducacionSuperior_rango() {
        return param_ppi_ppe_planEducacionSuperior_rango;
    }

    public void setParam_ppi_ppe_planEducacionSuperior_rango(String param_ppi_ppe_planEducacionSuperior_rango) {
        this.param_ppi_ppe_planEducacionSuperior_rango = param_ppi_ppe_planEducacionSuperior_rango;
    }

    /* ############################################################## */
    /* ##############      FIN PES            ####################### */
    /* ############################################################## */




    /* ############################################################## */
    /* ##############          PLP            ####################### */
    /* ############################################################## */

    //-----------------------------------------------------------------
    //anoInicio: PLP
    //-----------------------------------------------------------------

    public PeriodoAnual getParam_ppi_ppe_anoInicio_planLargoPlazo() {
        return param_ppi_ppe_anoInicio_planLargoPlazo;
    }

    public void setParam_ppi_ppe_anoInicio_planLargoPlazo(PeriodoAnual param_ppi_ppe_anoInicio_planLargoPlazo) {
        this.param_ppi_ppe_anoInicio_planLargoPlazo = param_ppi_ppe_anoInicio_planLargoPlazo;
    }
    //Limpieza
    public void handleClearAnoInicio_PLP() {
        this.setParam_ppi_ppe_planEducacionSuperior_periodoAnualInicial_id(null);
    }

    //-----------------------------------------------------------------
    //AnnoMas: PLP
    //-----------------------------------------------------------------
    public String getParam_ppi_ppe_periodoAnual_annos_mas() {
        return param_ppi_ppe_periodoAnual_annos_mas;
    }

    public void setParam_ppi_ppe_periodoAnual_annos_mas(String param_ppi_ppe_periodoAnual_annos_mas) {
        this.param_ppi_ppe_periodoAnual_annos_mas = param_ppi_ppe_periodoAnual_annos_mas;
    }


    /* ############################################################## */
    /* ##############      FIN PLP            ####################### */
    /* ############################################################## */





    /* ############################################################## */
    /* ##############      UnidadEjecutora    ####################### */
    /* ############################################################## */

    //-----------------------------------------------------------------
    //UnidadEjecutoraService
    //-----------------------------------------------------------------
    public UnidadEjecutoraService getUnidadEjecutoraService() {
        return unidadEjecutoraService;
    }

    //-----------------------------------------------------------------
    //UnidadEjecutora: autocomplete
    //-----------------------------------------------------------------
    public Page<UnidadEjecutora> completeUnidadVinculacionRectoria(String query, Pageable pageable) {
        return unidadEjecutoraService.findAutocompleteByQuery(query,"codigo", pageable);
    }

    //-----------------------------------------------------------------
    //UnidadEjecutora: findAll
    //-----------------------------------------------------------------
    public List<UnidadEjecutora> obtenerListAllUnidadEjecutora() {
        return unidadEjecutoraService.findAll();
    }

    //-----------------------------------------------------------------
    //VinculacionRectoria
    //-----------------------------------------------------------------
    public UnidadEjecutora getParam_ppi_ppe_unidadesEjecutoras_vinculacionRectoria() {
        return param_ppi_ppe_unidadesEjecutoras_vinculacionRectoria;
    }

    public void setParam_ppi_ppe_unidadesEjecutoras_vinculacionRectoria(UnidadEjecutora param_ppi_ppe_unidadesEjecutoras_vinculacionRectoria) {
        this.param_ppi_ppe_unidadesEjecutoras_vinculacionRectoria = param_ppi_ppe_unidadesEjecutoras_vinculacionRectoria;
    }

    //-----------------------------------------------------------------
    //VinculacionRectoria: Nombre
    //-----------------------------------------------------------------
    public String getUnidadEjecutoraVinculacionRectoriaNombre() {
        if(param_ppi_ppe_unidadesEjecutoras_vinculacionRectoria != null)
        unidadEjecutoraVinculacionRectoriaNombre = param_ppi_ppe_unidadesEjecutoras_vinculacionRectoria.getNombre();
        return unidadEjecutoraVinculacionRectoriaNombre;
    }
    public void setUnidadEjecutoraVinculacionRectoriaNombre(String unidadEjecutoraVinculacionRectoriaNombre) {
        this.unidadEjecutoraVinculacionRectoriaNombre = unidadEjecutoraVinculacionRectoriaNombre;
    }

    //Limpieza
    public void handleClearUnidadEjecutoraVinculacionRectoria() {
        this.setParam_ppi_ppe_unidadesEjecutoras_vinculacionRectoria(null);
    }


    //-----------------------------------------------------------------
    //VinculacionPropia
    //-----------------------------------------------------------------
    public String getParam_ppi_ppe_unidadesEjecutoras_vinculacionPropia() {
        return param_ppi_ppe_unidadesEjecutoras_vinculacionPropia;
    }

    public void setParam_ppi_ppe_unidadesEjecutoras_vinculacionPropia(String param_ppi_ppe_unidadesEjecutoras_vinculacionPropia) {
        this.param_ppi_ppe_unidadesEjecutoras_vinculacionPropia = param_ppi_ppe_unidadesEjecutoras_vinculacionPropia;
    }

    public List<UnidadEjecutora> getListaAllUnidadEjecutoraVinculacionPropia() {
        return listaAllUnidadEjecutoraVinculacionPropia;
    }

    public void setListaAllUnidadEjecutoraVinculacionPropia(List<UnidadEjecutora> listaAllUnidadEjecutoraVinculacionPropia) {
        this.listaAllUnidadEjecutoraVinculacionPropia = listaAllUnidadEjecutoraVinculacionPropia;
    }


    public List<UnidadEjecutora> getListaUnidadEjecutoraVinculacionPropiaSelected() {
        return listaUnidadEjecutoraVinculacionPropiaSelected;
    }

    public void setListaUnidadEjecutoraVinculacionPropiaSelected(List<UnidadEjecutora> listaUnidadEjecutoraVinculacionPropiaSelected) {
        this.listaUnidadEjecutoraVinculacionPropiaSelected = listaUnidadEjecutoraVinculacionPropiaSelected;
    }

    public void actualizaParam_ppi_ppe_unidadesEjecutoras_vinculacionPropia(){
        
        // Limpiamos el parametro
        this.param_ppi_ppe_unidadesEjecutoras_vinculacionPropia = "";
        
        // Variable temporal para creación de nuevo valor del parametro
        String tmp ="";

        // Recorremos la lista de seleccionados del componete
        for (UnidadEjecutora ue : this.getListaUnidadEjecutoraVinculacionPropiaSelected()) {
            
            //Concatenamos
            tmp += ue.getId()+",";
        }

        // Asignamos el nuevo valor
        this.param_ppi_ppe_unidadesEjecutoras_vinculacionPropia = tmp.substring(0,tmp.length()-1);

    }


    /* ############################################################## */
    /* ##############  FIN UnidadEjecutora    ####################### */
    /* ############################################################## */





    /* ############################################################## */
    /* ##############   EstadoFormulacionPAE  ####################### */
    /* ############################################################## */

    //-----------------------------------------------------------------
    //EstadoFormulacionPAE
    //-----------------------------------------------------------------

    // Obtener todos los estados de formulación PXE
    public List<EstadoFormulacionPAE> getEstadosFormulacionPAE() {
        return estadoFormulacionPAEService.findAll();
    }

    // Obtener EstadoFormulacionPXEService
    public EstadoFormulacionPAEService getEstadoFormulacionPAEService() {
        return estadoFormulacionPAEService;
    }

    //-----------------------------------------------------------------
    //EstadoFormulacionPAE: Anulado
    //-----------------------------------------------------------------
    public EstadoFormulacionPAE getParam_ppi_ppe_estadoFormulacionPAE_anulado() {
        return param_ppi_ppe_estadoFormulacionPAE_anulado;
    }

    public void setParam_ppi_ppe_estadoFormulacionPAE_anulado(EstadoFormulacionPAE param_ppi_ppe_estadoFormulacionPAE_anulado) {
        this.param_ppi_ppe_estadoFormulacionPAE_anulado = param_ppi_ppe_estadoFormulacionPAE_anulado;
    }

    //-----------------------------------------------------------------
    //EstadoFormulacionPAE: Borrador
    //-----------------------------------------------------------------
    public EstadoFormulacionPAE getParam_ppi_ppe_estadoFormulacionPAE_borrador() {
        return param_ppi_ppe_estadoFormulacionPAE_borrador;
    }

    public void setParam_ppi_ppe_estadoFormulacionPAE_borrador(EstadoFormulacionPAE param_ppi_ppe_estadoFormulacionPAE_borrador) {
        this.param_ppi_ppe_estadoFormulacionPAE_borrador = param_ppi_ppe_estadoFormulacionPAE_borrador;
    }


    //-----------------------------------------------------------------
    //EstadoFormulacionPAE: Completado
    //-----------------------------------------------------------------
    public EstadoFormulacionPAE getParam_ppi_ppe_estadoFormulacionPAE_completado() {
        return param_ppi_ppe_estadoFormulacionPAE_completado;
    }

    public void setParam_ppi_ppe_estadoFormulacionPAE_completado(EstadoFormulacionPAE param_ppi_ppe_estadoFormulacionPAE_completado) {
        this.param_ppi_ppe_estadoFormulacionPAE_completado = param_ppi_ppe_estadoFormulacionPAE_completado;
    }


    //-----------------------------------------------------------------
    //EstadoFormulacionPAE: Ratificado
    //-----------------------------------------------------------------
    public EstadoFormulacionPAE getParam_ppi_ppe_estadoFormulacionPAE_ratificado() {
        return param_ppi_ppe_estadoFormulacionPAE_ratificado;
    }

    public void setParam_ppi_ppe_estadoFormulacionPAE_ratificado(EstadoFormulacionPAE param_ppi_ppe_estadoFormulacionPAE_ratificado) {
        this.param_ppi_ppe_estadoFormulacionPAE_ratificado = param_ppi_ppe_estadoFormulacionPAE_ratificado;
    }

    //-----------------------------------------------------------------
    //EstadoFormulacionPAE: Aprobado
    //-----------------------------------------------------------------
    public EstadoFormulacionPAE getParam_ppi_ppe_estadoFormulacionPAE_aprobado() {
        return param_ppi_ppe_estadoFormulacionPAE_aprobado;
    }

    public void setParam_ppi_ppe_estadoFormulacionPAE_aprobado(EstadoFormulacionPAE param_ppi_ppe_estadoFormulacionPAE_aprobado) {
        this.param_ppi_ppe_estadoFormulacionPAE_aprobado = param_ppi_ppe_estadoFormulacionPAE_aprobado;
    }
    /* ############################################################## */
    /* ############     FIN EstadoFormulacionPAE  ################### */
    /* ############################################################## */




    /* ############################################################## */
    /* ##############   EstadoFormulacionPXE  ####################### */
    /* ############################################################## */

    //-----------------------------------------------------------------
    //EstadoFormulacionPXE
    //-----------------------------------------------------------------

    // Obtener todos los estados de formulación PXE
    public List<EstadoFormulacionPXE> getEstadosFormulacionPXE() {
        return estadoFormulacionPXEService.findAll();
    }

    // Obtener EstadoFormulacionPXEService
    public EstadoFormulacionPXEService getEstadoFormulacionPXEService() {
        return estadoFormulacionPXEService;
    }

    //-----------------------------------------------------------------
    //EstadoFormulacionPXE: Anulado
    //-----------------------------------------------------------------
    public EstadoFormulacionPXE getParam_ppi_ppe_estadoFormulacionPXE_anulado() {
        return param_ppi_ppe_estadoFormulacionPXE_anulado;
    }

    public void setParam_ppi_ppe_estadoFormulacionPXE_anulado(EstadoFormulacionPXE param_ppi_ppe_estadoFormulacionPXE_anulado) {
        this.param_ppi_ppe_estadoFormulacionPXE_anulado = param_ppi_ppe_estadoFormulacionPXE_anulado;
    }

    //-----------------------------------------------------------------
    //EstadoFormulacionPXE: Borrador
    //-----------------------------------------------------------------
    public EstadoFormulacionPXE getParam_ppi_ppe_estadoFormulacionPXE_borrador() {
        return param_ppi_ppe_estadoFormulacionPXE_borrador;
    }

    public void setParam_ppi_ppe_estadoFormulacionPXE_borrador(EstadoFormulacionPXE param_ppi_ppe_estadoFormulacionPXE_borrador) {
        this.param_ppi_ppe_estadoFormulacionPXE_borrador = param_ppi_ppe_estadoFormulacionPXE_borrador;
    }


    //-----------------------------------------------------------------
    //EstadoFormulacionPXE: Completado
    //-----------------------------------------------------------------
    public EstadoFormulacionPXE getParam_ppi_ppe_estadoFormulacionPXE_completado() {
        return param_ppi_ppe_estadoFormulacionPXE_completado;
    }

    public void setParam_ppi_ppe_estadoFormulacionPXE_completado(EstadoFormulacionPXE param_ppi_ppe_estadoFormulacionPXE_completado) {
        this.param_ppi_ppe_estadoFormulacionPXE_completado = param_ppi_ppe_estadoFormulacionPXE_completado;
    }


    //-----------------------------------------------------------------
    //EstadoFormulacionPXE: Ratificado
    //-----------------------------------------------------------------
    public EstadoFormulacionPXE getParam_ppi_ppe_estadoFormulacionPXE_ratificado() {
        return param_ppi_ppe_estadoFormulacionPXE_ratificado;
    }

    public void setParam_ppi_ppe_estadoFormulacionPXE_ratificado(EstadoFormulacionPXE param_ppi_ppe_estadoFormulacionPXE_ratificado) {
        this.param_ppi_ppe_estadoFormulacionPXE_ratificado = param_ppi_ppe_estadoFormulacionPXE_ratificado;
    }

    //-----------------------------------------------------------------
    //EstadoFormulacionPXE: Aprobado
    //-----------------------------------------------------------------
    public EstadoFormulacionPXE getParam_ppi_ppe_estadoFormulacionPXE_aprobado() {
        return param_ppi_ppe_estadoFormulacionPXE_aprobado;
    }

    public void setParam_ppi_ppe_estadoFormulacionPXE_aprobado(EstadoFormulacionPXE param_ppi_ppe_estadoFormulacionPXE_aprobado) {
        this.param_ppi_ppe_estadoFormulacionPXE_aprobado = param_ppi_ppe_estadoFormulacionPXE_aprobado;
    }
    /* ############################################################## */
    /* ##############   EstadoFormulacionPXE  ####################### */
    /* ############################################################## */






    /******************************************************************/
    /******************************************************************/
    /********************* FIN MÉTODOS      ***************************/
    /******************************************************************/
    /******************************************************************/




}
/**********************************************************************/
/**********************************************************************/
/**********************************************************************/
/**********************************************************************/
/**********************************************************************/