package is.idega.idegaweb.marathon.business; import is.idega.idegaweb.marathon.data.Participant; import is.idega.idegaweb.marathon.data.Pledge; import is.idega.idegaweb.marathon.data.PledgeHome; import java.rmi.RemoteException; import java.util.ArrayList; import java.util.Collection; import java.util.Iterator; import javax.ejb.CreateException; import javax.ejb.EJBException; import javax.ejb.FinderException; import javax.transaction.UserTransaction; import com.idega.business.IBORuntimeException; import com.idega.business.IBOServiceBean; import com.idega.data.IDOCreateException; import com.idega.data.IDOException; import com.idega.data.IDOLookup; import com.idega.data.IDORelationshipException; import com.idega.util.IWTimestamp; public class PledgeBusinessBean extends IBOServiceBean implements PledgeBusiness { /** * Comment for <code>serialVersionUID</code> */ private static final long serialVersionUID = -5126037977109694680L; private PledgeHome PledgeHome; public Collection getPledges() throws EJBException { try { return getPledgeHome().findAllPledges(); } catch (FinderException fe) { return null; } } public int getNumberOfPledgesForParticipant(Participant participant) { try { return getPledgeHome().getNumberOfPledgesByParticipants(participant); } catch (IDOException e) { e.printStackTrace(); } return 0; } public Collection getPledgesForUser(int userID) throws EJBException { try { return getPledgeHome().findAllPledgesForUser(userID); } catch (IDORelationshipException e) { e.printStackTrace(); return null; } catch (FinderException fe) { return null; } } public Collection saveParticipants(Collection pledgeHolders) throws IDOCreateException { Pledge pledge = null; UserTransaction trans = getSessionContext().getUserTransaction(); try { trans.begin(); try { Iterator runIT = pledgeHolders.iterator(); PledgeHolder pledgeHolder = null; if (runIT.hasNext()) { pledgeHolder = (PledgeHolder)runIT.next(); } if (pledgeHolder != null) { PledgeHome pledgeHome = (PledgeHome) getIDOHome(Pledge.class); pledge = pledgeHome.create(); pledge.setParticipant(pledgeHolder.getParticipant()); pledge.setOrganizationalID(pledgeHolder.getParticipant().getCharityId()); pledge.setCardholderName(pledgeHolder.getCardHolderName()); pledge.setAmountPayed(String.valueOf(pledgeHolder.getPledgeAmount())); pledge.setPaymentTimestamp(IWTimestamp.getTimestampRightNow().toString()); pledge.store(); } } catch (CreateException ce) { ce.printStackTrace(); } catch (RemoteException re) { throw new IBORuntimeException(re); } trans.commit(); } catch (Exception ex) { try { trans.rollback(); } catch (javax.transaction.SystemException e) { throw new IDOCreateException(e.getMessage()); } ex.printStackTrace(); throw new IDOCreateException(ex); } Collection pledges = new ArrayList(); pledges.add(pledge); return pledges; } public PledgeHome getPledgeHome() { if (this.PledgeHome == null) { try { this.PledgeHome = (PledgeHome) IDOLookup.getHome(Pledge.class); } catch (RemoteException rme) { throw new RuntimeException(rme.getMessage()); } } return this.PledgeHome; } }