/* * Copyright (C) 2003 Idega software. All Rights Reserved. * * This software is the proprietary information of Idega software. Use is * subject to license terms. * */ package is.idega.idegaweb.member.isi.block.accounting.data; import java.sql.Date; import java.util.Collection; import javax.ejb.FinderException; import com.idega.data.GenericEntity; import com.idega.data.IDOQuery; import com.idega.user.data.Group; import com.idega.util.IWTimestamp; /** * @author palli */ public class ClubTariffBMPBean extends GenericEntity implements ClubTariff { protected final static String ENTITY_NAME = "isi_tariff"; protected final static String COLUMN_CLUB = "club_id"; protected final static String COLUMN_DIVISION = "division_id"; protected final static String COLUMN_GROUP = "group_id"; protected final static String COLUMN_TARIFF_TYPE = "tariff_type_id"; protected final static String COLUMN_TEXT = "text"; protected final static String COLUMN_AMOUNT = "amount"; protected final static String COLUMN_PERIOD_FROM = "period_from"; protected final static String COLUMN_PERIOD_TO = "period_to"; protected final static String COLUMN_DELETED = "deleted"; /* * (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_CLUB, Group.class); addManyToOneRelationship(COLUMN_DIVISION, Group.class); addManyToOneRelationship(COLUMN_GROUP, Group.class); addManyToOneRelationship(COLUMN_TARIFF_TYPE, ClubTariffType.class); addAttribute(COLUMN_TEXT, "Text", true, true, String.class); addAttribute(COLUMN_AMOUNT, "Amount", true, true, Double.class); addAttribute(COLUMN_PERIOD_FROM, "Period from", true, true, Date.class); addAttribute(COLUMN_PERIOD_TO, "Period to", true, true, Date.class); addAttribute(COLUMN_DELETED, "Deleted", true, true, Boolean.class); } public void setClubID(int id) { setColumn(COLUMN_CLUB, id); } public void setClub(Group club) { setColumn(COLUMN_CLUB, club); } public void setDivisionID(int id) { setColumn(COLUMN_DIVISION, id); } public void setDivision(Group division) { setColumn(COLUMN_DIVISION, division); } public void setGroupId(int id) { setColumn(COLUMN_GROUP, id); } public void setGroup(Group group) { setColumn(COLUMN_GROUP, group); } public void setTariffTypeId(int id) { setColumn(COLUMN_TARIFF_TYPE, id); } public void setTariffType(ClubTariffType type) { setColumn(COLUMN_TARIFF_TYPE, type); } public void setText(String text) { setColumn(COLUMN_TEXT, text); } public void setAmount(double amount) { setColumn(COLUMN_AMOUNT, amount); } public void setPeriodFrom(Date from) { setColumn(COLUMN_PERIOD_FROM, from); } public void setPeriodTo(Date to) { setColumn(COLUMN_PERIOD_TO, to); } public void setDeleted(boolean deleted) { setColumn(COLUMN_DELETED, deleted); } public int getClubID() { return getIntColumnValue(COLUMN_CLUB); } public Group getClub() { return (Group) getColumnValue(COLUMN_CLUB); } public int getDivisionID() { return getIntColumnValue(COLUMN_DIVISION); } public Group getDivision() { return (Group) getColumnValue(COLUMN_DIVISION); } public int getGroupId() { return getIntColumnValue(COLUMN_GROUP); } public Group getGroup() { return (Group) getColumnValue(COLUMN_GROUP); } public int getTariffTypeId() { return getIntColumnValue(COLUMN_TARIFF_TYPE); } public ClubTariffType getTariffType() { return (ClubTariffType) getColumnValue(COLUMN_TARIFF_TYPE); } public String getText() { return getStringColumnValue(COLUMN_TEXT); } public double getAmount() { return getDoubleColumnValue(COLUMN_AMOUNT); } public Date getPeriodFrom() { return getDateColumnValue(COLUMN_PERIOD_FROM); } public Date getPeriodTo() { return getDateColumnValue(COLUMN_PERIOD_TO); } public boolean getDeleted() { return getBooleanColumnValue(COLUMN_DELETED); } public Collection ejbFindAllByClub(Group club) throws FinderException { return ejbFindAllByClubAndDivision(club, null); } public Collection ejbFindAllByClubAndDivision(Group club, Group division) throws FinderException { IDOQuery sql = idoQuery(); sql.appendSelectAllFrom(this); sql.appendWhereEquals(COLUMN_CLUB, club); sql.appendAnd(); if (division != null) { sql.appendEquals(COLUMN_DIVISION, division); sql.appendAnd(); } sql.appendLeftParenthesis(); sql.appendEquals(COLUMN_DELETED, false); sql.appendOr(); sql.append(COLUMN_DELETED); sql.append(" is null"); sql.appendRightParenthesis(); sql.appendOrderBy(); sql.append(COLUMN_DIVISION); sql.append(", "); sql.append(COLUMN_GROUP); sql.append(", "); sql.append(COLUMN_TARIFF_TYPE); return idoFindPKsByQuery(sql); } public Collection ejbFindAllValidByGroup(Group group) throws FinderException { IWTimestamp date = IWTimestamp.RightNow(); date.setHour(0); date.setMinute(0); date.setSecond(0); date.setMilliSecond(0); IDOQuery sql = idoQuery(); sql.appendSelectAllFrom(this); sql.appendWhereEquals(COLUMN_GROUP, group); sql.appendAnd(); sql.appendLeftParenthesis(); sql.appendEquals(COLUMN_DELETED, false); sql.appendOr(); sql.append(COLUMN_DELETED); sql.append(" is null"); sql.appendRightParenthesis(); sql.appendAnd(); sql.append(COLUMN_PERIOD_FROM); sql.appendLessThanOrEqualsSign(); sql.append(date.getDate()); sql.appendAnd(); sql.append(date.getDate()); sql.appendLessThanOrEqualsSign(); sql.append(COLUMN_PERIOD_TO); return idoFindPKsByQuery(sql); } public Collection ejbFindByGroupAndTariffType(Group group, ClubTariffType type) throws FinderException { return ejbFindByGroupAndTariffType(group, type, null); } public Collection ejbFindByGroupAndTariffType(Group group, ClubTariffType type, IWTimestamp date) throws FinderException { if (date == null) { date = IWTimestamp.RightNow(); } IDOQuery sql = idoQuery(); sql.appendSelectAllFrom(this); sql.appendWhereEquals(COLUMN_GROUP, group); sql.appendAnd(); sql.appendEquals(COLUMN_TARIFF_TYPE, type); sql.appendAnd(); sql.appendLeftParenthesis(); sql.appendEquals(COLUMN_DELETED, false); sql.appendOr(); sql.append(COLUMN_DELETED); sql.append(" is null"); sql.appendRightParenthesis(); sql.appendAnd(); sql.append(COLUMN_PERIOD_FROM); sql.appendLessThanOrEqualsSign(); sql.append(date.getDate()); sql.appendAnd(); sql.append(date.getDate()); sql.appendLessThanOrEqualsSign(); sql.append(COLUMN_PERIOD_TO); return idoFindPKsByQuery(sql); } }