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) {