[jboss-cvs] JBossAS SVN: r97915 - in projects/snowdrop/examples/trunk/sportsclub: sportsclub-domain and 8 other directories.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Wed Dec 16 16:00:46 EST 2009
Author: marius.bogoevici
Date: 2009-12-16 16:00:45 -0500 (Wed, 16 Dec 2009)
New Revision: 97915
Added:
projects/snowdrop/examples/trunk/sportsclub/sportsclub-domain/src/main/java/org/jboss/snowdrop/samples/sportsclub/domain/entity/Balance.java
projects/snowdrop/examples/trunk/sportsclub/sportsclub-domain/src/main/java/org/jboss/snowdrop/samples/sportsclub/domain/entity/Payment.java
projects/snowdrop/examples/trunk/sportsclub/sportsclub-domain/src/main/java/org/jboss/snowdrop/samples/sportsclub/domain/repository/BalanceRepository.java
projects/snowdrop/examples/trunk/sportsclub/sportsclub-domain/src/main/java/org/jboss/snowdrop/samples/sportsclub/domain/repository/PaymentRepository.java
projects/snowdrop/examples/trunk/sportsclub/sportsclub-hibernate-dao/src/main/java/org/jboss/snowdrop/samples/sportsclub/dao/hibernate/HibernateBalanceRepository.java
projects/snowdrop/examples/trunk/sportsclub/sportsclub-hibernate-dao/src/main/java/org/jboss/snowdrop/samples/sportsclub/dao/hibernate/HibernatePaymentRepository.java
Modified:
projects/snowdrop/examples/trunk/sportsclub/pom.xml
projects/snowdrop/examples/trunk/sportsclub/sportsclub-domain/pom.xml
projects/snowdrop/examples/trunk/sportsclub/sportsclub-domain/src/main/java/org/jboss/snowdrop/samples/sportsclub/domain/entity/Account.java
projects/snowdrop/examples/trunk/sportsclub/sportsclub-domain/src/main/java/org/jboss/snowdrop/samples/sportsclub/domain/entity/BillingType.java
projects/snowdrop/examples/trunk/sportsclub/sportsclub-domain/src/main/java/org/jboss/snowdrop/samples/sportsclub/domain/entity/Equipment.java
projects/snowdrop/examples/trunk/sportsclub/sportsclub-domain/src/main/java/org/jboss/snowdrop/samples/sportsclub/domain/entity/Invoice.java
projects/snowdrop/examples/trunk/sportsclub/sportsclub-domain/src/main/java/org/jboss/snowdrop/samples/sportsclub/domain/entity/Person.java
projects/snowdrop/examples/trunk/sportsclub/sportsclub-domain/src/main/java/org/jboss/snowdrop/samples/sportsclub/domain/entity/Reservation.java
projects/snowdrop/examples/trunk/sportsclub/sportsclub-domain/src/main/java/org/jboss/snowdrop/samples/sportsclub/domain/repository/InvoiceRepository.java
projects/snowdrop/examples/trunk/sportsclub/sportsclub-hibernate-dao/src/main/java/org/jboss/snowdrop/samples/sportsclub/dao/hibernate/HibernateInvoiceRepository.java
projects/snowdrop/examples/trunk/sportsclub/sportsclub-hibernate-dao/src/main/java/org/jboss/snowdrop/samples/sportsclub/dao/hibernate/initializer/DatabaseInitializer.java
projects/snowdrop/examples/trunk/sportsclub/sportsclub-hibernate-dao/src/main/resources/hibernate/hibernate.cfg.xml
projects/snowdrop/examples/trunk/sportsclub/sportsclub-invoicing-spring/src/main/java/org/jboss/spring/samples/sportsclub/invoicing/services/BillingService.java
projects/snowdrop/examples/trunk/sportsclub/sportsclub-invoicing-spring/src/main/java/org/jboss/spring/samples/sportsclub/invoicing/services/BillingServiceImpl.java
projects/snowdrop/examples/trunk/sportsclub/sportsclub-subscriptions-ejb/src/main/java/org/jboss/snowdrop/samples/sportsclub/ejb/SubscriptionServiceImpl.java
projects/snowdrop/examples/trunk/sportsclub/sportsclub-subscriptions-web/src/main/webapp/searchForm.xhtml
Log:
add domain and business logic for invoicing.
Modified: projects/snowdrop/examples/trunk/sportsclub/pom.xml
===================================================================
--- projects/snowdrop/examples/trunk/sportsclub/pom.xml 2009-12-16 19:11:40 UTC (rev 97914)
+++ projects/snowdrop/examples/trunk/sportsclub/pom.xml 2009-12-16 21:00:45 UTC (rev 97915)
@@ -56,6 +56,13 @@
<scope>provided</scope>
</dependency>
+ <dependency>
+ <groupId>org.hibernate</groupId>
+ <artifactId>hibernate-annotations</artifactId>
+ <version>3.3.1.GA</version>
+ <scope>provided</scope>
+ </dependency>
+
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-annotations</artifactId>
@@ -144,6 +151,14 @@
</dependencies>
</dependencyManagement>
+ <dependencies>
+ <dependency>
+ <groupId>org.hibernate</groupId>
+ <artifactId>hibernate-annotations</artifactId>
+ </dependency>
+
+ </dependencies>
+
<build>
<plugins>
<plugin>
Modified: projects/snowdrop/examples/trunk/sportsclub/sportsclub-domain/pom.xml
===================================================================
--- projects/snowdrop/examples/trunk/sportsclub/sportsclub-domain/pom.xml 2009-12-16 19:11:40 UTC (rev 97914)
+++ projects/snowdrop/examples/trunk/sportsclub/sportsclub-domain/pom.xml 2009-12-16 21:00:45 UTC (rev 97915)
@@ -17,5 +17,10 @@
<groupId>org.hibernate</groupId>
<artifactId>ejb3-persistence</artifactId>
</dependency>
+
+ <dependency>
+ <groupId>org.hibernate</groupId>
+ <artifactId>hibernate-annotations</artifactId>
+ </dependency>
</dependencies>
</project>
\ No newline at end of file
Modified: projects/snowdrop/examples/trunk/sportsclub/sportsclub-domain/src/main/java/org/jboss/snowdrop/samples/sportsclub/domain/entity/Account.java
===================================================================
--- projects/snowdrop/examples/trunk/sportsclub/sportsclub-domain/src/main/java/org/jboss/snowdrop/samples/sportsclub/domain/entity/Account.java 2009-12-16 19:11:40 UTC (rev 97914)
+++ projects/snowdrop/examples/trunk/sportsclub/sportsclub-domain/src/main/java/org/jboss/snowdrop/samples/sportsclub/domain/entity/Account.java 2009-12-16 21:00:45 UTC (rev 97915)
@@ -1,10 +1,16 @@
package org.jboss.snowdrop.samples.sportsclub.domain.entity;
-import org.jboss.snowdrop.samples.sportsclub.domain.entity.Person;
-
-import javax.persistence.*;
+import java.math.BigDecimal;
import java.util.Date;
+import javax.persistence.CascadeType;
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.Id;
+import javax.persistence.ManyToOne;
+import javax.persistence.OneToOne;
+import javax.persistence.PrimaryKeyJoinColumn;
+
/**
* @author <a href="mailto:mariusb at redhat.com">Marius Bogoevici</a>
*/
@@ -17,6 +23,10 @@
@OneToOne(cascade = {CascadeType.ALL})
private Person subscriber;
+ @OneToOne(cascade = {CascadeType.ALL})
+ @PrimaryKeyJoinColumn
+ private Balance balance;
+
private Date creationDate;
@ManyToOne
@@ -94,6 +104,21 @@
this.closeDate = closeDate;
}
+ public BigDecimal getFeePerBillingPeriod()
+ {
+ return membership.getAnnualFee().divide(BigDecimal.valueOf(billingType.periodsPerYear()));
+ }
+ public Balance getBalance()
+ {
+ return balance;
+ }
+
+ public void resetBalance()
+ {
+ this.balance = new Balance();
+ this.balance.setAccount(this);
+ this.balance.setCurrentBalance(BigDecimal.ZERO);
+ }
}
Added: projects/snowdrop/examples/trunk/sportsclub/sportsclub-domain/src/main/java/org/jboss/snowdrop/samples/sportsclub/domain/entity/Balance.java
===================================================================
--- projects/snowdrop/examples/trunk/sportsclub/sportsclub-domain/src/main/java/org/jboss/snowdrop/samples/sportsclub/domain/entity/Balance.java (rev 0)
+++ projects/snowdrop/examples/trunk/sportsclub/sportsclub-domain/src/main/java/org/jboss/snowdrop/samples/sportsclub/domain/entity/Balance.java 2009-12-16 21:00:45 UTC (rev 97915)
@@ -0,0 +1,64 @@
+package org.jboss.snowdrop.samples.sportsclub.domain.entity;
+
+import java.math.BigDecimal;
+
+import javax.annotation.Generated;
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.Id;
+import javax.persistence.OneToOne;
+
+import org.hibernate.annotations.GenericGenerator;
+import org.hibernate.annotations.Parameter;
+
+ at Entity
+public class Balance
+{
+ @Id
+ @GeneratedValue(generator = "foreign")
+ @GenericGenerator(
+ name = "foreign", strategy = "foreign", parameters = {@Parameter(name = "property", value = "account")}
+ )
+ private Long id;
+
+ @OneToOne(mappedBy = "balance")
+ private Account account;
+
+ private BigDecimal currentBalance;
+
+
+ public Long getId()
+ {
+ return id;
+ }
+
+ public Account getAccount()
+ {
+ return account;
+ }
+
+ public void setAccount(Account account)
+ {
+ this.account = account;
+ }
+
+ public BigDecimal getCurrentBalance()
+ {
+ return currentBalance;
+ }
+
+ public void setCurrentBalance(BigDecimal currentBalance)
+ {
+ this.currentBalance = currentBalance;
+ }
+
+ public void credit(BigDecimal amount)
+ {
+ this.currentBalance.subtract(amount);
+ }
+
+ public void debit(BigDecimal amount)
+ {
+ this.currentBalance.add(amount);
+ }
+}
Modified: projects/snowdrop/examples/trunk/sportsclub/sportsclub-domain/src/main/java/org/jboss/snowdrop/samples/sportsclub/domain/entity/BillingType.java
===================================================================
--- projects/snowdrop/examples/trunk/sportsclub/sportsclub-domain/src/main/java/org/jboss/snowdrop/samples/sportsclub/domain/entity/BillingType.java 2009-12-16 19:11:40 UTC (rev 97914)
+++ projects/snowdrop/examples/trunk/sportsclub/sportsclub-domain/src/main/java/org/jboss/snowdrop/samples/sportsclub/domain/entity/BillingType.java 2009-12-16 21:00:45 UTC (rev 97915)
@@ -5,9 +5,23 @@
*/
public enum BillingType
{
- MONTHLY,
+ MONTHLY(12),
- BIWEEKLY,
+ SEMIMONTHLY(24),
- WEEKLY
+ BIWEEKLY(26),
+
+ WEEKLY(52);
+
+ private int periods;
+
+ BillingType(int periods)
+ {
+ this.periods = periods;
+ }
+
+ public int periodsPerYear()
+ {
+ return periods;
+ }
}
Modified: projects/snowdrop/examples/trunk/sportsclub/sportsclub-domain/src/main/java/org/jboss/snowdrop/samples/sportsclub/domain/entity/Equipment.java
===================================================================
--- projects/snowdrop/examples/trunk/sportsclub/sportsclub-domain/src/main/java/org/jboss/snowdrop/samples/sportsclub/domain/entity/Equipment.java 2009-12-16 19:11:40 UTC (rev 97914)
+++ projects/snowdrop/examples/trunk/sportsclub/sportsclub-domain/src/main/java/org/jboss/snowdrop/samples/sportsclub/domain/entity/Equipment.java 2009-12-16 21:00:45 UTC (rev 97915)
@@ -1,6 +1,9 @@
package org.jboss.snowdrop.samples.sportsclub.domain.entity;
-import javax.persistence.*;
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.Id;
/**
* @author <a href="mailto:mariusb at redhat.com">Marius Bogoevici</a>
Modified: projects/snowdrop/examples/trunk/sportsclub/sportsclub-domain/src/main/java/org/jboss/snowdrop/samples/sportsclub/domain/entity/Invoice.java
===================================================================
--- projects/snowdrop/examples/trunk/sportsclub/sportsclub-domain/src/main/java/org/jboss/snowdrop/samples/sportsclub/domain/entity/Invoice.java 2009-12-16 19:11:40 UTC (rev 97914)
+++ projects/snowdrop/examples/trunk/sportsclub/sportsclub-domain/src/main/java/org/jboss/snowdrop/samples/sportsclub/domain/entity/Invoice.java 2009-12-16 21:00:45 UTC (rev 97915)
@@ -4,7 +4,7 @@
import javax.persistence.Id;
import javax.persistence.ManyToOne;
import java.math.BigDecimal;
-import java.sql.Date;
+import java.util.Date;
/**
* @author <a href="mailto:mariusb at redhat.com">Marius Bogoevici</a>
Added: projects/snowdrop/examples/trunk/sportsclub/sportsclub-domain/src/main/java/org/jboss/snowdrop/samples/sportsclub/domain/entity/Payment.java
===================================================================
--- projects/snowdrop/examples/trunk/sportsclub/sportsclub-domain/src/main/java/org/jboss/snowdrop/samples/sportsclub/domain/entity/Payment.java (rev 0)
+++ projects/snowdrop/examples/trunk/sportsclub/sportsclub-domain/src/main/java/org/jboss/snowdrop/samples/sportsclub/domain/entity/Payment.java 2009-12-16 21:00:45 UTC (rev 97915)
@@ -0,0 +1,57 @@
+package org.jboss.snowdrop.samples.sportsclub.domain.entity;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+import javax.persistence.Entity;
+import javax.persistence.Id;
+import javax.persistence.ManyToOne;
+
+ at Entity
+public class Payment
+{
+ @Id
+ Long id;
+
+ private BigDecimal amount;
+
+ @ManyToOne
+ private Account account;
+
+ private Date date;
+
+ public Long getId()
+ {
+ return id;
+ }
+
+ public BigDecimal getAmount()
+ {
+ return amount;
+ }
+
+ public void setAmount(BigDecimal amount)
+ {
+ this.amount = amount;
+ }
+
+ public Account getAccount()
+ {
+ return account;
+ }
+
+ public void setAccount(Account account)
+ {
+ this.account = account;
+ }
+
+ public Date getDate()
+ {
+ return date;
+ }
+
+ public void setDate(Date date)
+ {
+ this.date = date;
+ }
+}
Modified: projects/snowdrop/examples/trunk/sportsclub/sportsclub-domain/src/main/java/org/jboss/snowdrop/samples/sportsclub/domain/entity/Person.java
===================================================================
--- projects/snowdrop/examples/trunk/sportsclub/sportsclub-domain/src/main/java/org/jboss/snowdrop/samples/sportsclub/domain/entity/Person.java 2009-12-16 19:11:40 UTC (rev 97914)
+++ projects/snowdrop/examples/trunk/sportsclub/sportsclub-domain/src/main/java/org/jboss/snowdrop/samples/sportsclub/domain/entity/Person.java 2009-12-16 21:00:45 UTC (rev 97915)
@@ -1,9 +1,5 @@
package org.jboss.snowdrop.samples.sportsclub.domain.entity;
-import org.jboss.snowdrop.samples.sportsclub.domain.entity.Address;
-import org.jboss.snowdrop.samples.sportsclub.domain.entity.Name;
-
-import javax.persistence.CascadeType;
import javax.persistence.Embedded;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
Modified: projects/snowdrop/examples/trunk/sportsclub/sportsclub-domain/src/main/java/org/jboss/snowdrop/samples/sportsclub/domain/entity/Reservation.java
===================================================================
--- projects/snowdrop/examples/trunk/sportsclub/sportsclub-domain/src/main/java/org/jboss/snowdrop/samples/sportsclub/domain/entity/Reservation.java 2009-12-16 19:11:40 UTC (rev 97914)
+++ projects/snowdrop/examples/trunk/sportsclub/sportsclub-domain/src/main/java/org/jboss/snowdrop/samples/sportsclub/domain/entity/Reservation.java 2009-12-16 21:00:45 UTC (rev 97915)
@@ -1,8 +1,13 @@
package org.jboss.snowdrop.samples.sportsclub.domain.entity;
-import javax.persistence.*;
import java.util.Date;
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.Id;
+import javax.persistence.ManyToOne;
+
/**
* @author <a href="mailto:mariusb at redhat.com">Marius Bogoevici</a>
*/
Added: projects/snowdrop/examples/trunk/sportsclub/sportsclub-domain/src/main/java/org/jboss/snowdrop/samples/sportsclub/domain/repository/BalanceRepository.java
===================================================================
--- projects/snowdrop/examples/trunk/sportsclub/sportsclub-domain/src/main/java/org/jboss/snowdrop/samples/sportsclub/domain/repository/BalanceRepository.java (rev 0)
+++ projects/snowdrop/examples/trunk/sportsclub/sportsclub-domain/src/main/java/org/jboss/snowdrop/samples/sportsclub/domain/repository/BalanceRepository.java 2009-12-16 21:00:45 UTC (rev 97915)
@@ -0,0 +1,17 @@
+package org.jboss.snowdrop.samples.sportsclub.domain.repository;
+
+import org.jboss.snowdrop.samples.sportsclub.domain.entity.Account;
+import org.jboss.snowdrop.samples.sportsclub.domain.entity.Balance;
+
+/**
+ * Created by IntelliJ IDEA.
+ * User: marius
+ * Date: 16-Dec-2009
+ * Time: 2:27:38 PM
+ * To change this template use File | Settings | File Templates.
+ */
+public interface BalanceRepository extends Repository<Balance, Long>
+{
+
+ Balance findForAccount(Account account);
+}
Modified: projects/snowdrop/examples/trunk/sportsclub/sportsclub-domain/src/main/java/org/jboss/snowdrop/samples/sportsclub/domain/repository/InvoiceRepository.java
===================================================================
--- projects/snowdrop/examples/trunk/sportsclub/sportsclub-domain/src/main/java/org/jboss/snowdrop/samples/sportsclub/domain/repository/InvoiceRepository.java 2009-12-16 19:11:40 UTC (rev 97914)
+++ projects/snowdrop/examples/trunk/sportsclub/sportsclub-domain/src/main/java/org/jboss/snowdrop/samples/sportsclub/domain/repository/InvoiceRepository.java 2009-12-16 21:00:45 UTC (rev 97915)
@@ -1,8 +1,12 @@
package org.jboss.snowdrop.samples.sportsclub.domain.repository;
+import java.util.List;
+
+import org.jboss.snowdrop.samples.sportsclub.domain.entity.Account;
import org.jboss.snowdrop.samples.sportsclub.domain.entity.Invoice;
public interface InvoiceRepository extends Repository<Invoice, Long>
{
+ List<Invoice> findForAccount(Account account);
}
Added: projects/snowdrop/examples/trunk/sportsclub/sportsclub-domain/src/main/java/org/jboss/snowdrop/samples/sportsclub/domain/repository/PaymentRepository.java
===================================================================
--- projects/snowdrop/examples/trunk/sportsclub/sportsclub-domain/src/main/java/org/jboss/snowdrop/samples/sportsclub/domain/repository/PaymentRepository.java (rev 0)
+++ projects/snowdrop/examples/trunk/sportsclub/sportsclub-domain/src/main/java/org/jboss/snowdrop/samples/sportsclub/domain/repository/PaymentRepository.java 2009-12-16 21:00:45 UTC (rev 97915)
@@ -0,0 +1,8 @@
+package org.jboss.snowdrop.samples.sportsclub.domain.repository;
+
+import org.jboss.snowdrop.samples.sportsclub.domain.entity.Payment;
+
+public interface PaymentRepository extends Repository<Payment, Long>
+{
+
+}
Added: projects/snowdrop/examples/trunk/sportsclub/sportsclub-hibernate-dao/src/main/java/org/jboss/snowdrop/samples/sportsclub/dao/hibernate/HibernateBalanceRepository.java
===================================================================
--- projects/snowdrop/examples/trunk/sportsclub/sportsclub-hibernate-dao/src/main/java/org/jboss/snowdrop/samples/sportsclub/dao/hibernate/HibernateBalanceRepository.java (rev 0)
+++ projects/snowdrop/examples/trunk/sportsclub/sportsclub-hibernate-dao/src/main/java/org/jboss/snowdrop/samples/sportsclub/dao/hibernate/HibernateBalanceRepository.java 2009-12-16 21:00:45 UTC (rev 97915)
@@ -0,0 +1,34 @@
+package org.jboss.snowdrop.samples.sportsclub.dao.hibernate;
+
+import java.math.BigDecimal;
+import java.util.List;
+
+import org.jboss.snowdrop.samples.sportsclub.domain.entity.Account;
+import org.jboss.snowdrop.samples.sportsclub.domain.entity.Balance;
+import org.jboss.snowdrop.samples.sportsclub.domain.entity.Payment;
+import org.jboss.snowdrop.samples.sportsclub.domain.repository.BalanceRepository;
+
+import org.hibernate.Criteria;
+import org.hibernate.criterion.Restrictions;
+
+public class HibernateBalanceRepository extends HibernateRepository<Balance,Long> implements BalanceRepository
+{
+ public HibernateBalanceRepository()
+ {
+ super(Balance.class);
+ }
+
+ public Balance findForAccount(Account account)
+ {
+ Criteria criteria = getCurrentSession().createCriteria(Payment.class);
+ criteria.createCriteria("account").add(Restrictions.eq("id", account.getId()));
+ Balance balance = (Balance) criteria.uniqueResult();
+ if (balance == null)
+ {
+ balance = new Balance();
+ balance.setAccount(account);
+ balance.setCurrentBalance(BigDecimal.ZERO);
+ }
+ return balance;
+ }
+}
Modified: projects/snowdrop/examples/trunk/sportsclub/sportsclub-hibernate-dao/src/main/java/org/jboss/snowdrop/samples/sportsclub/dao/hibernate/HibernateInvoiceRepository.java
===================================================================
--- projects/snowdrop/examples/trunk/sportsclub/sportsclub-hibernate-dao/src/main/java/org/jboss/snowdrop/samples/sportsclub/dao/hibernate/HibernateInvoiceRepository.java 2009-12-16 19:11:40 UTC (rev 97914)
+++ projects/snowdrop/examples/trunk/sportsclub/sportsclub-hibernate-dao/src/main/java/org/jboss/snowdrop/samples/sportsclub/dao/hibernate/HibernateInvoiceRepository.java 2009-12-16 21:00:45 UTC (rev 97915)
@@ -1,14 +1,28 @@
package org.jboss.snowdrop.samples.sportsclub.dao.hibernate;
+import java.util.List;
+
+import javax.swing.plaf.basic.BasicInternalFrameTitlePane;
+
+import org.jboss.snowdrop.samples.sportsclub.domain.entity.Account;
import org.jboss.snowdrop.samples.sportsclub.domain.entity.Invoice;
import org.jboss.snowdrop.samples.sportsclub.domain.repository.InvoiceRepository;
+import org.hibernate.Criteria;
+import org.hibernate.criterion.Restrictions;
+
public class HibernateInvoiceRepository extends HibernateRepository<Invoice, Long> implements InvoiceRepository
{
public HibernateInvoiceRepository()
{
super(Invoice.class);
}
-
+
+ public List<Invoice> findForAccount(Account account)
+ {
+ Criteria criteria = getCurrentSession().createCriteria(Invoice.class);
+ criteria.createCriteria("account").add(Restrictions.eq("id", account.getId()));
+ return ((List<Invoice>) criteria.list());
+ }
}
Added: projects/snowdrop/examples/trunk/sportsclub/sportsclub-hibernate-dao/src/main/java/org/jboss/snowdrop/samples/sportsclub/dao/hibernate/HibernatePaymentRepository.java
===================================================================
--- projects/snowdrop/examples/trunk/sportsclub/sportsclub-hibernate-dao/src/main/java/org/jboss/snowdrop/samples/sportsclub/dao/hibernate/HibernatePaymentRepository.java (rev 0)
+++ projects/snowdrop/examples/trunk/sportsclub/sportsclub-hibernate-dao/src/main/java/org/jboss/snowdrop/samples/sportsclub/dao/hibernate/HibernatePaymentRepository.java 2009-12-16 21:00:45 UTC (rev 97915)
@@ -0,0 +1,26 @@
+package org.jboss.snowdrop.samples.sportsclub.dao.hibernate;
+
+import java.util.List;
+
+import org.jboss.snowdrop.samples.sportsclub.domain.entity.Account;
+import org.jboss.snowdrop.samples.sportsclub.domain.entity.Payment;
+import org.jboss.snowdrop.samples.sportsclub.domain.repository.PaymentRepository;
+
+import org.hibernate.Criteria;
+import org.hibernate.criterion.Restrictions;
+
+public class HibernatePaymentRepository extends HibernateRepository<Payment, Long> implements PaymentRepository
+{
+
+ public HibernatePaymentRepository()
+ {
+ super(Payment.class);
+ }
+
+ public List<Payment> findForAccount(Account account)
+ {
+ Criteria criteria = getCurrentSession().createCriteria(Payment.class);
+ criteria.createCriteria("account").add(Restrictions.eq("id", account.getId()));
+ return ((List<Payment>) criteria.list());
+ }
+}
Modified: projects/snowdrop/examples/trunk/sportsclub/sportsclub-hibernate-dao/src/main/java/org/jboss/snowdrop/samples/sportsclub/dao/hibernate/initializer/DatabaseInitializer.java
===================================================================
--- projects/snowdrop/examples/trunk/sportsclub/sportsclub-hibernate-dao/src/main/java/org/jboss/snowdrop/samples/sportsclub/dao/hibernate/initializer/DatabaseInitializer.java 2009-12-16 19:11:40 UTC (rev 97914)
+++ projects/snowdrop/examples/trunk/sportsclub/sportsclub-hibernate-dao/src/main/java/org/jboss/snowdrop/samples/sportsclub/dao/hibernate/initializer/DatabaseInitializer.java 2009-12-16 21:00:45 UTC (rev 97915)
@@ -144,6 +144,7 @@
account.setCreationDate(new Date());
account.setBillingType(billingType);
account.setMembership(silverMembership);
+ account.resetBalance();
account.setClosed(false);
return account;
}
Modified: projects/snowdrop/examples/trunk/sportsclub/sportsclub-hibernate-dao/src/main/resources/hibernate/hibernate.cfg.xml
===================================================================
--- projects/snowdrop/examples/trunk/sportsclub/sportsclub-hibernate-dao/src/main/resources/hibernate/hibernate.cfg.xml 2009-12-16 19:11:40 UTC (rev 97914)
+++ projects/snowdrop/examples/trunk/sportsclub/sportsclub-hibernate-dao/src/main/resources/hibernate/hibernate.cfg.xml 2009-12-16 21:00:45 UTC (rev 97915)
@@ -23,6 +23,8 @@
<mapping class="org.jboss.snowdrop.samples.sportsclub.domain.entity.Equipment"/>
<!--<mapping class="org.jboss.snowdrop.samples.sportsclub.domain.entity.Name"/>--> <!-- Embedded class -->
<mapping class="org.jboss.snowdrop.samples.sportsclub.domain.entity.Invoice"/>
+ <mapping class="org.jboss.snowdrop.samples.sportsclub.domain.entity.Balance"/>
+ <mapping class="org.jboss.snowdrop.samples.sportsclub.domain.entity.Payment"/>
<mapping class="org.jboss.snowdrop.samples.sportsclub.domain.entity.Membership"/>
<mapping class="org.jboss.snowdrop.samples.sportsclub.domain.entity.Person"/>
<mapping class="org.jboss.snowdrop.samples.sportsclub.domain.entity.Reservation"/>
Modified: projects/snowdrop/examples/trunk/sportsclub/sportsclub-invoicing-spring/src/main/java/org/jboss/spring/samples/sportsclub/invoicing/services/BillingService.java
===================================================================
--- projects/snowdrop/examples/trunk/sportsclub/sportsclub-invoicing-spring/src/main/java/org/jboss/spring/samples/sportsclub/invoicing/services/BillingService.java 2009-12-16 19:11:40 UTC (rev 97914)
+++ projects/snowdrop/examples/trunk/sportsclub/sportsclub-invoicing-spring/src/main/java/org/jboss/spring/samples/sportsclub/invoicing/services/BillingService.java 2009-12-16 21:00:45 UTC (rev 97915)
@@ -1,8 +1,12 @@
package org.jboss.spring.samples.sportsclub.invoicing.services;
+import java.math.BigDecimal;
+
import org.jboss.snowdrop.samples.sportsclub.domain.entity.Account;
public interface BillingService
{
- void submitInvoice(Account account);
+ void generateInvoice(Account account);
+
+ void processPayment(Account account, BigDecimal amount);
}
Modified: projects/snowdrop/examples/trunk/sportsclub/sportsclub-invoicing-spring/src/main/java/org/jboss/spring/samples/sportsclub/invoicing/services/BillingServiceImpl.java
===================================================================
--- projects/snowdrop/examples/trunk/sportsclub/sportsclub-invoicing-spring/src/main/java/org/jboss/spring/samples/sportsclub/invoicing/services/BillingServiceImpl.java 2009-12-16 19:11:40 UTC (rev 97914)
+++ projects/snowdrop/examples/trunk/sportsclub/sportsclub-invoicing-spring/src/main/java/org/jboss/spring/samples/sportsclub/invoicing/services/BillingServiceImpl.java 2009-12-16 21:00:45 UTC (rev 97915)
@@ -1,15 +1,64 @@
package org.jboss.spring.samples.sportsclub.invoicing.services;
+import java.math.BigDecimal;
+import java.util.Date;
+
import org.jboss.snowdrop.samples.sportsclub.domain.entity.Account;
+import org.jboss.snowdrop.samples.sportsclub.domain.entity.Balance;
import org.jboss.snowdrop.samples.sportsclub.domain.entity.Invoice;
+import org.jboss.snowdrop.samples.sportsclub.domain.entity.Payment;
+import org.jboss.snowdrop.samples.sportsclub.domain.repository.BalanceRepository;
+import org.jboss.snowdrop.samples.sportsclub.domain.repository.InvoiceRepository;
+import org.jboss.snowdrop.samples.sportsclub.domain.repository.PaymentRepository;
public class BillingServiceImpl implements BillingService
{
+ private InvoiceRepository invoiceRepository;
+ private BalanceRepository balanceRepository;
+ private PaymentRepository paymentRepository;
- public void submitInvoice(Account account)
+ public void setInvoiceRepository(InvoiceRepository invoiceRepository)
{
+ this.invoiceRepository = invoiceRepository;
+ }
+
+ public void setBalanceRepository(BalanceRepository balanceRepository)
+ {
+ this.balanceRepository = balanceRepository;
+ }
+
+ public void setPaymentRepository(PaymentRepository paymentRepository)
+ {
+ this.paymentRepository = paymentRepository;
+ }
+
+ public void generateInvoice(Account account)
+ {
Invoice invoice = new Invoice();
invoice.setAccount(account);
-
+ invoice.setAmount(account.getFeePerBillingPeriod());
+ invoice.setDate(new Date());
+ invoiceRepository.save(invoice);
+ Balance balance = balanceRepository.findForAccount(account);
+ balance.debit(invoice.getAmount());
+ balanceRepository.save(balance);
}
+
+ public void processPayment(Account account, BigDecimal amount)
+ {
+ Payment payment = new Payment();
+ payment.setAccount(account);
+ payment.setAmount(amount);
+ payment.setDate(new Date());
+ paymentRepository.save(payment);
+ Balance balance = balanceRepository.findForAccount(account);
+ balance.credit(amount);
+ balanceRepository.save(balance);
+ }
+
+ public Balance getBalance(Account account)
+ {
+ return balanceRepository.findForAccount(account);
+ }
+
}
Modified: projects/snowdrop/examples/trunk/sportsclub/sportsclub-subscriptions-ejb/src/main/java/org/jboss/snowdrop/samples/sportsclub/ejb/SubscriptionServiceImpl.java
===================================================================
--- projects/snowdrop/examples/trunk/sportsclub/sportsclub-subscriptions-ejb/src/main/java/org/jboss/snowdrop/samples/sportsclub/ejb/SubscriptionServiceImpl.java 2009-12-16 19:11:40 UTC (rev 97914)
+++ projects/snowdrop/examples/trunk/sportsclub/sportsclub-subscriptions-ejb/src/main/java/org/jboss/snowdrop/samples/sportsclub/ejb/SubscriptionServiceImpl.java 2009-12-16 21:00:45 UTC (rev 97915)
@@ -4,11 +4,13 @@
import javax.ejb.TransactionAttribute;
import javax.interceptor.Interceptors;
+import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
import org.jboss.annotation.spring.Spring;
import org.jboss.snowdrop.samples.sportsclub.domain.entity.Account;
+import org.jboss.snowdrop.samples.sportsclub.domain.entity.Balance;
import org.jboss.snowdrop.samples.sportsclub.domain.entity.BillingType;
import org.jboss.snowdrop.samples.sportsclub.domain.entity.Person;
import org.jboss.snowdrop.samples.sportsclub.domain.repository.AccountRepository;
@@ -67,6 +69,7 @@
account.setMembership(membershipRepository.findById(membershipCode));
account.setBillingType(billingType);
account.setCreationDate(new Date());
+ account.resetBalance();
accountRepository.save(account);
return account;
}
Modified: projects/snowdrop/examples/trunk/sportsclub/sportsclub-subscriptions-web/src/main/webapp/searchForm.xhtml
===================================================================
--- projects/snowdrop/examples/trunk/sportsclub/sportsclub-subscriptions-web/src/main/webapp/searchForm.xhtml 2009-12-16 19:11:40 UTC (rev 97914)
+++ projects/snowdrop/examples/trunk/sportsclub/sportsclub-subscriptions-web/src/main/webapp/searchForm.xhtml 2009-12-16 21:00:45 UTC (rev 97915)
@@ -116,6 +116,9 @@
<h:outputLabel value="Annual Fee"/>
<h:outputText value="#{accountSearch.currentAccount.membership.annualFee}"/>
+ <h:outputLabel value="Outstanding Balance"/>
+ <h:outputText value="#{accountSearch.currentAccount.balance.currentBalance}"/>
+
<a4j:commandButton id="closeAcctBtn" value="Close" action="#{accountSearch.closeAccount}" reRender="searchResults,accountData" rendered="#{!accountSearch.editing}"/>
<a4j:commandButton id="editAcctBtn" value="Edit" reRender="accountData" rendered="#{!accountSearch.editing}">
<f:setPropertyActionListener value="#{true}" target="#{accountSearch.editing}"/>
More information about the jboss-cvs-commits
mailing list