package com.idega.block.timesheet.data;
import java.sql.SQLException;
import java.util.Collection;
import javax.ejb.FinderException;
import com.idega.block.projectmanager.data.Project;
import com.idega.block.projectmanager.data.ProjectBMPBean;
import com.idega.data.IDOAddRelationshipException;
import com.idega.data.IDOQuery;
import com.idega.data.IDORelationshipException;
import com.idega.data.IDORemoveRelationshipException;
import com.idega.user.data.User;
/**
* Title: idegaWeb TravelBooking
* Description:
* Copyright: Copyright (c) 2001
* Company: idega
* @author <a href="mailto:gimmi@idega.is">Grimur Jonsson</a>
* @version 1.0
*/
public class TimesheetProjectBMPBean extends ProjectBMPBean implements TimesheetProject,Project {
public TimesheetProjectBMPBean() {
super();
}
public TimesheetProjectBMPBean(int id) throws SQLException {
super(id);
}
public void initializeAttributes(){
super.initializeAttributes();
this.addManyToManyRelationShip(User.class);
}
public void insertStartData() {
}
public Collection getUsers() {
try {
return super.idoGetRelatedEntities(User.class);
}
catch (Exception e) {
e.printStackTrace();
throw new RuntimeException("Error in getUsers() : " + e.getMessage());
}
}
public Collection ejbFindUserRelated(User user) throws FinderException{
try {
return super.idoGetReverseRelatedEntities(user);
}
catch (IDORelationshipException e) {
throw new FinderException(e.getMessage());
}
}
public Collection ejbFindEntryRelatedByUserWithinPeriod(Integer userID,java.sql.Date fromDate,java.sql.Date toDate) throws FinderException{
IDOQuery query = super.idoQuery().appendSelect().appendDistinct().append(" P.* ");
String[] tables ={TimesheetEntryBMPBean.TIMESHEET_ENTRY,ProjectBMPBean.PROJECT};
String[] prm ={"E","P"};
query.appendFrom(tables,prm);
query.appendWhereEquals(TimesheetEntryBMPBean.USER_ID,userID.intValue());
query.appendAnd().append(" E.").append(TimesheetEntryBMPBean.PROJECT_ID).append("=").append(" P.").append(ProjectBMPBean.PROJECT_ID);
query.appendAnd().appendWithinDates(TimesheetEntryBMPBean.ENTRY_DATE,fromDate,toDate);
System.out.println(query.toString());
return super.idoFindPKsByQuery(query);
}
public void addUser(User user) throws IDOAddRelationshipException {
this.idoAddTo(user);
}
public void removeUser(User user) throws IDORemoveRelationshipException {
this.idoRemoveFrom(user);
}
/* (non-Javadoc)
* @see com.idega.block.projectmanager.data.ProjectBMPBean#ejbFindAllOrderByNumber()
*/
public Collection ejbFindAllOrderByNumber() throws FinderException {
// TODO Auto-generated method stub
return super.ejbFindAllOrderByNumber();
}
}