package cz.cvut.fel.restauracefel.hibernate;
import cz.cvut.fel.restauracefel.library.service.DateFunctions;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
/**
*
* @author Lukas Camra
*/
public class Uzaverka extends DBEntity {
private static final long serialVersionUID = -3485621218713955338L;
private int id;
private User user;
private Date date;
private boolean closed;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public Date getDate() {
return date;
}
public void setDate(Date date) {
this.date = date;
}
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
public boolean isClosed() {
return closed;
}
public void setClosed(boolean closed) {
this.closed = closed;
}
public void create() {
create(this);
}
public void delete() {
delete(this);
}
public void update() {
update(this);
}
public static List<Uzaverka> findAllOrderedDescendingByDate() {
String query = "SELECT u FROM Uzaverka u ORDER BY u.date desc";
String[] paramNames = new String[]{};
String[] paramTypes = new String[]{};
String[] paramValues = new String[]{};
List<Uzaverka> res = executeQuery(query, paramNames, paramTypes, paramValues);
return res;
}
public static Uzaverka findById(Integer id) {
return (Uzaverka) findById("Uzaverka", "id", id);
}
public static List<Uzaverka> findPreviousUzaverky(Uzaverka u) {
Date beforePlusDay = DateFunctions.changeDateByNumberOfDays(u.getDate(), 1);
String query = "SELECT u FROM Uzaverka u WHERE u.date < :date ORDER BY u.date desc";
String[] paramNames = new String[]{"date"};
String[] paramTypes = new String[]{"Date"};
Object[] paramValues = new Object[]{beforePlusDay};
List<Uzaverka> l = executeQuery(query, paramNames, paramTypes, paramValues);
List<Uzaverka> res = new ArrayList<Uzaverka>();
for (Uzaverka u2 : l) {
if ((u2.getDate().before(u.getDate())) && (u.getId() != u2.getId())) {
res.add(u2);
}
}
if (res == null || res.isEmpty()) {
return null;
}
return res;
}
}