<a:searchBetweenDate> Filtrar entre Fechas
Last updated
Was this helpful?
Last updated
Was this helpful?
Bson filter = Filters.and(Filters.gte("fechainicio", permiso.getFechainicio()), Filters.lte("fechafin", permiso.getFechafin()));
list = permisoRepository.filters(filter, new Document("idpermiso", -1));
<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>
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
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>