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) { |
Free forum by Nabble | Edit this page |