if (filter instanceof AuftragFilter) {
myFilter = (AuftragFilter) filter;
} else {
myFilter = new AuftragFilter(filter);
}
final QueryFilter queryFilter = new QueryFilter(myFilter);
Boolean vollstaendigFakturiert = null;
if (myFilter.isShowBeauftragtNochNichtVollstaendigFakturiert() == true) {
queryFilter.add(Restrictions.not(Restrictions.in("auftragsStatus", new AuftragsStatus[] { AuftragsStatus.ABGELEHNT,
AuftragsStatus.ERSETZT, AuftragsStatus.GELEGT, AuftragsStatus.GROB_KALKULATION, AuftragsStatus.IN_ERSTELLUNG})));
vollstaendigFakturiert = false;
} else if (myFilter.isShowNochNichtVollstaendigFakturiert() == true) {
queryFilter.add(Restrictions.not(Restrictions.in("auftragsStatus", new AuftragsStatus[] { AuftragsStatus.ABGELEHNT,
AuftragsStatus.ERSETZT})));
vollstaendigFakturiert = false;
} else if (myFilter.isShowVollstaendigFakturiert() == true) {
vollstaendigFakturiert = true;
} else if (myFilter.isShowAbgelehnt() == true) {
queryFilter.add(Restrictions.eq("auftragsStatus", AuftragsStatus.ABGELEHNT));
} else if (myFilter.isShowAbgeschlossenNichtFakturiert() == true) {
queryFilter
.createAlias("positionen", "position")
.createAlias("paymentSchedules", "paymentSchedule", Criteria.FULL_JOIN)
.add(
Restrictions.or(
Restrictions.or(Restrictions.eq("auftragsStatus", AuftragsStatus.ABGESCHLOSSEN),
Restrictions.eq("position.status", AuftragsPositionsStatus.ABGESCHLOSSEN)),
Restrictions.eq("paymentSchedule.reached", true)));
vollstaendigFakturiert = false;
} else if (myFilter.isShowAkquise() == true) {
queryFilter.add(Restrictions.in("auftragsStatus", new AuftragsStatus[] { AuftragsStatus.GELEGT, AuftragsStatus.IN_ERSTELLUNG,
AuftragsStatus.GROB_KALKULATION}));
} else if (myFilter.isShowBeauftragt() == true) {
queryFilter.add(Restrictions.in("auftragsStatus", new AuftragsStatus[] { AuftragsStatus.BEAUFTRAGT, AuftragsStatus.LOI,
AuftragsStatus.ESKALATION}));
} else if (myFilter.isShowErsetzt() == true) {
queryFilter.add(Restrictions.eq("auftragsStatus", AuftragsStatus.ERSETZT));
}
if (myFilter.getYear() > 1900) {
final Calendar cal = DateHelper.getUTCCalendar();
cal.set(Calendar.YEAR, myFilter.getYear());
java.sql.Date lo = null;
java.sql.Date hi = null;
cal.set(Calendar.DAY_OF_YEAR, 1);
lo = new java.sql.Date(cal.getTimeInMillis());
final int lastDayOfYear = cal.getActualMaximum(Calendar.DAY_OF_YEAR);
cal.set(Calendar.DAY_OF_YEAR, lastDayOfYear);
hi = new java.sql.Date(cal.getTimeInMillis());
queryFilter.add(Restrictions.between("angebotsDatum", lo, hi));
}
queryFilter.addOrder(Order.desc("nummer"));
final List<AuftragDO> list;
if (checkAccess == true) {
list = getList(queryFilter);
} else {
list = internalGetList(queryFilter);