package de.ivu.elect.business.mandant.boundary;

import java.util.List;

import de.ivu.elect.business.mandant.entity.Mandant;
import de.ivu.elect.business.mandant.entity.QMandant;
import de.ivu.elect.jee.entity.QueryDsl;

public class MandantSearch extends AbstractMandantSearch {

  @Override
  protected List<Mandant> querySearchResult(MandantSearchParameters searchParameters) {

    QueryDsl queryDsl = dao.getQueryDsl();

    QMandant mandant = QMandant.mandant;

    queryDsl.from(mandant);
    queryDsl.eqIfNotNull(mandant.nummer, searchParameters.getMandant().getNummer());
    queryDsl.eqIfNotNull(mandant.art, searchParameters.getMandant().getArt());
    queryDsl.eqIfNotNull(mandant.status, searchParameters.getMandant().getStatus());
    queryDsl.likeIfNotBlank(mandant.name, searchParameters.getMandant().getName());

    queryDsl.getQuery().orderBy(mandant.nummer.asc());

    return queryDsl.list(mandant);
  }
}
