<a:searchBetweenDate> Filtrar entre Fechas

Filtrar entre Fechas Sin Paginacion

Bson filter = Filters.and(Filters.gte("fechainicio", permiso.getFechainicio()), Filters.lte("fechafin", permiso.getFechafin()));
list = permisoRepository.filters(filter, new Document("idpermiso", -1));

Filtrar entre fechas con paginacion

                <b:row>
                    <b:column medium-screen="25" >



                <a:searchBetweenDate 
                    renderedMove="true"
                    labelDesde="#{msg['field.fechainicio']}"
                    valueDesde="#{orddenController.lookupSeguridadejbServices.fechaDesde}"
                    labelHasta="#{msg['field.fechafin']}"
                    valueHasta="#{ordenController.lookupSeguridadejbServices.fechaHasta}"
                    renderedList="#{applicationMenu.orden.list}"  
                    search="#{ordenController.searchBy('_betweendates')}"
                    />
                   </b:column>
                </b:row>

LOOKUPSERVICES

  • Agregar dos atributos tipo date para la fecha de inicio y fecha de fin y los métodos set/get

private Date fechaDesde;
private Date fechaHasta;
//set y get

CONTROLLER

  • Invocar el método searchBy()

  • Agregar la validación en el método move()

// <editor-fold defaultstate="collapsed" desc="searchBy(String string, Boolean... blns)">
    @Override
    public String searchBy(String  string) {
        try {

            loginController.put("searchorden", string);

            writable = true;
            move();

        } catch (Exception e) {
            JsfUtil.errorMessage("searchBy()" + e.getLocalizedMessage());
        }
        return "";
    }// </editor-fold>
 @Override
    public void move() {
        try {

            Document doc;
            switch (loginController.get("searchorden")) {
                case "_init":
                    //ordenList = ordenRepository.findPagination(page, rowPage);
                    ordenList = ordenRepository.findPagination(page, rowPage, new Document("idorden", -1));

                    break;
                case "_autocomplete":
                    //no se realiza ninguna accion 
                    break;

                case "idorden":
                    doc = new Document("idorden", orden.getIdorden());
                    ordenList = ordenRepository.findPagination(doc, page, rowPage, new Document("idorden", -1));
                    break;
                case "#":
                    doc = new Document("idorden", lookupStoreejbServices.getIdorden());
                    ordenList = ordenRepository.findPagination(doc, page, rowPage, new Document("idorden", -1));
                    break;
                case "fecha":
                    doc = new Document("fecha", lookupStoreejbServices.getFecha());
                    ordenList = ordenRepository.findPagination(doc, page, rowPage, new Document("idorden", -1));
                    break;

               case "_betweendates":
                    ordenList = ordenRepository.filterBetweenDatePagination("activo", "si", "fecha", lookupStoreejbServices.getFechaDesde(), "fecha", lookupStoreejbServices.getFechaHasta(), page, rowPage, new Document("idorden", -1));
                    break;
                case "proveedor":
                    doc = new Document("idemisor",proveedorSelected.getIdproveedor()).append("tipoemisor", "proveedor");
                     ordenList = ordenRepository.findPagination(doc, page, rowPage, new Document("idorden", -1));
                    break;


                default:

                    ordenList = ordenRepository.findPagination(page, rowPage);
                    break;
            }

            ordenFiltered = ordenList;

            ordenDataModel = new OrdenDataModel(ordenList);

        } catch (Exception e) {
            JsfUtil.errorMessage("move() " + e.getLocalizedMessage());
        }
    }// </editor-fold>

Last updated