package is.idega.idegaweb.member.isi.block.accounting.data;
import java.sql.Timestamp;
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;
public class DiscountEntryBMPBean extends GenericEntity implements
DiscountEntry {
protected final static String ENTITY_NAME = "isi_disc_entry";
protected final static String COLUMN_FINANCE_ENTRY = "isi_fin_entry_id";
protected final static String COLUMN_MAX_ID_ON_ENTRY = "max_id";
protected final static String COLUMN_CLUB_ID = "club_id";
protected final static String COLUMN_DIVISION_ID = "division_id";
protected final static String COLUMN_GROUP_ID = "group_id";
protected final static String COLUMN_DATE_OF_ENTRY = "date_of_entry";
public String getEntityName() {
return ENTITY_NAME;
}
public void initializeAttributes() {
addAttribute(getIDColumnName());
addOneToOneRelationship(COLUMN_FINANCE_ENTRY, FinanceEntry.class);
addAttribute(COLUMN_MAX_ID_ON_ENTRY, "Max finance entry id at entrytime", Integer.class);
addManyToOneRelationship(COLUMN_CLUB_ID, Group.class);
addManyToOneRelationship(COLUMN_DIVISION_ID, Group.class);
addManyToOneRelationship(COLUMN_GROUP_ID, Group.class);
addAttribute(COLUMN_DATE_OF_ENTRY, "Timestamp", true, true, Timestamp.class);
}
//getters
public FinanceEntry getFinanceEntry() {
return (FinanceEntry) getColumnValue(COLUMN_FINANCE_ENTRY);
}
public int getMaxIdOnEntry() {
return getIntColumnValue(COLUMN_MAX_ID_ON_ENTRY, 0);
}
public Group getClub() {
return (Group) getColumnValue(COLUMN_CLUB_ID);
}
public Group getDivision() {
return (Group) getColumnValue(COLUMN_DIVISION_ID);
}
public Group getGroup() {
return (Group) getColumnValue(COLUMN_GROUP_ID);
}
public Timestamp getDateOfEntry() {
return (Timestamp) getColumnValue(COLUMN_DATE_OF_ENTRY);
}
//setter
public void setFinanceEntry(FinanceEntry entry) {
setColumn(COLUMN_FINANCE_ENTRY, entry);
}
public void setMaxIdOnEntry(int id) {
setColumn(COLUMN_MAX_ID_ON_ENTRY, id);
}
public void setClub(Group club) {
setColumn(COLUMN_CLUB_ID, club);
}
public void setClubID(int id) {
setColumn(COLUMN_CLUB_ID, id);
}
public void setDivision(Group division) {
setColumn(COLUMN_DIVISION_ID, division);
}
public void setDivisionID(int id) {
setColumn(COLUMN_DIVISION_ID, id);
}
public void setGroup(Group group) {
setColumn(COLUMN_GROUP_ID, group);
}
public void setGroupID(int id) {
setColumn(COLUMN_GROUP_ID, id);
}
public void setDateOfEntry(Timestamp date) {
setColumn(COLUMN_DATE_OF_ENTRY, date);
}
//ejb
public Collection ejbFindAllByClubAndDivisionAndGroupAndSerial(Group club, Group division, Group group, int fromSerialNumber) throws FinderException {
IDOQuery sql = idoQuery();
sql.appendSelectAllFrom(this);
sql.appendWhereEquals(COLUMN_CLUB_ID, club);
if (division != null) {
sql.appendAndEquals(COLUMN_DIVISION_ID, division);
}
if (group != null) {
sql.appendAndEquals(COLUMN_GROUP_ID, group);
}
if (fromSerialNumber > 0) {
sql.appendAnd();
sql.append(COLUMN_MAX_ID_ON_ENTRY);
sql.appendGreaterThanOrEqualsSign();
sql.append(fromSerialNumber);
}
return idoFindPKsByQuery(sql);
}
public Collection ejbFindAllByClubAndDivisionAndGroupAndDate(Group club, Group division, Group group, IWTimestamp fromDate) throws FinderException {
IDOQuery sql = idoQuery();
sql.appendSelectAllFrom(this);
sql.appendWhereEquals(COLUMN_CLUB_ID, club);
if (division != null) {
sql.appendAndEquals(COLUMN_DIVISION_ID, division);
}
if (group != null) {
sql.appendAndEquals(COLUMN_GROUP_ID, group);
}
if (fromDate != null) {
sql.appendAnd();
sql.append(COLUMN_DATE_OF_ENTRY);
sql.appendGreaterThanSign();
sql.append(fromDate);
}
return idoFindPKsByQuery(sql);
}
}