/*
* $Id: MealPriceBMPBean.java,v 1.1 2005/08/10 23:03:11 laddi Exp $
* Created on Aug 10, 2005
*
* Copyright (C) 2005 Idega Software hf. All Rights Reserved.
*
* This software is the proprietary information of Idega hf.
* Use is subject to license terms.
*/
package se.idega.idegaweb.commune.school.meal.data;
import java.sql.Date;
import java.util.Collection;
import javax.ejb.FinderException;
import com.idega.block.school.data.School;
import com.idega.data.GenericEntity;
import com.idega.data.IDOException;
import com.idega.data.query.CountColumn;
import com.idega.data.query.MatchCriteria;
import com.idega.data.query.SelectQuery;
import com.idega.data.query.Table;
/**
* Last modified: $Date: 2005/08/10 23:03:11 $ by $Author: laddi $
*
* @author <a href="mailto:laddi@idega.com">laddi</a>
* @version $Revision: 1.1 $
*/
public class MealPriceBMPBean extends GenericEntity implements MealPrice{
private static final String ENTITY_NAME = "comm_meal_price";
private static final String COLUMN_SCHOOL = "school_id";
private static final String COLUMN_VALID_FROM = "valid_from";
private static final String COLUMN_VALID_TO = "valid_to";
private static final String COLUMN_MEAL_PRICE_DAY = "meal_price_day";
private static final String COLUMN_MEAL_PRICE_MONTH = "meal_price_month";
private static final String COLUMN_MILK_PRICE = "milk_price";
private static final String COLUMN_FRUITS_PRICE = "fruits_price";
/* (non-Javadoc)
* @see com.idega.data.GenericEntity#getEntityName()
*/
public String getEntityName() {
return ENTITY_NAME;
}
/* (non-Javadoc)
* @see com.idega.data.GenericEntity#initializeAttributes()
*/
public void initializeAttributes() {
addAttribute(getIDColumnName());
addManyToOneRelationship(COLUMN_SCHOOL, School.class);
addAttribute(COLUMN_VALID_FROM, "Valid from", Date.class);
addAttribute(COLUMN_VALID_TO, "Valid to", Date.class);
addAttribute(COLUMN_MEAL_PRICE_DAY, "Meal price per day", Float.class);
addAttribute(COLUMN_MEAL_PRICE_MONTH, "Meal price per month", Float.class);
addAttribute(COLUMN_MILK_PRICE, "Milk price per month", Float.class);
addAttribute(COLUMN_FRUITS_PRICE, "Fruit price per month", Float.class);
}
//Getters
public School getSchool() {
return (School) getColumnValue(COLUMN_SCHOOL);
}
public Object getSchoolPK() {
return getIntegerColumnValue(COLUMN_SCHOOL);
}
public Date getValidFrom() {
return getDateColumnValue(COLUMN_VALID_FROM);
}
public Date getValidTo() {
return getDateColumnValue(COLUMN_VALID_TO);
}
public float getMealPricePerDay() {
return getFloatColumnValue(COLUMN_MEAL_PRICE_DAY);
}
public float getMealPricePerMonth() {
return getFloatColumnValue(COLUMN_MEAL_PRICE_MONTH);
}
public float getMilkPrice() {
return getFloatColumnValue(COLUMN_MILK_PRICE);
}
public float getFruitsPrice() {
return getFloatColumnValue(COLUMN_FRUITS_PRICE);
}
//Setters
public void setSchool(School school) {
setColumn(COLUMN_SCHOOL, school);
}
public void setSchool(Object schoolPK) {
setColumn(COLUMN_SCHOOL, schoolPK);
}
public void setValidFrom(Date validFrom) {
setColumn(COLUMN_VALID_FROM, validFrom);
}
public void setValidTo(Date validTo) {
setColumn(COLUMN_VALID_TO, validTo);
}
public void setMealPricePerDay(float price) {
setColumn(COLUMN_MEAL_PRICE_DAY, price);
}
public void setMealPricePerMonth(float price) {
setColumn(COLUMN_MEAL_PRICE_MONTH, price);
}
public void setMilkPrice(float price) {
setColumn(COLUMN_MILK_PRICE, price);
}
public void setFruitsPrice(float price) {
setColumn(COLUMN_FRUITS_PRICE, price);
}
//Finders
public Collection ejbFindAllBySchool(School school) throws FinderException {
Table table = new Table(this);
SelectQuery query = new SelectQuery(table);
query.addColumn(table, getIDColumnName());
query.addCriteria(new MatchCriteria(table, COLUMN_SCHOOL, MatchCriteria.EQUALS, school));
query.addOrder(table, COLUMN_VALID_FROM, true);
return idoFindPKsByQuery(query);
}
public Object ejbFindBySchoolAndDate(School school, Date date) throws FinderException {
Table table = new Table(this);
SelectQuery query = new SelectQuery(table);
query.addColumn(table, getIDColumnName());
query.addCriteria(new MatchCriteria(table, COLUMN_SCHOOL, MatchCriteria.EQUALS, school));
query.addCriteria(new MatchCriteria(table, COLUMN_VALID_FROM, MatchCriteria.LESSEQUAL, date));
query.addCriteria(new MatchCriteria(table, COLUMN_VALID_TO, MatchCriteria.GREATEREQUAL, date));
return idoFindOnePKByQuery(query);
}
public int ejbHomeGetCountBySchoolAndDate(School school, Date date) throws IDOException {
Table table = new Table(this);
SelectQuery query = new SelectQuery(table);
query.addColumn(new CountColumn(table, getIDColumnName()));
query.addCriteria(new MatchCriteria(table, COLUMN_SCHOOL, MatchCriteria.EQUALS, school));
query.addCriteria(new MatchCriteria(table, COLUMN_VALID_FROM, MatchCriteria.LESSEQUAL, date));
query.addCriteria(new MatchCriteria(table, COLUMN_VALID_TO, MatchCriteria.GREATEREQUAL, date));
return idoGetNumberOfRecords(query);
}
}