package is.idega.idegaweb.marathon.data; import java.util.Collection; import javax.ejb.FinderException; import com.idega.data.GenericEntity; import com.idega.data.IDOException; import com.idega.data.IDORelationshipException; import com.idega.data.query.Column; import com.idega.data.query.CountColumn; import com.idega.data.query.MatchCriteria; import com.idega.data.query.SelectQuery; import com.idega.data.query.Table; import com.idega.util.IWTimestamp; public class PledgeBMPBean extends GenericEntity implements Pledge { /** * Comment for <code>serialVersionUID</code> */ private static final long serialVersionUID = 5020328074040406111L; protected static final String ENTITY_NAME = "run_pledge"; protected static final String COLUMN_NAME_PARTICIPANT_ID = "participant_id"; protected static final String COLUMN_NAME_ORGANIZATIONAL_ID = "organizational_id"; protected static final String COLUMN_NAME_CARDHOLDER_NAME = "cardholder_name"; protected static final String COLUMN_NAME_AMOUNT_PAYED = "amount_payed"; protected static final String COLUMN_NAME_PAYMENT_TIMESTAMP = "payment_timestamp"; public String getEntityName() { return ENTITY_NAME; } public void initializeAttributes() { addAttribute(getIDColumnName()); addManyToOneRelationship(COLUMN_NAME_PARTICIPANT_ID, "Participant ID", Participant.class); addAttribute(COLUMN_NAME_ORGANIZATIONAL_ID, "Organizational ID", true, true, String.class); addAttribute(COLUMN_NAME_CARDHOLDER_NAME, "Cardholder name", true, true, String.class); addAttribute(COLUMN_NAME_AMOUNT_PAYED, "Amount payed", true, true, String.class); addAttribute(COLUMN_NAME_PAYMENT_TIMESTAMP, "Payment timestamp", true, true, String.class); } public int getParticipantID() { return getIntColumnValue(COLUMN_NAME_PARTICIPANT_ID); } public Participant getParticipant() { return (Participant) getColumnValue(COLUMN_NAME_PARTICIPANT_ID); } public String getOrganizationalID() { return (String) getColumnValue(COLUMN_NAME_ORGANIZATIONAL_ID); } public String getCardholderName() { return (String) getColumnValue(COLUMN_NAME_CARDHOLDER_NAME); } public String getAmountPayed() { return (String) getColumnValue(COLUMN_NAME_AMOUNT_PAYED); } public String getPaymentTimestamp() { return (String) getColumnValue(COLUMN_NAME_PAYMENT_TIMESTAMP); } public void setParticipantID(int participantID) { setColumn(COLUMN_NAME_PARTICIPANT_ID, participantID); } public void setParticipant(Participant participant) { setColumn(COLUMN_NAME_PARTICIPANT_ID, participant); } public void setOrganizationalID(String organizationalID) { setColumn(COLUMN_NAME_ORGANIZATIONAL_ID, organizationalID); } public void setCardholderName(String cardholderName) { setColumn(COLUMN_NAME_CARDHOLDER_NAME, cardholderName); } public void setAmountPayed(String amountPayed) { setColumn(COLUMN_NAME_AMOUNT_PAYED, amountPayed); } public void setPaymentTimestamp(String paymentTimestamp) { setColumn(COLUMN_NAME_PAYMENT_TIMESTAMP, paymentTimestamp); } public Collection ejbFindAllPledges() throws FinderException { SelectQuery query = idoSelectQuery(); return idoFindPKsByQuery(query); } public Collection ejbFindAllPledgesForUser(int userID) throws IDORelationshipException, FinderException { Table table = new Table(this); Table runTable = new Table(Participant.class); Column pledgesIDColumn = new Column(table, getIDColumnName()); Column userIDColumn = new Column(runTable, ParticipantBMPBean.getColumnNameUserID()); SelectQuery query = new SelectQuery(table); query.addJoin(table, runTable); query.addColumn(pledgesIDColumn); query.addCriteria(new MatchCriteria(userIDColumn, MatchCriteria.EQUALS, userID)); return this.idoFindPKsByQuery(query); } public int ejbHomeGetNumberOfPledgesByParticipants(Participant participant) throws IDOException { Table table = new Table(this); SelectQuery query = new SelectQuery(table); query.addColumn(new CountColumn(getIDColumnName())); query.addCriteria(new MatchCriteria(table, COLUMN_NAME_PARTICIPANT_ID, MatchCriteria.EQUALS, participant)); return idoGetNumberOfRecords(query); } public Collection ejbFindAllByDateAndCharity(IWTimestamp date, String charityID) throws IDORelationshipException, FinderException { Table table = new Table(this); Table runTable = new Table(Participant.class); Column pledgesIDColumn = new Column(table, getIDColumnName()); SelectQuery query = new SelectQuery(table); query.addColumn(pledgesIDColumn); query.addCriteria(new MatchCriteria(table, COLUMN_NAME_PAYMENT_TIMESTAMP, MatchCriteria.GREATEREQUAL, date)); if (charityID != null) { query.addCriteria(new MatchCriteria(table, COLUMN_NAME_ORGANIZATIONAL_ID, MatchCriteria.EQUALS, charityID)); } System.out.println("sql = " + query.toString()); return this.idoFindPKsByQuery(query); } }