public DataResult tableAjax(Map<String, String> filters,
String[] projections, String columnOrder, String columnOrderDir,
int startIndex) {
List<Order> orders = null;
PracownikService pracownikService = null;
// stala czesc sluzaca sortowaniu
if (columnOrder.compareTo("null") != 0) {
orders = new ArrayList<Order>();
if (columnOrderDir.compareTo("desc") == 0) {
orders.add(Order.desc(columnOrder));
} else {
orders.add(Order.asc(columnOrder));
}
}
try {
pracownikService = (PracownikService) BusinessUtil
.findBusiness("PracownikService");
ProjectionList projectionList = Projections.projectionList();
for (int i = 0; i < projections.length; i++) {
projectionList.add(Projections.property(projections[i]));
}
List<Criterion> criterions = new ArrayList<Criterion>();
if (filters.size() > 0) {
if (!ValidatorUtil.isBlankOrNull(filters
.get(Pracownik.PROPERTY_ID))) {
criterions.add(Restrictions.eq(Pracownik.PROPERTY_ID,
Integer
.parseInt(filters
.get(Pracownik.PROPERTY_ID))));
}
if (!ValidatorUtil.isBlankOrNull(filters
.get(Pracownik.PROPERTY_NAZWISKO))) {
criterions.add(Restrictions.like(
Pracownik.PROPERTY_NAZWISKO, filters
.get(Pracownik.PROPERTY_NAZWISKO),
MatchMode.START));
}
if (!ValidatorUtil.isBlankOrNull(filters
.get(Pracownik.PROPERTY_IMIE))) {
criterions.add(Restrictions.like(Pracownik.PROPERTY_IMIE,
filters.get(Pracownik.PROPERTY_IMIE)));
}
if (!ValidatorUtil.isBlankOrNull(filters
.get(Pracownik.PROPERTY_ADRES))) {
criterions.add(Restrictions.like(Pracownik.PROPERTY_ADRES,
filters.get(Pracownik.PROPERTY_ADRES)));
}
if (!ValidatorUtil.isBlankOrNull(filters
.get(Pracownik.PROPERTY_OBJECT_STANOWSKO + "."
+ Stanowisko.PROPERTY_NAZWA))) {
criterions
.add(Restrictions
.like(
Pracownik.PROPERTY_OBJECT_STANOWSKO
+ "."
+ Stanowisko.PROPERTY_NAZWA,
filters
.get(Pracownik.PROPERTY_OBJECT_STANOWSKO
+ "."
+ Stanowisko.PROPERTY_NAZWA)));
}
if (!ValidatorUtil.isBlankOrNull(filters
.get(Pracownik.PROPERTY_OBJECT_DZIALS + "."
+ Dzial.PROPERTY_NAZWA_DZIALU))) {
criterions.add(Restrictions.like(
Pracownik.PROPERTY_OBJECT_DZIALS + "."
+ Dzial.PROPERTY_NAZWA_DZIALU, filters
.get(Pracownik.PROPERTY_OBJECT_DZIALS + "."
+ Dzial.PROPERTY_NAZWA_DZIALU)));
}
if (!ValidatorUtil.isBlankOrNull(filters
.get(Pracownik.PROPERTY_OBJECT_STANOWSKO + "."
+ Stanowisko.PROPERTY_ID))) {
criterions.add(Restrictions.eq(
Pracownik.PROPERTY_OBJECT_STANOWSKO + "."
+ Stanowisko.PROPERTY_ID,
Integer.valueOf(filters
.get(Pracownik.PROPERTY_OBJECT_STANOWSKO
+ "." + Stanowisko.PROPERTY_ID))));
}
}
DataResult dane = null;
startIndex = (startIndex - 1) * ROW_AMOUNT;
if (orders != null) {
dane = pracownikService.findByParams(projectionList,
criterions, orders, startIndex, ROW_AMOUNT);
} else {
dane = pracownikService.findByParams(projectionList,
criterions, startIndex, ROW_AMOUNT);
}
return dane;