// idega 2000 - Gimmi package com.idega.block.timesheet.data; //import java.util.*; import java.sql.Date; import java.sql.SQLException; import java.sql.Timestamp; import java.util.Collection; import javax.ejb.FinderException; import com.idega.user.data.*; import com.idega.data.IDOException; import com.idega.data.IDOQuery; public class TimesheetEntryBMPBean extends com.idega.data.GenericEntity implements com.idega.block.timesheet.data.TimesheetEntry { protected static final String USER_ID = "USER_ID"; protected static final String ENTRY_DATE = "ENTRY_DATE"; protected static final String REGISTERED = "REGISTERED"; protected static final String BOOKED = "BOOKED"; protected static final String DESCRIPTION = "DESCRIPTION"; protected static final String QUANTITY = "QUANTITY"; protected static final String PROJECT_ID = "PROJECT_ID"; protected static final String RESOURCE_ID = "RESOURCE_ID"; protected static final String TIMESHEET_ENTRY_ID = "TMS_ENTRY_ID"; public static final String TIMESHEET_ENTRY = "TMS_ENTRY"; public final static String TABLE_NAME = TIMESHEET_ENTRY; public TimesheetEntryBMPBean() { super(); } public TimesheetEntryBMPBean(int id) throws SQLException { super(id); } public void initializeAttributes() { addAttribute(getIDColumnName()); addAttribute(ENTRY_DATE, "date", true, true, Timestamp.class); addAttribute(USER_ID,USER_ID,true,true,Integer.class,"many-to-one",User.class); addAttribute(RESOURCE_ID, RESOURCE_ID, true, true, Integer.class, "many-to-one", Resource.class); addAttribute(PROJECT_ID, "n�mer verkefnis", true, true, Integer.class, "many-to-one", TimesheetProject.class); addAttribute(QUANTITY, "fjoldi", true, true, Double.class); addAttribute(DESCRIPTION, "stutt l�sing", true, true, String.class); addAttribute(BOOKED, "b�ka�", true, true, Boolean.class); addAttribute(REGISTERED, "skr��", true, true, Boolean.class); } public String getIDColumnName() { return TIMESHEET_ENTRY_ID; } public String getEntityName() { return TIMESHEET_ENTRY; } public java.sql.Timestamp getDate() { return (java.sql.Timestamp) getColumnValue(ENTRY_DATE); } public void setDate(java.sql.Timestamp date) { setColumn(ENTRY_DATE, date); } public int getUserId() { return getIntColumnValue(USER_ID); } public void setUserId(int user_id) { setColumn(USER_ID, user_id); } public User getUser() { return (User) getColumnValue(USER_ID); } public int getResourceId() { return getIntColumnValue(RESOURCE_ID); } public void setResourceId(int resource_id) { setColumn(RESOURCE_ID, (new Integer(resource_id))); } public Resource getResource() { return (Resource)getColumnValue(RESOURCE_ID); } public void setProjectId(int project_id) { setColumn(PROJECT_ID, (new Integer(project_id))); } public int getProjectId() { return getIntColumnValue(PROJECT_ID); } public TimesheetProject getProject() { return (TimesheetProject)getColumnValue(PROJECT_ID); } public double getQuantity() { return ((Double) getColumnValue(QUANTITY)).doubleValue(); } public void setQuantity(double qty) { setColumn(QUANTITY, new Double(qty)); } public String getDescription() { return getStringColumnValue(DESCRIPTION); } public void setDescription(String description) { setColumn(DESCRIPTION, description); } public boolean isBooked() { return ((Boolean) getColumnValue(BOOKED)).booleanValue(); } public void setBooked(boolean booked) { setColumn(BOOKED, booked); } public boolean isRegistered() { return ((Boolean) getColumnValue(REGISTERED)).booleanValue(); } public void setRegistered(boolean registered) { setColumn(REGISTERED, registered); } public int ejbHomeCountByUserBeforeDate(Integer userID,Date date)throws IDOException{ return idoGetNumberOfRecords(getQueryByUserBeforeDate(userID,date)); } private IDOQuery getQueryByUserBeforeDate(Integer userID,Date date){ return super.idoQueryGetSelect().appendWhereEquals(USER_ID,userID).appendAnd().append(ENTRY_DATE).appendLessThanSign().append(date).appendAndEqualsQuoted(BOOKED,"N"); } public Collection ejbFindUnbookedByUserBeforeDate(Integer userID,Date date)throws FinderException{ return super.idoFindPKsByQuery(getQueryByUserBeforeDate(userID,date).appendOrderBy(ENTRY_DATE)); } public Collection ejbFindByDateAndUser(java.sql.Date date, Integer userID) throws FinderException { String[] orderBy = {TIMESHEET_ENTRY_ID,PROJECT_ID}; return super.idoFindPKsByQuery(super.idoQueryGetSelect().appendWhereEquals(ENTRY_DATE,date).appendAndEquals(USER_ID,userID.intValue()).appendOrderBy(orderBy)); } public Collection ejbFindByProjectWithinPeriod(Integer projectID,java.sql.Date dateFrom,java.sql.Date dateTo)throws FinderException{ return ejbFindByUserAndProjectWithinPeriod(null,projectID,dateFrom,dateTo); } public Collection ejbFindByUserWithinPeriod(Integer userID,java.sql.Date dateFrom,java.sql.Date dateTo)throws FinderException{ return ejbFindByUserAndProjectWithinPeriod(userID,null,dateFrom,dateTo); } private IDOQuery queryByUserAndProjectWithinPeriod(Integer userID,Integer projectID,java.sql.Date dateFrom,java.sql.Date dateTo){ IDOQuery query = idoQueryGetSelect(); query.appendWhere().appendWithinDates(ENTRY_DATE,dateFrom,dateTo); if(projectID!=null) { query.appendAndEquals(PROJECT_ID,projectID); } if(userID!=null) { query.appendAndEquals(USER_ID,userID); } return query; } public Collection ejbFindByUserAndProjectWithinPeriod(Integer userID,Integer projectID,java.sql.Date dateFrom,java.sql.Date dateTo)throws FinderException{ return super.idoFindPKsByQuery(queryByUserAndProjectWithinPeriod(userID,projectID,dateFrom,dateTo)); } public Collection ejbFindUnbookedByUserWithinPeriod(Integer userID,Date fromDate,Date toDate)throws FinderException{ String[] orderBy = {ENTRY_DATE,PROJECT_ID}; return super.idoFindPKsByQuery(queryByUserAndProjectWithinPeriod(userID,null,fromDate,toDate).appendAndEqualsQuoted(BOOKED,"N").appendAndEqualsQuoted(REGISTERED,"N").appendOrderBy(orderBy)); } public Collection ejbFindBookedByUserWithinPeriod(Integer userID,Date fromDate,Date toDate)throws FinderException{ String[] orderBy = {ENTRY_DATE,PROJECT_ID}; return super.idoFindPKsByQuery(queryByUserAndProjectWithinPeriod(userID,null,fromDate,toDate).appendAndEqualsQuoted(BOOKED,"Y").appendAndEqualsQuoted(REGISTERED,"N").appendOrderBy(orderBy)); } }