svn commit: r1838320 - in /ofbiz/ofbiz-framework/trunk/applications: datamodel/data/seed/OrderSeedData.xml datamodel/data/seed/ProductSeedData.xml order/src/main/java/org/apache/ofbiz/order/shoppingcart/ShoppingCartItem.java

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

svn commit: r1838320 - in /ofbiz/ofbiz-framework/trunk/applications: datamodel/data/seed/OrderSeedData.xml datamodel/data/seed/ProductSeedData.xml order/src/main/java/org/apache/ofbiz/order/shoppingcart/ShoppingCartItem.java

surajk
Author: surajk
Date: Sat Aug 18 08:34:18 2018
New Revision: 1838320

URL: http://svn.apache.org/viewvc?rev=1838320&view=rev
Log:
Improved: Added support to calculate deposit price as well while creating shopping cart item.
(OFBIZ-7482)

Modified:
    ofbiz/ofbiz-framework/trunk/applications/datamodel/data/seed/OrderSeedData.xml
    ofbiz/ofbiz-framework/trunk/applications/datamodel/data/seed/ProductSeedData.xml
    ofbiz/ofbiz-framework/trunk/applications/order/src/main/java/org/apache/ofbiz/order/shoppingcart/ShoppingCartItem.java

Modified: ofbiz/ofbiz-framework/trunk/applications/datamodel/data/seed/OrderSeedData.xml
URL: http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/applications/datamodel/data/seed/OrderSeedData.xml?rev=1838320&r1=1838319&r2=1838320&view=diff
==============================================================================
--- ofbiz/ofbiz-framework/trunk/applications/datamodel/data/seed/OrderSeedData.xml (original)
+++ ofbiz/ofbiz-framework/trunk/applications/datamodel/data/seed/OrderSeedData.xml Sat Aug 18 08:34:18 2018
@@ -49,6 +49,7 @@ under the License.
     <OrderAdjustmentType description="Additional Feature" hasTable="N" orderAdjustmentTypeId="ADDITIONAL_FEATURE"/>
     <OrderAdjustmentType description="Warranty" hasTable="N" orderAdjustmentTypeId="WARRANTY_ADJUSTMENT"/>
     <OrderAdjustmentType description="Marketing Package Adjustment" hasTable="N" orderAdjustmentTypeId="MKTG_PKG_AUTO_ADJUST"/>
+    <OrderAdjustmentType description="Deposit" hasTable="N" orderAdjustmentTypeId="DEPOSIT_ADJUSTMENT"/>
 
     <OrderBlacklistType orderBlacklistTypeId="BLACKLIST_ADDRESS" description="Addresss"/>
     <OrderBlacklistType orderBlacklistTypeId="BLACKLIST_CREDITCARD" description="Credit Card"/>

Modified: ofbiz/ofbiz-framework/trunk/applications/datamodel/data/seed/ProductSeedData.xml
URL: http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/applications/datamodel/data/seed/ProductSeedData.xml?rev=1838320&r1=1838319&r2=1838320&view=diff
==============================================================================
--- ofbiz/ofbiz-framework/trunk/applications/datamodel/data/seed/ProductSeedData.xml (original)
+++ ofbiz/ofbiz-framework/trunk/applications/datamodel/data/seed/ProductSeedData.xml Sat Aug 18 08:34:18 2018
@@ -281,6 +281,7 @@ under the License.
     <ProductPriceType description="Minimum Order Price" productPriceTypeId="MINIMUM_ORDER_PRICE"/>
     <ProductPriceType description="Shipping Allowance Price" productPriceTypeId="SHIPPING_ALLOWANCE"/>
 
+    <ProductPricePurpose description="Deposit price" productPricePurposeId="DEPOSIT"/>
     <ProductPricePurpose description="Purchase/Initial" productPricePurposeId="PURCHASE"/>
     <ProductPricePurpose description="Recurring Charge" productPricePurposeId="RECURRING_CHARGE"/>
     <ProductPricePurpose description="Usage Charge" productPricePurposeId="USAGE_CHARGE"/>

Modified: ofbiz/ofbiz-framework/trunk/applications/order/src/main/java/org/apache/ofbiz/order/shoppingcart/ShoppingCartItem.java
URL: http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/applications/order/src/main/java/org/apache/ofbiz/order/shoppingcart/ShoppingCartItem.java?rev=1838320&r1=1838319&r2=1838320&view=diff
==============================================================================
--- ofbiz/ofbiz-framework/trunk/applications/order/src/main/java/org/apache/ofbiz/order/shoppingcart/ShoppingCartItem.java (original)
+++ ofbiz/ofbiz-framework/trunk/applications/order/src/main/java/org/apache/ofbiz/order/shoppingcart/ShoppingCartItem.java Sat Aug 18 08:34:18 2018
@@ -1038,6 +1038,7 @@ public class ShoppingCartItem implements
             ProductPromoWorker.doPromotions(cart, dispatcher);
         }
 
+        calcDepositAdjustments();
         if (!"PURCHASE_ORDER".equals(cart.getOrderType())) {
             // store the auto-save cart
             if (triggerExternalOps && ProductStoreWorker.autoSaveCart(delegator, productStoreId)) {
@@ -1061,6 +1062,33 @@ public class ShoppingCartItem implements
         }
     }
 
+    public void calcDepositAdjustments() {
+        List<GenericValue>itemAdjustments = this.getAdjustments();
+        try {
+            GenericValue depositAmount = EntityQuery.use(delegator).from("ProductPrice").where("productId", this.getProductId(), "productPricePurposeId", "DEPOSIT", "productPriceTypeId", "DEFAULT_PRICE").filterByDate().queryFirst();
+            if (UtilValidate.isNotEmpty(depositAmount)) {
+                Boolean updatedDepositAmount = false;
+                BigDecimal adjustmentAmount = depositAmount.getBigDecimal("price").multiply(this.getQuantity(), generalRounding);
+                // itemAdjustments is a reference so directly setting updated amount to the same.
+                    for(GenericValue itemAdjustment : itemAdjustments) {
+                    if("DEPOSIT_ADJUSTMENT".equals(itemAdjustment.getString("orderAdjustmentTypeId"))) {
+                            itemAdjustment.set("amount", adjustmentAmount);
+                            updatedDepositAmount = true;
+                        }
+                }
+                if (!updatedDepositAmount) {
+                    GenericValue orderAdjustment = delegator.makeValue("OrderAdjustment");
+                    orderAdjustment.set("orderAdjustmentTypeId", "DEPOSIT_ADJUSTMENT");
+                    orderAdjustment.set("description", "Surcharge Adjustment");
+                    orderAdjustment.set("amount", adjustmentAmount);
+                    this.addAdjustment(orderAdjustment);
+                }
+            }
+        } catch (GenericEntityException e){
+            Debug.logError("Error in fetching deposite price details!!", module);
+        }
+    }
+
     public void updatePrice(LocalDispatcher dispatcher, ShoppingCart cart) throws CartItemModifyException {
         // set basePrice using the calculateProductPrice service
         if (_product != null && isModifiedPrice == false) {