Author: jleroux
Date: Mon Aug 22 09:58:35 2016 New Revision: 1757130 URL: http://svn.apache.org/viewvc?rev=1757130&view=rev Log: A modified patch from Pierre Smits for "remove build dependency of Order on Marketing" https://issues.apache.org/jira/browse/OFBIZ-7966 Currently there is a build dependency from order - CheckOutEvents.java on marketing - TrackingCodeEvents.java The createOrder function (in CheckOutEvents.java) calls the makeTrackingCodeOrders function in TrackingCodeEvents.java jleroux: I merged parts of the 2 patches, the 2nd was good but missing the makeTrackingCodeOrders service definition. I also fixed the warning about trackingCodeOrdersList creation not being generic Modified: ofbiz/trunk/applications/marketing/servicedef/services.xml ofbiz/trunk/applications/marketing/src/main/java/org/apache/ofbiz/marketing/tracking/TrackingCodeEvents.java ofbiz/trunk/applications/order/data/OrderSystemPropertyData.xml ofbiz/trunk/applications/order/src/main/java/org/apache/ofbiz/order/shoppingcart/CheckOutEvents.java ofbiz/trunk/applications/order/src/main/java/org/apache/ofbiz/order/shoppingcart/CheckOutHelper.java Modified: ofbiz/trunk/applications/marketing/servicedef/services.xml URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/marketing/servicedef/services.xml?rev=1757130&r1=1757129&r2=1757130&view=diff ============================================================================== --- ofbiz/trunk/applications/marketing/servicedef/services.xml (original) +++ ofbiz/trunk/applications/marketing/servicedef/services.xml Mon Aug 22 09:58:35 2016 @@ -419,6 +419,12 @@ under the License. <attribute type="String" mode="IN" name="returnId" optional="false"/> </service> + <service name="makeTrackingCodeOrders" engine="java" location="org.apache.ofbiz.marketing.tracking.TrackingCodeEvents" invoke="makeTrackingCodeOrders" auth="true"> + <description>Makes a list of TrackingCodeOrder entities to be attached to the current order</description> + <attribute name="request" mode="IN" type="javax.servlet.http.HttpServletRequest"/> + <attribute name="trackingCodeOrders" type="List" mode="OUT" optional="false"/> + </service> + <!-- marketing permission service --> <service name="marketingPermissionService" engine="simple" location="component://common/minilang/permission/CommonPermissionServices.xml" invoke="genericBasePermissionCheck"> Modified: ofbiz/trunk/applications/marketing/src/main/java/org/apache/ofbiz/marketing/tracking/TrackingCodeEvents.java URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/marketing/src/main/java/org/apache/ofbiz/marketing/tracking/TrackingCodeEvents.java?rev=1757130&r1=1757129&r2=1757130&view=diff ============================================================================== --- ofbiz/trunk/applications/marketing/src/main/java/org/apache/ofbiz/marketing/tracking/TrackingCodeEvents.java (original) +++ ofbiz/trunk/applications/marketing/src/main/java/org/apache/ofbiz/marketing/tracking/TrackingCodeEvents.java Mon Aug 22 09:58:35 2016 @@ -31,14 +31,14 @@ import org.apache.ofbiz.base.util.Debug; import org.apache.ofbiz.base.util.UtilDateTime; import org.apache.ofbiz.base.util.UtilMisc; import org.apache.ofbiz.base.util.UtilValidate; -import org.apache.ofbiz.webapp.stats.VisitHandler; -import org.apache.ofbiz.webapp.website.WebSiteWorker; import org.apache.ofbiz.entity.Delegator; import org.apache.ofbiz.entity.GenericEntityException; import org.apache.ofbiz.entity.GenericValue; import org.apache.ofbiz.entity.util.EntityQuery; import org.apache.ofbiz.entity.util.EntityUtilProperties; import org.apache.ofbiz.product.category.CategoryWorker; +import org.apache.ofbiz.webapp.stats.VisitHandler; +import org.apache.ofbiz.webapp.website.WebSiteWorker; /** * Events used for maintaining TrackingCode related information @@ -285,7 +285,7 @@ public class TrackingCodeEvents { String prodCatalogId = trackingCode.getString("prodCatalogId"); if (UtilValidate.isNotEmpty(prodCatalogId)) { session.setAttribute("CURRENT_CATALOG_ID", prodCatalogId); - CategoryWorker.setTrail(request, new LinkedList()); + CategoryWorker.setTrail(request, new LinkedList<String>()); } // if forward/redirect is needed, do a response.sendRedirect and return null to tell the control servlet to not do any other requests/views Modified: ofbiz/trunk/applications/order/data/OrderSystemPropertyData.xml URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/order/data/OrderSystemPropertyData.xml?rev=1757130&r1=1757129&r2=1757130&view=diff ============================================================================== --- ofbiz/trunk/applications/order/data/OrderSystemPropertyData.xml (original) +++ ofbiz/trunk/applications/order/data/OrderSystemPropertyData.xml Mon Aug 22 09:58:35 2016 @@ -50,4 +50,12 @@ order.properties setting is: order.item. description="Allow comment on Order Item. Choices are: Y or N." /> +<!-- +# +marketing.tracking.enable=Y +--> + <SystemProperty systemResourceId="order" systemPropertyId="marketing.tracking.enable" systemPropertyValue="Y" + description="Allow tracking in marketing component (optional). Choices are: Y or N." + /> + </entity-engine-xml> \ No newline at end of file Modified: ofbiz/trunk/applications/order/src/main/java/org/apache/ofbiz/order/shoppingcart/CheckOutEvents.java URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/order/src/main/java/org/apache/ofbiz/order/shoppingcart/CheckOutEvents.java?rev=1757130&r1=1757129&r2=1757130&view=diff ============================================================================== --- ofbiz/trunk/applications/order/src/main/java/org/apache/ofbiz/order/shoppingcart/CheckOutEvents.java (original) +++ ofbiz/trunk/applications/order/src/main/java/org/apache/ofbiz/order/shoppingcart/CheckOutEvents.java Mon Aug 22 09:58:35 2016 @@ -42,7 +42,7 @@ import org.apache.ofbiz.entity.Delegator import org.apache.ofbiz.entity.GenericEntityException; import org.apache.ofbiz.entity.GenericValue; import org.apache.ofbiz.entity.util.EntityQuery; -import org.apache.ofbiz.marketing.tracking.TrackingCodeEvents; +import org.apache.ofbiz.entity.util.EntityUtilProperties; import org.apache.ofbiz.order.order.OrderReadHelper; import org.apache.ofbiz.party.party.PartyWorker; import org.apache.ofbiz.product.store.ProductStoreWorker; @@ -53,6 +53,7 @@ import org.apache.ofbiz.service.ServiceU import org.apache.ofbiz.webapp.stats.VisitHandler; import org.apache.ofbiz.webapp.website.WebSiteWorker; + /** * Events used for processing checkout and orders. */ @@ -438,15 +439,28 @@ public class CheckOutEvents { session.removeAttribute("_QUICK_REORDER_PRODUCTS_"); boolean areOrderItemsExploded = explodeOrderItems(delegator, cart); - - //get the TrackingCodeOrder List - List<GenericValue> trackingCodeOrders = TrackingCodeEvents.makeTrackingCodeOrders(request); + + //get the TrackingCodeOrder List + String trackingEnabled = EntityUtilProperties.getPropertyValue("order","marketing.tracking.enable", delegator); + Map<String, Object> trackingCodeOrders = new HashMap<String, Object>(); + if (trackingEnabled != null && trackingEnabled == "Y") { + //get the TrackingCodeOrder List + Map<String, Object> inMap = new HashMap<String, Object>(); + inMap.put("request", request); + try { + trackingCodeOrders = dispatcher.runSync("makeTrackingCodeOrder",inMap); + } catch (GenericServiceException e) { + Debug.logError(e, module); + } + } + String distributorId = (String) session.getAttribute("_DISTRIBUTOR_ID_"); String affiliateId = (String) session.getAttribute("_AFFILIATE_ID_"); String visitId = VisitHandler.getVisitId(session); String webSiteId = WebSiteWorker.getWebSiteId(request); + List<GenericValue> trackingCodeOrdersList = UtilGenerics.checkList(new ArrayList<GenericValue>()); - callResult = checkOutHelper.createOrder(userLogin, distributorId, affiliateId, trackingCodeOrders, areOrderItemsExploded, visitId, webSiteId); + callResult = checkOutHelper.createOrder(userLogin, distributorId, affiliateId, trackingCodeOrdersList, areOrderItemsExploded, visitId, webSiteId); if (callResult != null) { ServiceUtil.getMessages(request, callResult, null); if (ServiceUtil.isError(callResult)) { Modified: ofbiz/trunk/applications/order/src/main/java/org/apache/ofbiz/order/shoppingcart/CheckOutHelper.java URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/order/src/main/java/org/apache/ofbiz/order/shoppingcart/CheckOutHelper.java?rev=1757130&r1=1757129&r2=1757130&view=diff ============================================================================== --- ofbiz/trunk/applications/order/src/main/java/org/apache/ofbiz/order/shoppingcart/CheckOutHelper.java (original) +++ ofbiz/trunk/applications/order/src/main/java/org/apache/ofbiz/order/shoppingcart/CheckOutHelper.java Mon Aug 22 09:58:35 2016 @@ -559,7 +559,7 @@ public class CheckOutHelper { // Create order event - uses createOrder service for processing public Map<String, Object> createOrder(GenericValue userLogin, String distributorId, String affiliateId, - List<GenericValue> trackingCodeOrders, boolean areOrderItemsExploded, String visitId, String webSiteId) { + List<GenericValue> trackingCodeOrdersList, boolean areOrderItemsExploded, String visitId, String webSiteId) { if (this.cart == null) { return null; } @@ -575,7 +575,7 @@ public class CheckOutHelper { Map<String, Object> context = this.cart.makeCartMap(this.dispatcher, areOrderItemsExploded); //get the TrackingCodeOrder List - context.put("trackingCodeOrders", trackingCodeOrders); + context.put("trackingCodeOrders", trackingCodeOrdersList); if (distributorId != null) context.put("distributorId", distributorId); if (affiliateId != null) context.put("affiliateId", affiliateId); |
Free forum by Nabble | Edit this page |