killbill-memoizeit

analytics: populate next_end_date correctly Use the time

5/1/2013 6:26:31 PM

Details

diff --git a/osgi-bundles/bundles/analytics/src/main/java/com/ning/billing/osgi/bundles/analytics/dao/factory/BusinessSubscriptionTransitionFactory.java b/osgi-bundles/bundles/analytics/src/main/java/com/ning/billing/osgi/bundles/analytics/dao/factory/BusinessSubscriptionTransitionFactory.java
index 1a9c372..5573bbd 100644
--- a/osgi-bundles/bundles/analytics/src/main/java/com/ning/billing/osgi/bundles/analytics/dao/factory/BusinessSubscriptionTransitionFactory.java
+++ b/osgi-bundles/bundles/analytics/src/main/java/com/ning/billing/osgi/bundles/analytics/dao/factory/BusinessSubscriptionTransitionFactory.java
@@ -17,6 +17,7 @@
 package com.ning.billing.osgi.bundles.analytics.dao.factory;
 
 import java.util.Collection;
+import java.util.Iterator;
 import java.util.LinkedList;
 import java.util.List;
 import java.util.UUID;
@@ -124,6 +125,18 @@ public class BusinessSubscriptionTransitionFactory extends BusinessFactoryBase {
             }
         }
 
+        // We can now fix the next end date (the last next_end date will be set by the catalog by using the phase name)
+        final Iterator<BusinessSubscriptionTransitionModelDao> bstIterator = bsts.iterator();
+        if (bstIterator.hasNext()) {
+            BusinessSubscriptionTransitionModelDao prevBst = bstIterator.next();
+
+            while (bstIterator.hasNext()) {
+                final BusinessSubscriptionTransitionModelDao nextBst = bstIterator.next();
+                prevBst.setNextEndDate(nextBst.getNextStartDate());
+                prevBst = nextBst;
+            }
+        }
+
         return bsts;
     }
 
diff --git a/osgi-bundles/bundles/analytics/src/main/java/com/ning/billing/osgi/bundles/analytics/dao/model/BusinessSubscriptionTransitionModelDao.java b/osgi-bundles/bundles/analytics/src/main/java/com/ning/billing/osgi/bundles/analytics/dao/model/BusinessSubscriptionTransitionModelDao.java
index f12cc58..cadfec5 100644
--- a/osgi-bundles/bundles/analytics/src/main/java/com/ning/billing/osgi/bundles/analytics/dao/model/BusinessSubscriptionTransitionModelDao.java
+++ b/osgi-bundles/bundles/analytics/src/main/java/com/ning/billing/osgi/bundles/analytics/dao/model/BusinessSubscriptionTransitionModelDao.java
@@ -192,6 +192,10 @@ public class BusinessSubscriptionTransitionModelDao extends BusinessModelDaoBase
         return SUBSCRIPTION_TABLE_NAME;
     }
 
+    public void setNextEndDate(final DateTime nextEndDate) {
+        this.nextEndDate = nextEndDate;
+    }
+
     public Long getSubscriptionEventRecordId() {
         return subscriptionEventRecordId;
     }