svn commit: r587496 - in /ofbiz/trunk/applications/order: src/org/ofbiz/order/shoppingcart/product/ProductPromoWorker.java webapp/ordermgr/WEB-INF/actions/entry/showcart.bsh widget/ordermgr/OrderEntryCartScreens.xml

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

svn commit: r587496 - in /ofbiz/trunk/applications/order: src/org/ofbiz/order/shoppingcart/product/ProductPromoWorker.java webapp/ordermgr/WEB-INF/actions/entry/showcart.bsh widget/ordermgr/OrderEntryCartScreens.xml

jacopoc
Author: jacopoc
Date: Tue Oct 23 06:17:45 2007
New Revision: 587496

URL: http://svn.apache.org/viewvc?rev=587496&view=rev
Log:
Added logic to automatically run the store's promotions that are not set as manualOnly.

Modified:
    ofbiz/trunk/applications/order/src/org/ofbiz/order/shoppingcart/product/ProductPromoWorker.java
    ofbiz/trunk/applications/order/webapp/ordermgr/WEB-INF/actions/entry/showcart.bsh
    ofbiz/trunk/applications/order/widget/ordermgr/OrderEntryCartScreens.xml

Modified: ofbiz/trunk/applications/order/src/org/ofbiz/order/shoppingcart/product/ProductPromoWorker.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/order/src/org/ofbiz/order/shoppingcart/product/ProductPromoWorker.java?rev=587496&r1=587495&r2=587496&view=diff
==============================================================================
--- ofbiz/trunk/applications/order/src/org/ofbiz/order/shoppingcart/product/ProductPromoWorker.java (original)
+++ ofbiz/trunk/applications/order/src/org/ofbiz/order/shoppingcart/product/ProductPromoWorker.java Tue Oct 23 06:17:45 2007
@@ -108,6 +108,11 @@
                 Iterator productStorePromoAppls = UtilMisc.toIterator(EntityUtil.filterByDate(productStore.getRelatedCache("ProductStorePromoAppl", UtilMisc.toMap("productStoreId", productStoreId), UtilMisc.toList("sequenceNum")), true));
                 while (productStorePromoAppls != null && productStorePromoAppls.hasNext()) {
                     GenericValue productStorePromoAppl = (GenericValue) productStorePromoAppls.next();
+                    if (UtilValidate.isNotEmpty(productStorePromoAppl.getString("manualOnly")) && "Y".equals(productStorePromoAppl.getString("manualOnly"))) {
+                        // manual only promotions are not automatically evaluated (they must be explicitly selected by the user)
+                        if (Debug.verboseOn()) Debug.logVerbose("Skipping promotion with id [" + productStorePromoAppl.getString("productPromoId") + "] because it is applied to the store with ID " + productStoreId + " as a manual only promotion.", module);
+                        continue;
+                    }
                     GenericValue productPromo = productStorePromoAppl.getRelatedOneCache("ProductPromo");
                     List productPromoRules = productPromo.getRelatedCache("ProductPromoRule", null, null);
 
@@ -174,6 +179,11 @@
             Iterator prodCatalogPromoAppls = UtilMisc.toIterator(productStorePromoApplsList);
             while (prodCatalogPromoAppls != null && prodCatalogPromoAppls.hasNext()) {
                 GenericValue prodCatalogPromoAppl = (GenericValue) prodCatalogPromoAppls.next();
+                if (UtilValidate.isNotEmpty(prodCatalogPromoAppl.getString("manualOnly")) && "Y".equals(prodCatalogPromoAppl.getString("manualOnly"))) {
+                    // manual only promotions are not automatically evaluated (they must be explicitly selected by the user)
+                    if (Debug.verboseOn()) Debug.logVerbose("Skipping promotion with id [" + prodCatalogPromoAppl.getString("productPromoId") + "] because it is applied to the store with ID " + productStoreId + " as a manual only promotion.", module);
+                    continue;
+                }
                 GenericValue productPromo = prodCatalogPromoAppl.getRelatedOneCache("ProductPromo");
                 productPromoList.add(productPromo);
             }

Modified: ofbiz/trunk/applications/order/webapp/ordermgr/WEB-INF/actions/entry/showcart.bsh
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/order/webapp/ordermgr/WEB-INF/actions/entry/showcart.bsh?rev=587496&r1=587495&r2=587496&view=diff
==============================================================================
--- ofbiz/trunk/applications/order/webapp/ordermgr/WEB-INF/actions/entry/showcart.bsh (original)
+++ ofbiz/trunk/applications/order/webapp/ordermgr/WEB-INF/actions/entry/showcart.bsh Tue Oct 23 06:17:45 2007
@@ -51,6 +51,10 @@
 
 context.put("contentPathPrefix", CatalogWorker.getContentPathPrefix(request));
 
+// retrieve the product store id from the cart
+productStoreId = shoppingCart.getProductStoreId();
+context.put("productStoreId", productStoreId);
+
 partyId = shoppingCart.getPartyId();
 if (partyId != null && partyId.equals("_NA_")) partyId = null;
 context.put("partyId", partyId);
@@ -76,7 +80,7 @@
 }
 
 // get product inventory summary for each shopping cart item
-productStore = delegator.findByPrimaryKeyCache("ProductStore", UtilMisc.toMap("productStoreId", shoppingCart.getProductStoreId()));
+productStore = delegator.findByPrimaryKeyCache("ProductStore", UtilMisc.toMap("productStoreId", productStoreId));
 productStoreFacilityId = null;
 if (productStore != null) {
     productStoreFacilityId = productStore.getString("inventoryFacilityId");

Modified: ofbiz/trunk/applications/order/widget/ordermgr/OrderEntryCartScreens.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/order/widget/ordermgr/OrderEntryCartScreens.xml?rev=587496&r1=587495&r2=587496&view=diff
==============================================================================
--- ofbiz/trunk/applications/order/widget/ordermgr/OrderEntryCartScreens.xml (original)
+++ ofbiz/trunk/applications/order/widget/ordermgr/OrderEntryCartScreens.xml Tue Oct 23 06:17:45 2007
@@ -68,7 +68,11 @@
                 <set field="promoUseDetailsInlineScreen" value="component://order/widget/ordermgr/OrderEntryCartScreens.xml#promoUseDetailsInline"/>
                 <script location="component://order/webapp/ordermgr/WEB-INF/actions/entry/showcart.bsh"/>
                 <script location="component://order/webapp/ordermgr/WEB-INF/actions/entry/showpromotext.bsh"/>
-                <entity-condition entity-name="ProductPromo" list-name="allProductPromos">
+                <entity-condition entity-name="ProductStorePromoAndAppl" list-name="allProductPromos" filter-by-date="true">
+                    <condition-list combine="and">
+                        <condition-expr field-name="manualOnly" value="Y"/>
+                        <condition-expr field-name="productStoreId" env-name="productStoreId"/>
+                    </condition-list>
                     <order-by field-name="productPromoId"/>
                 </entity-condition>
             </actions>