Author: jonesde
Date: Wed Jul 18 20:38:11 2007 New Revision: 557476 URL: http://svn.apache.org/viewvc?view=rev&rev=557476 Log: Fixed some bugs with processExtendSubscription related to inventoryItemId and excluding future subscriptions too Modified: ofbiz/trunk/applications/product/src/org/ofbiz/product/subscription/SubscriptionServices.java Modified: ofbiz/trunk/applications/product/src/org/ofbiz/product/subscription/SubscriptionServices.java URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/product/src/org/ofbiz/product/subscription/SubscriptionServices.java?view=diff&rev=557476&r1=557475&r2=557476 ============================================================================== --- ofbiz/trunk/applications/product/src/org/ofbiz/product/subscription/SubscriptionServices.java (original) +++ ofbiz/trunk/applications/product/src/org/ofbiz/product/subscription/SubscriptionServices.java Wed Jul 18 20:38:11 2007 @@ -54,6 +54,7 @@ String partyId = (String) context.get("partyId"); String subscriptionResourceId = (String) context.get("subscriptionResourceId"); + String inventoryItemId = (String) context.get("inventoryItemId"); String roleTypeId = (String) context.get("useRoleTypeId"); GenericValue userLogin = (GenericValue) context.get("userLogin"); Integer useTime = (Integer) context.get("useTime"); @@ -63,9 +64,12 @@ GenericValue lastSubscription = null; try { - List subscriptionList = delegator.findByAndCache("Subscription", UtilMisc.toMap("partyId", partyId, "subscriptionResourceId", subscriptionResourceId)); - List listFiltered = EntityUtil.filterByDate(subscriptionList, true); - List listOrdered = EntityUtil.orderBy(listFiltered, UtilMisc.toList("-fromDate")); + Map subscriptionFindMap = UtilMisc.toMap("partyId", partyId, "subscriptionResourceId", subscriptionResourceId); + // if this subscription is attached to something the customer owns, filter by that too + if (UtilValidate.isNotEmpty(inventoryItemId)) subscriptionFindMap.put("inventoryItemId", inventoryItemId); + List subscriptionList = delegator.findByAnd("Subscription", subscriptionFindMap); + // DEJ20070718 DON'T filter by date, we want to consider all subscriptions: List listFiltered = EntityUtil.filterByDate(subscriptionList, true); + List listOrdered = EntityUtil.orderBy(subscriptionList, UtilMisc.toList("-fromDate")); if (listOrdered.size() > 0) { lastSubscription = (GenericValue) listOrdered.get(0); } @@ -85,12 +89,11 @@ } else { newSubscription = lastSubscription; } - newSubscription.set("inventoryItemId", context.get("inventoryItemId")); + newSubscription.set("inventoryItemId", inventoryItemId); Timestamp thruDate = lastSubscription != null ? (Timestamp) lastSubscription.get("thruDate") : null; if (thruDate == null) { // no thruDate? start with NOW - thruDate = nowTimestamp; newSubscription.set("fromDate", nowTimestamp); } else { // there is a thru date... if it is in the past, bring it up to NOW before adding on the time period @@ -109,6 +112,7 @@ calendar.add(times[0], (useTime.intValue() * times[1])); } else { Debug.logWarning("Don't know anything about useTimeUomId [" + useTimeUomId + "], defaulting to month", module); + calendar.add(Calendar.MONTH, (useTime.intValue() * times[1])); } thruDate = new Timestamp(calendar.getTimeInMillis()); |
Free forum by Nabble | Edit this page |