package cz.cvut.fel.restauracefel.hibernate;
// Generated 16.3.2009 21:36:54 by Hibernate Tools 3.2.1.GA
import cz.cvut.fel.restauracefel.library.service.DateFunctions;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
/**
* OrderMenuItem generated by hbm2java
*/
public class OrderMenuItem extends DBEntity {
private Integer orderMenuItemId;
private MenuItem menuItem;
private Order order;
private int isDeleted;
public OrderMenuItem() {
}
public OrderMenuItem(MenuItem menuItem, Order xorder, int isDeleted) {
this.menuItem = menuItem;
this.order = xorder;
this.isDeleted = isDeleted;
}
public Integer getOrderMenuItemId() {
return this.orderMenuItemId;
}
public void setOrderMenuItemId(Integer orderMenuItemId) {
this.orderMenuItemId = orderMenuItemId;
}
public MenuItem getMenuItem() {
return this.menuItem;
}
public void setMenuItem(MenuItem menuItem) {
this.menuItem = menuItem;
}
public Order getOrder() {
return this.order;
}
public void setOrder(Order xorder) {
this.order = xorder;
}
public int getIsDeleted() {
return isDeleted;
}
public void setIsDeleted(int isDeleted) {
this.isDeleted = isDeleted;
}
public void create() {
create(this);
}
public void delete() {
delete(this);
}
public void update() {
update(this);
}
public static OrderMenuItem findById(Integer id) {
//return (OrderMenuItem) findById("OrderMenuItem", "orderMenuItemId", id);
return (OrderMenuItem) findByIdNotDeleted("OrderMenuItem", "orderMenuItemId", id, "isDeleted", 0);
}
public static List findAll() {
return findAllNotDeleted("OrderMenuItem", "isDeleted", 0);
}
public static List findByOrder(int orderId) {
String query = "from OrderMenuItem mmi where mmi.order.orderId = :id1 and mmi.isDeleted = :id2";
String[] paramNames = new String[]{"id1", "id2"};
String[] paramTypes = new String[]{"Integer", "Integer"};
Integer[] paramValues = new Integer[]{orderId, 0};
List res = executeQuery(query, paramNames, paramTypes, paramValues);
return res;
}
public static List<OrderMenuItem> findOrdersWithMenuItemInInterval(Integer miId, Date after, Date before) {
Date afterMinusDay = DateFunctions.changeDateByNumberOfDays(after, -1);
Date beforePlusDay = DateFunctions.changeDateByNumberOfDays(before, 1);
String query = "SELECT omi FROM OrderMenuItem omi WHERE omi.menuItem.menuItemId = :mi AND omi.order.time > :after AND omi.order.time < :before AND omi.isDeleted = :deleted";
String[] paramNames = new String[]{"mi","after","before","deleted"};
String[] paramTypes = new String[]{"Integer","Date","Date","Integer"};
Object[] paramValues = new Object[]{miId, afterMinusDay, beforePlusDay, 0};
List<OrderMenuItem> l = executeQuery(query, paramNames, paramTypes, paramValues);
List<OrderMenuItem> res = new ArrayList<OrderMenuItem>();
for (OrderMenuItem omi : l) {
if (omi.getOrder().getTime().after(after) && omi.getOrder().getTime().before(before)) {
res.add(omi);
}
}
return res;
}
public static int countOrdersWithMenuItemInInterval(Integer miId, Date after, Date before) {
List<OrderMenuItem> res = findOrdersWithMenuItemInInterval(miId, after, before);
if (res == null) {
return 0;
}
return res.size();
}
}