TavernerPOS - Source Code
Clone:
git clone http://www.librarysmith.co.uk/tavernerPOS
package com.floreantpos.model.dao;
import java.util.ArrayList;
import java.util.Date;
import java.util.Iterator;
import java.util.List;
import org.hibernate.Criteria;
import org.hibernate.Session;
import org.hibernate.criterion.Order;
import org.hibernate.criterion.Restrictions;
import com.floreantpos.Messages;
import com.floreantpos.PosException;
import com.floreantpos.model.AttendenceHistory;
import com.floreantpos.model.Shift;
import com.floreantpos.model.Terminal;
import com.floreantpos.model.Ticket;
import com.floreantpos.model.User;
import com.floreantpos.report.PayrollReportData;
public class AttendenceHistoryDAO extends BaseAttendenceHistoryDAO {
/**
* Default constructor. Can be used in place of getInstance()
*/
public AttendenceHistoryDAO() {
}
public List<User> findNumberOfClockedInUserAtHour(Date fromDay, Date toDay, int hour, String userType, Terminal terminal) {
Session session = null;
ArrayList<User> users = new ArrayList<User>();
try {
session = getSession();
Criteria criteria = session.createCriteria(getReferenceClass());
criteria.add(Restrictions.ge(AttendenceHistory.PROP_CLOCK_IN_TIME, fromDay));
criteria.add(Restrictions.le(AttendenceHistory.PROP_CLOCK_IN_TIME, toDay));
criteria.add(Restrictions.le(AttendenceHistory.PROP_CLOCK_IN_HOUR, new Short((short) hour)));
if (userType != null) {
criteria.createAlias(AttendenceHistory.PROP_USER, "u"); //$NON-NLS-1$
criteria.add(Restrictions.eq("u.type", userType)); //$NON-NLS-1$
}
if (terminal != null) {
criteria.add(Restrictions.eq(Ticket.PROP_TERMINAL, terminal));
}
List list = criteria.list();
for (Object object : list) {
AttendenceHistory history = (AttendenceHistory) object;
if (!history.isClockedOut()) {
users.add(history.getUser());
}
else if (history.getClockOutHour() >= hour) {
users.add(history.getUser());
}
}
return users;
} catch (Exception e) {
throw new PosException(Messages.getString("AttendenceHistoryDAO.2"), e); //$NON-NLS-1$
} finally {
if (session != null) {
closeSession(session);
}
}
}
public List<User> findNumberOfClockedInUserAtShift(Date fromDay, Date toDay, Shift shift, String userType, Terminal terminal) {
Session session = null;
ArrayList<User> users = new ArrayList<User>();
try {
session = getSession();
Criteria criteria = session.createCriteria(getReferenceClass());
criteria.add(Restrictions.ge(AttendenceHistory.PROP_CLOCK_IN_TIME, fromDay));
criteria.add(Restrictions.le(AttendenceHistory.PROP_CLOCK_IN_TIME, toDay));
criteria.add(Restrictions.le(AttendenceHistory.PROP_SHIFT, shift));
if (userType != null) {
criteria.createAlias(AttendenceHistory.PROP_USER, "u"); //$NON-NLS-1$
criteria.add(Restrictions.eq("u.type", userType)); //$NON-NLS-1$
}
if (terminal != null) {
criteria.add(Restrictions.eq(Ticket.PROP_TERMINAL, terminal));
}
List list = criteria.list();
for (Object object : list) {
AttendenceHistory history = (AttendenceHistory) object;
// if (!history.isClockedOut()) {
// users.add(history.getUser());
// }
// else if (history.getClockOutHour() >= hour) {
// users.add(history.getUser());
// }
users.add(history.getUser());
}
return users;
} catch (Exception e) {
throw new PosException(Messages.getString("AttendenceHistoryDAO.5"), e); //$NON-NLS-1$
} finally {
if (session != null) {
closeSession(session);
}
}
}
public AttendenceHistory findHistoryByClockedInTime(User user) {
Session session = null;
try {
session = getSession();
Criteria criteria = session.createCriteria(AttendenceHistory.class);
criteria.add(Restrictions.eq(AttendenceHistory.PROP_CLOCK_IN_TIME, user.getLastClockInTime()));
criteria.add(Restrictions.eq(AttendenceHistory.PROP_USER, user));
return (AttendenceHistory) criteria.uniqueResult();
} finally {
if (session != null) {
closeSession(session);
}
}
}
public List<PayrollReportData> findPayroll(Date from, Date to) {
Session session = null;
ArrayList<PayrollReportData> list = new ArrayList<PayrollReportData>();
try {
session = getSession();
Criteria criteria = session.createCriteria(AttendenceHistory.class);
criteria.add(Restrictions.ge(AttendenceHistory.PROP_CLOCK_IN_TIME, from));
criteria.add(Restrictions.le(AttendenceHistory.PROP_CLOCK_OUT_TIME, to));
criteria.addOrder(Order.asc(AttendenceHistory.PROP_USER));
List list2 = criteria.list();
for (Iterator iterator = list2.iterator(); iterator.hasNext();) {
AttendenceHistory history = (AttendenceHistory) iterator.next();
PayrollReportData data = new PayrollReportData();
data.setFrom(history.getClockInTime());
data.setTo(history.getClockOutTime());
data.setDate(history.getClockInTime());
data.setUser(history.getUser());
data.calculate();
list.add(data);
}
return list;
} catch (Exception e) {
throw new PosException(Messages.getString("AttendenceHistoryDAO.6"), e); //$NON-NLS-1$
} finally {
if (session != null) {
session.close();
}
}
}
}
- Details
- Last Updated: Monday, 04 April 2016 02:04
- Hits: 36019518