You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ofbiz.apache.org by as...@apache.org on 2009/11/20 10:04:47 UTC

svn commit: r882456 - in /ofbiz/branches/release09.04/applications/order/src/org/ofbiz/order/shoppingcart: ShoppingCart.java ShoppingCartEvents.java

Author: ashish
Date: Fri Nov 20 09:04:46 2009
New Revision: 882456

URL: http://svn.apache.org/viewvc?rev=882456&view=rev
Log:
Applied fix from trunk revision: 882454.
Applied patch from jira issue OFBIZ-3208 - On order view page when clicking on "Create As New Order", the adjustments Shipping and Handling and Sales Tax are duplicated.

Patch will resolve the following Issues

1) Shipping and Handling Charges are added twice in new order amount.
2) Sales Tax are added twice in new order amount.
3) Add extra tax on shipping and handling charges for new order.
4) When click on "Create as New Order" Link, it is Giving NPE on some Promotion (Happy Hour
Promotion 9020).
5) Click on "Edit Items" Link and then "Update" Link it is it is Giving NPE on some Promotion (Happy
Hour Promotion 9020).

Thanks Arpit for the contribution.

Modified:
    ofbiz/branches/release09.04/applications/order/src/org/ofbiz/order/shoppingcart/ShoppingCart.java
    ofbiz/branches/release09.04/applications/order/src/org/ofbiz/order/shoppingcart/ShoppingCartEvents.java

Modified: ofbiz/branches/release09.04/applications/order/src/org/ofbiz/order/shoppingcart/ShoppingCart.java
URL: http://svn.apache.org/viewvc/ofbiz/branches/release09.04/applications/order/src/org/ofbiz/order/shoppingcart/ShoppingCart.java?rev=882456&r1=882455&r2=882456&view=diff
==============================================================================
--- ofbiz/branches/release09.04/applications/order/src/org/ofbiz/order/shoppingcart/ShoppingCart.java (original)
+++ ofbiz/branches/release09.04/applications/order/src/org/ofbiz/order/shoppingcart/ShoppingCart.java Fri Nov 20 09:04:46 2009
@@ -826,6 +826,7 @@
             return null;
         }
         return (ShoppingCartItem) cartLines.get(index);
+        
     }
 
     public ShoppingCartItem findCartItem(String orderItemSeqId) {
@@ -2009,7 +2010,10 @@
     }
 
     public void setItemShipGroupQty(int itemIndex, BigDecimal quantity, int idx) {
-        this.setItemShipGroupQty(this.findCartItem(itemIndex), itemIndex, quantity, idx);
+        ShoppingCartItem itemIdx = this.findCartItem(itemIndex);
+        if(itemIdx != null) {
+            this.setItemShipGroupQty(itemIdx, itemIndex, quantity, idx);
+        }
     }
 
     public void setItemShipGroupQty(ShoppingCartItem item, BigDecimal quantity, int idx) {
@@ -2026,16 +2030,19 @@
             }
 
             // never set more than quantity ordered
-            if (quantity.compareTo(item.getQuantity()) > 0) {
-                quantity = item.getQuantity();
-            }
-
-            // re-set the ship group's before and after dates based on the item's
-            csi.resetShipBeforeDateIfAfter(item.getShipBeforeDate());
-            csi.resetShipAfterDateIfBefore(item.getShipAfterDate());
-
-            CartShipInfo.CartShipItemInfo csii = csi.setItemInfo(item, quantity);
-            this.checkShipItemInfo(csi, csii);
+            if (item != null) {
+                if (quantity.compareTo(item.getQuantity()) > 0) {
+                    quantity = item.getQuantity();
+                }
+            
+
+                // re-set the ship group's before and after dates based on the item's
+                csi.resetShipBeforeDateIfAfter(item.getShipBeforeDate());
+                csi.resetShipAfterDateIfBefore(item.getShipAfterDate());
+    
+                CartShipInfo.CartShipItemInfo csii = csi.setItemInfo(item, quantity);
+                this.checkShipItemInfo(csi, csii);
+            } 
         }
     }
 

Modified: ofbiz/branches/release09.04/applications/order/src/org/ofbiz/order/shoppingcart/ShoppingCartEvents.java
URL: http://svn.apache.org/viewvc/ofbiz/branches/release09.04/applications/order/src/org/ofbiz/order/shoppingcart/ShoppingCartEvents.java?rev=882456&r1=882455&r2=882456&view=diff
==============================================================================
--- ofbiz/branches/release09.04/applications/order/src/org/ofbiz/order/shoppingcart/ShoppingCartEvents.java (original)
+++ ofbiz/branches/release09.04/applications/order/src/org/ofbiz/order/shoppingcart/ShoppingCartEvents.java Fri Nov 20 09:04:46 2009
@@ -20,20 +20,21 @@
 
 import java.math.BigDecimal;
 import java.math.MathContext;
+import java.sql.Timestamp;
 import java.text.NumberFormat;
+import java.util.ArrayList;
 import java.util.Iterator;
 import java.util.LinkedList;
 import java.util.List;
 import java.util.Locale;
 import java.util.Map;
-import javolution.util.FastMap;
-import java.sql.Timestamp;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import javax.servlet.http.HttpSession;
 
 import javolution.util.FastList;
+import javolution.util.FastMap;
 
 import org.ofbiz.base.util.Debug;
 import org.ofbiz.base.util.UtilDateTime;
@@ -1288,6 +1289,7 @@
         LocalDispatcher dispatcher = (LocalDispatcher) request.getAttribute("dispatcher");
         HttpSession session = request.getSession();
         GenericValue userLogin = (GenericValue)session.getAttribute("userLogin");
+        Delegator delegator = (Delegator) request.getAttribute("delegator");
 
         String quoteId = request.getParameter("orderId");
 
@@ -1303,7 +1305,49 @@
              }
 
             cart = (ShoppingCart) outMap.get("shoppingCart");
-            
+
+            cart.removeAdjustmentByType("SALES_TAX");
+            cart.removeAdjustmentByType("PROMOTION_ADJUSTMENT");
+            String shipGroupSeqId = null;
+            long groupIndex = cart.getShipInfoSize();
+            List orderAdjustmentList = new ArrayList();
+            List orderAdjustments = new ArrayList();
+            orderAdjustments = cart.getAdjustments();
+            try {
+                orderAdjustmentList = delegator.findList("OrderAdjustment", EntityCondition.makeCondition("orderId", EntityOperator.EQUALS, orderId), null, null, null, false);
+            } catch (Exception e) {
+                Debug.logError(e, module);
+            }
+            for (long itr = 1; itr <= groupIndex; itr++) {
+                shipGroupSeqId = UtilFormatOut.formatPaddedNumber(1, 5);
+                List<GenericValue> duplicateAdjustmentList = new ArrayList<GenericValue>();
+                for (GenericValue adjustment: (List<GenericValue>)orderAdjustmentList) {
+                    if ("PROMOTION_ADJUSTMENT".equals(adjustment.get("orderAdjustmentTypeId"))) { 
+                        cart.addAdjustment(adjustment);
+                    }
+                    if ("SALES_TAX".equals(adjustment.get("orderAdjustmentTypeId"))) {
+                        if (adjustment.get("description") != null 
+                                    && ((String)adjustment.get("description")).startsWith("Tax adjustment due")) {
+                                cart.addAdjustment(adjustment);
+                            }
+                        if ( adjustment.get("comments") != null 
+                                && ((String)adjustment.get("comments")).startsWith("Added manually by")) {
+                            cart.addAdjustment(adjustment);
+                        }
+                    }
+                }
+                for (GenericValue orderAdjustment: (List<GenericValue>)orderAdjustments) {
+                    if ("OrderAdjustment".equals(orderAdjustment.getEntityName())) {
+                        if (("SHIPPING_CHARGES".equals(orderAdjustment.get("orderAdjustmentTypeId"))) &&
+                                orderAdjustment.get("orderId").equals(orderId) &&
+                                orderAdjustment.get("shipGroupSeqId").equals(shipGroupSeqId) && orderAdjustment.get("comments") == null) {
+                            // Removing objects from list for old Shipping and Handling Charges Adjustment and Sales Tax Adjustment.
+                            duplicateAdjustmentList.add(orderAdjustment);
+                        }
+                    }
+                }
+                orderAdjustments.removeAll(duplicateAdjustmentList);
+            }
         } catch (GenericServiceException exc) {
             request.setAttribute("_ERROR_MESSAGE_", exc.getMessage());
             return "error";



Re: svn commit: r882456 - in /ofbiz/branches/release09.04/applications/order/src/org/ofbiz/order/shoppingcart: ShoppingCart.java ShoppingCartEvents.java

Posted by David E Jones <de...@me.com>.
On Nov 21, 2009, at 3:24 PM, Jacques Le Roux wrote:

> From: "Scott Gray" <sc...@hotwaxmedia.com>
>> I doubt it would be worth getting it set up for 9.04 considering a   
>> large number of the tests don't pass.
>
> No ideas, but is it
>
> I don't like the idea of  a release being full of bugs :/
> I'd even prefer to concentrate to fix them than to add new features  
> in trunk. If it's not possible to fox them we should say clearly.

It has nothing to do with what is possible. It is all a matter of what  
people are interested in...

-David


Re: svn commit: r882456 - in /ofbiz/branches/release09.04/applications/order/src/org/ofbiz/order/shoppingcart: ShoppingCart.java ShoppingCartEvents.java

Posted by Jacques Le Roux <ja...@les7arts.com>.
From: "Scott Gray" <sc...@hotwaxmedia.com>
>I doubt it would be worth getting it set up for 9.04 considering a  large number of the tests don't pass.

No ideas, but is it

I don't like the idea of  a release being full of bugs :/
I'd even prefer to concentrate to fix them than to add new features in trunk. If it's not possible to fox them we should say 
clearly.

> getting it set up just to test the build process because developers  really should be checking that themselves before committing, 
> along  with testing the fix that they just back ported.

Because of side effects, you can't detect all, even continuous integration  will not...

Jacques

> Regards
> Scott
>
> On 22/11/2009, at 6:10 AM, Jacques Le Roux wrote:
>
>> Hi devs,
>>
>> Hopefully this kind of issues will be more easily avoided when we  will have a continuous integration server running...
>>
>> Jacques
>>
>> From: "Scott Gray" <sc...@hotwaxmedia.com>
>>> Hi Ashish
>>>
>>> This commit breaks the build, please fix it and always at the  absolute  minimum ensure that the release branch compiles before 
>>> committing any  changes.  Ideally everyone would also first confirm  that a bug exists  in the branch and also that the changes 
>>> fix it  before committing.
>>>
>>> Thanks
>>> Scott
>>>
>>> HotWax Media
>>> http://www.hotwaxmedia.com
>>>
>>> On 20/11/2009, at 10:04 PM, ashish@apache.org wrote:
>>>
>>>> Author: ashish
>>>> Date: Fri Nov 20 09:04:46 2009
>>>> New Revision: 882456
>>>>
>>>> URL: http://svn.apache.org/viewvc?rev=882456&view=rev
>>>> Log:
>>>> Applied fix from trunk revision: 882454.
>>>> Applied patch from jira issue OFBIZ-3208 - On order view page  when  clicking on "Create As New Order", the adjustments 
>>>> Shipping  and  Handling and Sales Tax are duplicated.
>>>>
>>>> Patch will resolve the following Issues
>>>>
>>>> 1) Shipping and Handling Charges are added twice in new order  amount.
>>>> 2) Sales Tax are added twice in new order amount.
>>>> 3) Add extra tax on shipping and handling charges for new order.
>>>> 4) When click on "Create as New Order" Link, it is Giving NPE on   some Promotion (Happy Hour
>>>> Promotion 9020).
>>>> 5) Click on "Edit Items" Link and then "Update" Link it is it is   Giving NPE on some Promotion (Happy
>>>> Hour Promotion 9020).
>>>>
>>>> Thanks Arpit for the contribution.
>>>>
>>>> Modified:
>>>>   ofbiz/branches/release09.04/applications/order/src/org/ofbiz/  order/shoppingcart/ShoppingCart.java
>>>>   ofbiz/branches/release09.04/applications/order/src/org/ofbiz/  order/shoppingcart/ShoppingCartEvents.java
>>>>
>>>> Modified: ofbiz/branches/release09.04/applications/order/src/org/  ofbiz/order/shoppingcart/ShoppingCart.java
>>>> URL: 
>>>> http://svn.apache.org/viewvc/ofbiz/branches/release09.04/applications/order/src/org/ofbiz/order/shoppingcart/ShoppingCart.java?rev=882456&r1=882455&r2=882456&view=diff
>>>> = = = = = = = =  = = ====================================================================
>>>> --- ofbiz/branches/release09.04/applications/order/src/org/ofbiz/  order/shoppingcart/ShoppingCart.java (original)
>>>> +++ ofbiz/branches/release09.04/applications/order/src/org/ofbiz/  order/shoppingcart/ShoppingCart.java Fri Nov 20 09:04:46 
>>>> 2009
>>>> @@ -826,6 +826,7 @@
>>>>            return null;
>>>>        }
>>>>        return (ShoppingCartItem) cartLines.get(index);
>>>> +
>>>>    }
>>>>
>>>>    public ShoppingCartItem findCartItem(String orderItemSeqId) {
>>>> @@ -2009,7 +2010,10 @@
>>>>    }
>>>>
>>>>    public void setItemShipGroupQty(int itemIndex, BigDecimal   quantity, int idx) {
>>>> -        this.setItemShipGroupQty(this.findCartItem(itemIndex),   itemIndex, quantity, idx);
>>>> +        ShoppingCartItem itemIdx = this.findCartItem(itemIndex);
>>>> +        if(itemIdx != null) {
>>>> +            this.setItemShipGroupQty(itemIdx, itemIndex,  quantity,  idx);
>>>> +        }
>>>>    }
>>>>
>>>>    public void setItemShipGroupQty(ShoppingCartItem item,   BigDecimal quantity, int idx) {
>>>> @@ -2026,16 +2030,19 @@
>>>>            }
>>>>
>>>>            // never set more than quantity ordered
>>>> -            if (quantity.compareTo(item.getQuantity()) > 0) {
>>>> -                quantity = item.getQuantity();
>>>> -            }
>>>> -
>>>> -            // re-set the ship group's before and after dates  based  on the item's
>>>> -             csi.resetShipBeforeDateIfAfter(item.getShipBeforeDate());
>>>> -             csi.resetShipAfterDateIfBefore(item.getShipAfterDate());
>>>> -
>>>> -            CartShipInfo.CartShipItemInfo csii =   csi.setItemInfo(item, quantity);
>>>> -            this.checkShipItemInfo(csi, csii);
>>>> +            if (item != null) {
>>>> +                if (quantity.compareTo(item.getQuantity()) > 0) {
>>>> +                    quantity = item.getQuantity();
>>>> +                }
>>>> +
>>>> +
>>>> +                // re-set the ship group's before and after  dates  based on the item's
>>>> +                  csi.resetShipBeforeDateIfAfter(item.getShipBeforeDate());
>>>> +                  csi.resetShipAfterDateIfBefore(item.getShipAfterDate());
>>>> +
>>>> +                CartShipInfo.CartShipItemInfo csii =   csi.setItemInfo(item, quantity);
>>>> +                this.checkShipItemInfo(csi, csii);
>>>> +            }
>>>>        }
>>>>    }
>>>>
>>>>
>>>> Modified: ofbiz/branches/release09.04/applications/order/src/org/  ofbiz/order/shoppingcart/ShoppingCartEvents.java
>>>> URL: 
>>>> http://svn.apache.org/viewvc/ofbiz/branches/release09.04/applications/order/src/org/ofbiz/order/shoppingcart/ShoppingCartEvents.java?rev=882456&r1=882455&r2=882456&view=diff
>>>> = = = = = = = =  = = ====================================================================
>>>> --- ofbiz/branches/release09.04/applications/order/src/org/ofbiz/  order/shoppingcart/ShoppingCartEvents.java (original)
>>>> +++ ofbiz/branches/release09.04/applications/order/src/org/ofbiz/  order/shoppingcart/ShoppingCartEvents.java Fri Nov 20 
>>>> 09:04:46 2009
>>>> @@ -20,20 +20,21 @@
>>>>
>>>> import java.math.BigDecimal;
>>>> import java.math.MathContext;
>>>> +import java.sql.Timestamp;
>>>> import java.text.NumberFormat;
>>>> +import java.util.ArrayList;
>>>> import java.util.Iterator;
>>>> import java.util.LinkedList;
>>>> import java.util.List;
>>>> import java.util.Locale;
>>>> import java.util.Map;
>>>> -import javolution.util.FastMap;
>>>> -import java.sql.Timestamp;
>>>>
>>>> import javax.servlet.http.HttpServletRequest;
>>>> import javax.servlet.http.HttpServletResponse;
>>>> import javax.servlet.http.HttpSession;
>>>>
>>>> import javolution.util.FastList;
>>>> +import javolution.util.FastMap;
>>>>
>>>> import org.ofbiz.base.util.Debug;
>>>> import org.ofbiz.base.util.UtilDateTime;
>>>> @@ -1288,6 +1289,7 @@
>>>>        LocalDispatcher dispatcher = (LocalDispatcher)   request.getAttribute("dispatcher");
>>>>        HttpSession session = request.getSession();
>>>>        GenericValue userLogin =   (GenericValue)session.getAttribute("userLogin");
>>>> +        Delegator delegator = (Delegator)   request.getAttribute("delegator");
>>>>
>>>>        String quoteId = request.getParameter("orderId");
>>>>
>>>> @@ -1303,7 +1305,49 @@
>>>>             }
>>>>
>>>>            cart = (ShoppingCart) outMap.get("shoppingCart");
>>>> -
>>>> +
>>>> +            cart.removeAdjustmentByType("SALES_TAX");
>>>> +            cart.removeAdjustmentByType("PROMOTION_ADJUSTMENT");
>>>> +            String shipGroupSeqId = null;
>>>> +            long groupIndex = cart.getShipInfoSize();
>>>> +            List orderAdjustmentList = new ArrayList();
>>>> +            List orderAdjustments = new ArrayList();
>>>> +            orderAdjustments = cart.getAdjustments();
>>>> +            try {
>>>> +                orderAdjustmentList =   delegator.findList("OrderAdjustment",   EntityCondition.makeCondition("orderId", 
>>>> EntityOperator.EQUALS,   orderId), null, null, null, false);
>>>> +            } catch (Exception e) {
>>>> +                Debug.logError(e, module);
>>>> +            }
>>>> +            for (long itr = 1; itr <= groupIndex; itr++) {
>>>> +                shipGroupSeqId =   UtilFormatOut.formatPaddedNumber(1, 5);
>>>> +                List<GenericValue> duplicateAdjustmentList = new   ArrayList<GenericValue>();
>>>> +                for (GenericValue adjustment:   (List<GenericValue>)orderAdjustmentList) {
>>>> +                    if  ("PROMOTION_ADJUSTMENT  ".equals(adjustment.get("orderAdjustmentTypeId"))) {
>>>> +                        cart.addAdjustment(adjustment);
>>>> +                    }
>>>> +                    if   ("SALES_TAX".equals(adjustment.get("orderAdjustmentTypeId"))) {
>>>> +                        if (adjustment.get("description") != null
>>>> +                                    &&   ((String)adjustment.get("description")).startsWith("Tax  adjustment  due")) {
>>>> +                                cart.addAdjustment(adjustment);
>>>> +                            }
>>>> +                        if ( adjustment.get("comments") != null
>>>> +                                &&   ((String)adjustment.get("comments")).startsWith("Added manually   by")) {
>>>> +                            cart.addAdjustment(adjustment);
>>>> +                        }
>>>> +                    }
>>>> +                }
>>>> +                for (GenericValue orderAdjustment:   (List<GenericValue>)orderAdjustments) {
>>>> +                    if   ("OrderAdjustment".equals(orderAdjustment.getEntityName())) {
>>>> +                        if  (("SHIPPING_CHARGES  ".equals(orderAdjustment.get("orderAdjustmentTypeId"))) &&
>>>> +                                  orderAdjustment.get("orderId").equals(orderId) &&
>>>> +                                  orderAdjustment.get("shipGroupSeqId").equals(shipGroupSeqId) && 
>>>> orderAdjustment.get("comments") == null) {
>>>> +                            // Removing objects from list for  old  Shipping and Handling Charges Adjustment and Sales Tax 
>>>> Adjustment.
>>>> +                              duplicateAdjustmentList.add(orderAdjustment);
>>>> +                        }
>>>> +                    }
>>>> +                }
>>>> +                 orderAdjustments.removeAll(duplicateAdjustmentList);
>>>> +            }
>>>>        } catch (GenericServiceException exc) {
>>>>            request.setAttribute("_ERROR_MESSAGE_",  exc.getMessage());
>>>>            return "error";
>>>>
>>>>
>>>
>>
>>
>
> 



Re: svn commit: r882456 - in /ofbiz/branches/release09.04/applications/order/src/org/ofbiz/order/shoppingcart: ShoppingCart.java ShoppingCartEvents.java

Posted by Scott Gray <sc...@hotwaxmedia.com>.
I doubt it would be worth getting it set up for 9.04 considering a  
large number of the tests don't pass.  I don't like the idea of  
getting it set up just to test the build process because developers  
really should be checking that themselves before committing, along  
with testing the fix that they just back ported.

Regards
Scott

On 22/11/2009, at 6:10 AM, Jacques Le Roux wrote:

> Hi devs,
>
> Hopefully this kind of issues will be more easily avoided when we  
> will have a continuous integration server running...
>
> Jacques
>
> From: "Scott Gray" <sc...@hotwaxmedia.com>
>> Hi Ashish
>>
>> This commit breaks the build, please fix it and always at the  
>> absolute  minimum ensure that the release branch compiles before  
>> committing any  changes.  Ideally everyone would also first confirm  
>> that a bug exists  in the branch and also that the changes fix it  
>> before committing.
>>
>> Thanks
>> Scott
>>
>> HotWax Media
>> http://www.hotwaxmedia.com
>>
>> On 20/11/2009, at 10:04 PM, ashish@apache.org wrote:
>>
>>> Author: ashish
>>> Date: Fri Nov 20 09:04:46 2009
>>> New Revision: 882456
>>>
>>> URL: http://svn.apache.org/viewvc?rev=882456&view=rev
>>> Log:
>>> Applied fix from trunk revision: 882454.
>>> Applied patch from jira issue OFBIZ-3208 - On order view page  
>>> when  clicking on "Create As New Order", the adjustments Shipping  
>>> and  Handling and Sales Tax are duplicated.
>>>
>>> Patch will resolve the following Issues
>>>
>>> 1) Shipping and Handling Charges are added twice in new order  
>>> amount.
>>> 2) Sales Tax are added twice in new order amount.
>>> 3) Add extra tax on shipping and handling charges for new order.
>>> 4) When click on "Create as New Order" Link, it is Giving NPE on   
>>> some Promotion (Happy Hour
>>> Promotion 9020).
>>> 5) Click on "Edit Items" Link and then "Update" Link it is it is   
>>> Giving NPE on some Promotion (Happy
>>> Hour Promotion 9020).
>>>
>>> Thanks Arpit for the contribution.
>>>
>>> Modified:
>>>   ofbiz/branches/release09.04/applications/order/src/org/ofbiz/  
>>> order/shoppingcart/ShoppingCart.java
>>>   ofbiz/branches/release09.04/applications/order/src/org/ofbiz/  
>>> order/shoppingcart/ShoppingCartEvents.java
>>>
>>> Modified: ofbiz/branches/release09.04/applications/order/src/org/  
>>> ofbiz/order/shoppingcart/ShoppingCart.java
>>> URL: http://svn.apache.org/viewvc/ofbiz/branches/release09.04/applications/order/src/org/ofbiz/order/shoppingcart/ShoppingCart.java?rev=882456&r1=882455&r2=882456&view=diff
>>> = = = = = = = =  
>>> = 
>>> = 
>>> ====================================================================
>>> --- ofbiz/branches/release09.04/applications/order/src/org/ofbiz/  
>>> order/shoppingcart/ShoppingCart.java (original)
>>> +++ ofbiz/branches/release09.04/applications/order/src/org/ofbiz/  
>>> order/shoppingcart/ShoppingCart.java Fri Nov 20 09:04:46 2009
>>> @@ -826,6 +826,7 @@
>>>            return null;
>>>        }
>>>        return (ShoppingCartItem) cartLines.get(index);
>>> +
>>>    }
>>>
>>>    public ShoppingCartItem findCartItem(String orderItemSeqId) {
>>> @@ -2009,7 +2010,10 @@
>>>    }
>>>
>>>    public void setItemShipGroupQty(int itemIndex, BigDecimal   
>>> quantity, int idx) {
>>> -        this.setItemShipGroupQty(this.findCartItem(itemIndex),   
>>> itemIndex, quantity, idx);
>>> +        ShoppingCartItem itemIdx = this.findCartItem(itemIndex);
>>> +        if(itemIdx != null) {
>>> +            this.setItemShipGroupQty(itemIdx, itemIndex,  
>>> quantity,  idx);
>>> +        }
>>>    }
>>>
>>>    public void setItemShipGroupQty(ShoppingCartItem item,   
>>> BigDecimal quantity, int idx) {
>>> @@ -2026,16 +2030,19 @@
>>>            }
>>>
>>>            // never set more than quantity ordered
>>> -            if (quantity.compareTo(item.getQuantity()) > 0) {
>>> -                quantity = item.getQuantity();
>>> -            }
>>> -
>>> -            // re-set the ship group's before and after dates  
>>> based  on the item's
>>> -             
>>> csi.resetShipBeforeDateIfAfter(item.getShipBeforeDate());
>>> -             
>>> csi.resetShipAfterDateIfBefore(item.getShipAfterDate());
>>> -
>>> -            CartShipInfo.CartShipItemInfo csii =   
>>> csi.setItemInfo(item, quantity);
>>> -            this.checkShipItemInfo(csi, csii);
>>> +            if (item != null) {
>>> +                if (quantity.compareTo(item.getQuantity()) > 0) {
>>> +                    quantity = item.getQuantity();
>>> +                }
>>> +
>>> +
>>> +                // re-set the ship group's before and after  
>>> dates  based on the item's
>>> +                  
>>> csi.resetShipBeforeDateIfAfter(item.getShipBeforeDate());
>>> +                  
>>> csi.resetShipAfterDateIfBefore(item.getShipAfterDate());
>>> +
>>> +                CartShipInfo.CartShipItemInfo csii =   
>>> csi.setItemInfo(item, quantity);
>>> +                this.checkShipItemInfo(csi, csii);
>>> +            }
>>>        }
>>>    }
>>>
>>>
>>> Modified: ofbiz/branches/release09.04/applications/order/src/org/  
>>> ofbiz/order/shoppingcart/ShoppingCartEvents.java
>>> URL: http://svn.apache.org/viewvc/ofbiz/branches/release09.04/applications/order/src/org/ofbiz/order/shoppingcart/ShoppingCartEvents.java?rev=882456&r1=882455&r2=882456&view=diff
>>> = = = = = = = =  
>>> = 
>>> = 
>>> ====================================================================
>>> --- ofbiz/branches/release09.04/applications/order/src/org/ofbiz/  
>>> order/shoppingcart/ShoppingCartEvents.java (original)
>>> +++ ofbiz/branches/release09.04/applications/order/src/org/ofbiz/  
>>> order/shoppingcart/ShoppingCartEvents.java Fri Nov 20 09:04:46 2009
>>> @@ -20,20 +20,21 @@
>>>
>>> import java.math.BigDecimal;
>>> import java.math.MathContext;
>>> +import java.sql.Timestamp;
>>> import java.text.NumberFormat;
>>> +import java.util.ArrayList;
>>> import java.util.Iterator;
>>> import java.util.LinkedList;
>>> import java.util.List;
>>> import java.util.Locale;
>>> import java.util.Map;
>>> -import javolution.util.FastMap;
>>> -import java.sql.Timestamp;
>>>
>>> import javax.servlet.http.HttpServletRequest;
>>> import javax.servlet.http.HttpServletResponse;
>>> import javax.servlet.http.HttpSession;
>>>
>>> import javolution.util.FastList;
>>> +import javolution.util.FastMap;
>>>
>>> import org.ofbiz.base.util.Debug;
>>> import org.ofbiz.base.util.UtilDateTime;
>>> @@ -1288,6 +1289,7 @@
>>>        LocalDispatcher dispatcher = (LocalDispatcher)   
>>> request.getAttribute("dispatcher");
>>>        HttpSession session = request.getSession();
>>>        GenericValue userLogin =   
>>> (GenericValue)session.getAttribute("userLogin");
>>> +        Delegator delegator = (Delegator)   
>>> request.getAttribute("delegator");
>>>
>>>        String quoteId = request.getParameter("orderId");
>>>
>>> @@ -1303,7 +1305,49 @@
>>>             }
>>>
>>>            cart = (ShoppingCart) outMap.get("shoppingCart");
>>> -
>>> +
>>> +            cart.removeAdjustmentByType("SALES_TAX");
>>> +            cart.removeAdjustmentByType("PROMOTION_ADJUSTMENT");
>>> +            String shipGroupSeqId = null;
>>> +            long groupIndex = cart.getShipInfoSize();
>>> +            List orderAdjustmentList = new ArrayList();
>>> +            List orderAdjustments = new ArrayList();
>>> +            orderAdjustments = cart.getAdjustments();
>>> +            try {
>>> +                orderAdjustmentList =   
>>> delegator.findList("OrderAdjustment",   
>>> EntityCondition.makeCondition("orderId", EntityOperator.EQUALS,   
>>> orderId), null, null, null, false);
>>> +            } catch (Exception e) {
>>> +                Debug.logError(e, module);
>>> +            }
>>> +            for (long itr = 1; itr <= groupIndex; itr++) {
>>> +                shipGroupSeqId =   
>>> UtilFormatOut.formatPaddedNumber(1, 5);
>>> +                List<GenericValue> duplicateAdjustmentList = new   
>>> ArrayList<GenericValue>();
>>> +                for (GenericValue adjustment:   
>>> (List<GenericValue>)orderAdjustmentList) {
>>> +                    if  ("PROMOTION_ADJUSTMENT  
>>> ".equals(adjustment.get("orderAdjustmentTypeId"))) {
>>> +                        cart.addAdjustment(adjustment);
>>> +                    }
>>> +                    if   
>>> ("SALES_TAX".equals(adjustment.get("orderAdjustmentTypeId"))) {
>>> +                        if (adjustment.get("description") != null
>>> +                                    &&   
>>> ((String)adjustment.get("description")).startsWith("Tax  
>>> adjustment  due")) {
>>> +                                cart.addAdjustment(adjustment);
>>> +                            }
>>> +                        if ( adjustment.get("comments") != null
>>> +                                &&   
>>> ((String)adjustment.get("comments")).startsWith("Added manually   
>>> by")) {
>>> +                            cart.addAdjustment(adjustment);
>>> +                        }
>>> +                    }
>>> +                }
>>> +                for (GenericValue orderAdjustment:   
>>> (List<GenericValue>)orderAdjustments) {
>>> +                    if   
>>> ("OrderAdjustment".equals(orderAdjustment.getEntityName())) {
>>> +                        if  (("SHIPPING_CHARGES  
>>> ".equals(orderAdjustment.get("orderAdjustmentTypeId"))) &&
>>> +                                  
>>> orderAdjustment.get("orderId").equals(orderId) &&
>>> +                                  
>>> orderAdjustment.get("shipGroupSeqId").equals(shipGroupSeqId) &&  
>>> orderAdjustment.get("comments") == null) {
>>> +                            // Removing objects from list for  
>>> old  Shipping and Handling Charges Adjustment and Sales Tax  
>>> Adjustment.
>>> +                              
>>> duplicateAdjustmentList.add(orderAdjustment);
>>> +                        }
>>> +                    }
>>> +                }
>>> +                 
>>> orderAdjustments.removeAll(duplicateAdjustmentList);
>>> +            }
>>>        } catch (GenericServiceException exc) {
>>>            request.setAttribute("_ERROR_MESSAGE_",  
>>> exc.getMessage());
>>>            return "error";
>>>
>>>
>>
>
>


Re: svn commit: r882456 - in /ofbiz/branches/release09.04/applications/order/src/org/ofbiz/order/shoppingcart: ShoppingCart.java ShoppingCartEvents.java

Posted by Jacques Le Roux <ja...@les7arts.com>.
Hi devs,

Hopefully this kind of issues will be more easily avoided when we will have a continuous integration server running...

Jacques

From: "Scott Gray" <sc...@hotwaxmedia.com>
> Hi Ashish
>
> This commit breaks the build, please fix it and always at the absolute  minimum ensure that the release branch compiles before 
> committing any  changes.  Ideally everyone would also first confirm that a bug exists  in the branch and also that the changes fix 
> it before committing.
>
> Thanks
> Scott
>
> HotWax Media
> http://www.hotwaxmedia.com
>
> On 20/11/2009, at 10:04 PM, ashish@apache.org wrote:
>
>> Author: ashish
>> Date: Fri Nov 20 09:04:46 2009
>> New Revision: 882456
>>
>> URL: http://svn.apache.org/viewvc?rev=882456&view=rev
>> Log:
>> Applied fix from trunk revision: 882454.
>> Applied patch from jira issue OFBIZ-3208 - On order view page when  clicking on "Create As New Order", the adjustments Shipping 
>> and  Handling and Sales Tax are duplicated.
>>
>> Patch will resolve the following Issues
>>
>> 1) Shipping and Handling Charges are added twice in new order amount.
>> 2) Sales Tax are added twice in new order amount.
>> 3) Add extra tax on shipping and handling charges for new order.
>> 4) When click on "Create as New Order" Link, it is Giving NPE on  some Promotion (Happy Hour
>> Promotion 9020).
>> 5) Click on "Edit Items" Link and then "Update" Link it is it is  Giving NPE on some Promotion (Happy
>> Hour Promotion 9020).
>>
>> Thanks Arpit for the contribution.
>>
>> Modified:
>>    ofbiz/branches/release09.04/applications/order/src/org/ofbiz/ order/shoppingcart/ShoppingCart.java
>>    ofbiz/branches/release09.04/applications/order/src/org/ofbiz/ order/shoppingcart/ShoppingCartEvents.java
>>
>> Modified: ofbiz/branches/release09.04/applications/order/src/org/ ofbiz/order/shoppingcart/ShoppingCart.java
>> URL: 
>> http://svn.apache.org/viewvc/ofbiz/branches/release09.04/applications/order/src/org/ofbiz/order/shoppingcart/ShoppingCart.java?rev=882456&r1=882455&r2=882456&view=diff
>> = = = = = = = = ======================================================================
>> --- ofbiz/branches/release09.04/applications/order/src/org/ofbiz/ order/shoppingcart/ShoppingCart.java (original)
>> +++ ofbiz/branches/release09.04/applications/order/src/org/ofbiz/ order/shoppingcart/ShoppingCart.java Fri Nov 20 09:04:46 2009
>> @@ -826,6 +826,7 @@
>>             return null;
>>         }
>>         return (ShoppingCartItem) cartLines.get(index);
>> +
>>     }
>>
>>     public ShoppingCartItem findCartItem(String orderItemSeqId) {
>> @@ -2009,7 +2010,10 @@
>>     }
>>
>>     public void setItemShipGroupQty(int itemIndex, BigDecimal  quantity, int idx) {
>> -        this.setItemShipGroupQty(this.findCartItem(itemIndex),  itemIndex, quantity, idx);
>> +        ShoppingCartItem itemIdx = this.findCartItem(itemIndex);
>> +        if(itemIdx != null) {
>> +            this.setItemShipGroupQty(itemIdx, itemIndex, quantity,  idx);
>> +        }
>>     }
>>
>>     public void setItemShipGroupQty(ShoppingCartItem item,  BigDecimal quantity, int idx) {
>> @@ -2026,16 +2030,19 @@
>>             }
>>
>>             // never set more than quantity ordered
>> -            if (quantity.compareTo(item.getQuantity()) > 0) {
>> -                quantity = item.getQuantity();
>> -            }
>> -
>> -            // re-set the ship group's before and after dates based  on the item's
>> -            csi.resetShipBeforeDateIfAfter(item.getShipBeforeDate());
>> -            csi.resetShipAfterDateIfBefore(item.getShipAfterDate());
>> -
>> -            CartShipInfo.CartShipItemInfo csii =  csi.setItemInfo(item, quantity);
>> -            this.checkShipItemInfo(csi, csii);
>> +            if (item != null) {
>> +                if (quantity.compareTo(item.getQuantity()) > 0) {
>> +                    quantity = item.getQuantity();
>> +                }
>> +
>> +
>> +                // re-set the ship group's before and after dates  based on the item's
>> +                 csi.resetShipBeforeDateIfAfter(item.getShipBeforeDate());
>> +                 csi.resetShipAfterDateIfBefore(item.getShipAfterDate());
>> +
>> +                CartShipInfo.CartShipItemInfo csii =  csi.setItemInfo(item, quantity);
>> +                this.checkShipItemInfo(csi, csii);
>> +            }
>>         }
>>     }
>>
>>
>> Modified: ofbiz/branches/release09.04/applications/order/src/org/ ofbiz/order/shoppingcart/ShoppingCartEvents.java
>> URL: 
>> http://svn.apache.org/viewvc/ofbiz/branches/release09.04/applications/order/src/org/ofbiz/order/shoppingcart/ShoppingCartEvents.java?rev=882456&r1=882455&r2=882456&view=diff
>> = = = = = = = = ======================================================================
>> --- ofbiz/branches/release09.04/applications/order/src/org/ofbiz/ order/shoppingcart/ShoppingCartEvents.java (original)
>> +++ ofbiz/branches/release09.04/applications/order/src/org/ofbiz/ order/shoppingcart/ShoppingCartEvents.java Fri Nov 20 09:04:46 
>> 2009
>> @@ -20,20 +20,21 @@
>>
>> import java.math.BigDecimal;
>> import java.math.MathContext;
>> +import java.sql.Timestamp;
>> import java.text.NumberFormat;
>> +import java.util.ArrayList;
>> import java.util.Iterator;
>> import java.util.LinkedList;
>> import java.util.List;
>> import java.util.Locale;
>> import java.util.Map;
>> -import javolution.util.FastMap;
>> -import java.sql.Timestamp;
>>
>> import javax.servlet.http.HttpServletRequest;
>> import javax.servlet.http.HttpServletResponse;
>> import javax.servlet.http.HttpSession;
>>
>> import javolution.util.FastList;
>> +import javolution.util.FastMap;
>>
>> import org.ofbiz.base.util.Debug;
>> import org.ofbiz.base.util.UtilDateTime;
>> @@ -1288,6 +1289,7 @@
>>         LocalDispatcher dispatcher = (LocalDispatcher)  request.getAttribute("dispatcher");
>>         HttpSession session = request.getSession();
>>         GenericValue userLogin =  (GenericValue)session.getAttribute("userLogin");
>> +        Delegator delegator = (Delegator)  request.getAttribute("delegator");
>>
>>         String quoteId = request.getParameter("orderId");
>>
>> @@ -1303,7 +1305,49 @@
>>              }
>>
>>             cart = (ShoppingCart) outMap.get("shoppingCart");
>> -
>> +
>> +            cart.removeAdjustmentByType("SALES_TAX");
>> +            cart.removeAdjustmentByType("PROMOTION_ADJUSTMENT");
>> +            String shipGroupSeqId = null;
>> +            long groupIndex = cart.getShipInfoSize();
>> +            List orderAdjustmentList = new ArrayList();
>> +            List orderAdjustments = new ArrayList();
>> +            orderAdjustments = cart.getAdjustments();
>> +            try {
>> +                orderAdjustmentList =  delegator.findList("OrderAdjustment",  EntityCondition.makeCondition("orderId", 
>> EntityOperator.EQUALS,  orderId), null, null, null, false);
>> +            } catch (Exception e) {
>> +                Debug.logError(e, module);
>> +            }
>> +            for (long itr = 1; itr <= groupIndex; itr++) {
>> +                shipGroupSeqId =  UtilFormatOut.formatPaddedNumber(1, 5);
>> +                List<GenericValue> duplicateAdjustmentList = new  ArrayList<GenericValue>();
>> +                for (GenericValue adjustment:  (List<GenericValue>)orderAdjustmentList) {
>> +                    if  ("PROMOTION_ADJUSTMENT ".equals(adjustment.get("orderAdjustmentTypeId"))) {
>> +                        cart.addAdjustment(adjustment);
>> +                    }
>> +                    if  ("SALES_TAX".equals(adjustment.get("orderAdjustmentTypeId"))) {
>> +                        if (adjustment.get("description") != null
>> +                                    &&  ((String)adjustment.get("description")).startsWith("Tax adjustment  due")) {
>> +                                cart.addAdjustment(adjustment);
>> +                            }
>> +                        if ( adjustment.get("comments") != null
>> +                                &&  ((String)adjustment.get("comments")).startsWith("Added manually  by")) {
>> +                            cart.addAdjustment(adjustment);
>> +                        }
>> +                    }
>> +                }
>> +                for (GenericValue orderAdjustment:  (List<GenericValue>)orderAdjustments) {
>> +                    if  ("OrderAdjustment".equals(orderAdjustment.getEntityName())) {
>> +                        if  (("SHIPPING_CHARGES ".equals(orderAdjustment.get("orderAdjustmentTypeId"))) &&
>> +                                 orderAdjustment.get("orderId").equals(orderId) &&
>> +                                 orderAdjustment.get("shipGroupSeqId").equals(shipGroupSeqId) && 
>> orderAdjustment.get("comments") == null) {
>> +                            // Removing objects from list for old  Shipping and Handling Charges Adjustment and Sales Tax 
>> Adjustment.
>> +                             duplicateAdjustmentList.add(orderAdjustment);
>> +                        }
>> +                    }
>> +                }
>> +                orderAdjustments.removeAll(duplicateAdjustmentList);
>> +            }
>>         } catch (GenericServiceException exc) {
>>             request.setAttribute("_ERROR_MESSAGE_", exc.getMessage());
>>             return "error";
>>
>>
>
> 



Re: svn commit: r882456 - in /ofbiz/branches/release09.04/applications/order/src/org/ofbiz/order/shoppingcart: ShoppingCart.java ShoppingCartEvents.java

Posted by Ashish Vijaywargiya <vi...@gmail.com>.
Hello Scott,

Thanks for your comment.
I have reverted my changes in r882880.

Will try to avoid such issues in future.

--
Ashish

On Sat, Nov 21, 2009 at 2:26 PM, Scott Gray <sc...@hotwaxmedia.com>wrote:

> Hi Ashish
>
> This commit breaks the build, please fix it and always at the absolute
> minimum ensure that the release branch compiles before committing any
> changes.  Ideally everyone would also first confirm that a bug exists in the
> branch and also that the changes fix it before committing.
>
> Thanks
> Scott
>
> HotWax Media
> http://www.hotwaxmedia.com
>
>
> On 20/11/2009, at 10:04 PM, ashish@apache.org wrote:
>
>  Author: ashish
>> Date: Fri Nov 20 09:04:46 2009
>> New Revision: 882456
>>
>> URL: http://svn.apache.org/viewvc?rev=882456&view=rev
>> Log:
>> Applied fix from trunk revision: 882454.
>> Applied patch from jira issue OFBIZ-3208 - On order view page when
>> clicking on "Create As New Order", the adjustments Shipping and Handling and
>> Sales Tax are duplicated.
>>
>> Patch will resolve the following Issues
>>
>> 1) Shipping and Handling Charges are added twice in new order amount.
>> 2) Sales Tax are added twice in new order amount.
>> 3) Add extra tax on shipping and handling charges for new order.
>> 4) When click on "Create as New Order" Link, it is Giving NPE on some
>> Promotion (Happy Hour
>> Promotion 9020).
>> 5) Click on "Edit Items" Link and then "Update" Link it is it is Giving
>> NPE on some Promotion (Happy
>> Hour Promotion 9020).
>>
>> Thanks Arpit for the contribution.
>>
>> Modified:
>>
>> ofbiz/branches/release09.04/applications/order/src/org/ofbiz/order/shoppingcart/ShoppingCart.java
>>
>> ofbiz/branches/release09.04/applications/order/src/org/ofbiz/order/shoppingcart/ShoppingCartEvents.java
>>
>> Modified:
>> ofbiz/branches/release09.04/applications/order/src/org/ofbiz/order/shoppingcart/ShoppingCart.java
>> URL:
>> http://svn.apache.org/viewvc/ofbiz/branches/release09.04/applications/order/src/org/ofbiz/order/shoppingcart/ShoppingCart.java?rev=882456&r1=882455&r2=882456&view=diff
>>
>> ==============================================================================
>> ---
>> ofbiz/branches/release09.04/applications/order/src/org/ofbiz/order/shoppingcart/ShoppingCart.java
>> (original)
>> +++
>> ofbiz/branches/release09.04/applications/order/src/org/ofbiz/order/shoppingcart/ShoppingCart.java
>> Fri Nov 20 09:04:46 2009
>> @@ -826,6 +826,7 @@
>>            return null;
>>        }
>>        return (ShoppingCartItem) cartLines.get(index);
>> +
>>    }
>>
>>    public ShoppingCartItem findCartItem(String orderItemSeqId) {
>> @@ -2009,7 +2010,10 @@
>>    }
>>
>>    public void setItemShipGroupQty(int itemIndex, BigDecimal quantity, int
>> idx) {
>> -        this.setItemShipGroupQty(this.findCartItem(itemIndex), itemIndex,
>> quantity, idx);
>> +        ShoppingCartItem itemIdx = this.findCartItem(itemIndex);
>> +        if(itemIdx != null) {
>> +            this.setItemShipGroupQty(itemIdx, itemIndex, quantity, idx);
>> +        }
>>    }
>>
>>    public void setItemShipGroupQty(ShoppingCartItem item, BigDecimal
>> quantity, int idx) {
>> @@ -2026,16 +2030,19 @@
>>            }
>>
>>            // never set more than quantity ordered
>> -            if (quantity.compareTo(item.getQuantity()) > 0) {
>> -                quantity = item.getQuantity();
>> -            }
>> -
>> -            // re-set the ship group's before and after dates based on
>> the item's
>> -            csi.resetShipBeforeDateIfAfter(item.getShipBeforeDate());
>> -            csi.resetShipAfterDateIfBefore(item.getShipAfterDate());
>> -
>> -            CartShipInfo.CartShipItemInfo csii = csi.setItemInfo(item,
>> quantity);
>> -            this.checkShipItemInfo(csi, csii);
>> +            if (item != null) {
>> +                if (quantity.compareTo(item.getQuantity()) > 0) {
>> +                    quantity = item.getQuantity();
>> +                }
>> +
>> +
>> +                // re-set the ship group's before and after dates based
>> on the item's
>> +                csi.resetShipBeforeDateIfAfter(item.getShipBeforeDate());
>> +                csi.resetShipAfterDateIfBefore(item.getShipAfterDate());
>> +
>> +                CartShipInfo.CartShipItemInfo csii =
>> csi.setItemInfo(item, quantity);
>> +                this.checkShipItemInfo(csi, csii);
>> +            }
>>        }
>>    }
>>
>>
>> Modified:
>> ofbiz/branches/release09.04/applications/order/src/org/ofbiz/order/shoppingcart/ShoppingCartEvents.java
>> URL:
>> http://svn.apache.org/viewvc/ofbiz/branches/release09.04/applications/order/src/org/ofbiz/order/shoppingcart/ShoppingCartEvents.java?rev=882456&r1=882455&r2=882456&view=diff
>>
>> ==============================================================================
>> ---
>> ofbiz/branches/release09.04/applications/order/src/org/ofbiz/order/shoppingcart/ShoppingCartEvents.java
>> (original)
>> +++
>> ofbiz/branches/release09.04/applications/order/src/org/ofbiz/order/shoppingcart/ShoppingCartEvents.java
>> Fri Nov 20 09:04:46 2009
>> @@ -20,20 +20,21 @@
>>
>> import java.math.BigDecimal;
>> import java.math.MathContext;
>> +import java.sql.Timestamp;
>> import java.text.NumberFormat;
>> +import java.util.ArrayList;
>> import java.util.Iterator;
>> import java.util.LinkedList;
>> import java.util.List;
>> import java.util.Locale;
>> import java.util.Map;
>> -import javolution.util.FastMap;
>> -import java.sql.Timestamp;
>>
>> import javax.servlet.http.HttpServletRequest;
>> import javax.servlet.http.HttpServletResponse;
>> import javax.servlet.http.HttpSession;
>>
>> import javolution.util.FastList;
>> +import javolution.util.FastMap;
>>
>> import org.ofbiz.base.util.Debug;
>> import org.ofbiz.base.util.UtilDateTime;
>> @@ -1288,6 +1289,7 @@
>>        LocalDispatcher dispatcher = (LocalDispatcher)
>> request.getAttribute("dispatcher");
>>        HttpSession session = request.getSession();
>>        GenericValue userLogin =
>> (GenericValue)session.getAttribute("userLogin");
>> +        Delegator delegator = (Delegator)
>> request.getAttribute("delegator");
>>
>>        String quoteId = request.getParameter("orderId");
>>
>> @@ -1303,7 +1305,49 @@
>>             }
>>
>>            cart = (ShoppingCart) outMap.get("shoppingCart");
>> -
>> +
>> +            cart.removeAdjustmentByType("SALES_TAX");
>> +            cart.removeAdjustmentByType("PROMOTION_ADJUSTMENT");
>> +            String shipGroupSeqId = null;
>> +            long groupIndex = cart.getShipInfoSize();
>> +            List orderAdjustmentList = new ArrayList();
>> +            List orderAdjustments = new ArrayList();
>> +            orderAdjustments = cart.getAdjustments();
>> +            try {
>> +                orderAdjustmentList =
>> delegator.findList("OrderAdjustment",
>> EntityCondition.makeCondition("orderId", EntityOperator.EQUALS, orderId),
>> null, null, null, false);
>> +            } catch (Exception e) {
>> +                Debug.logError(e, module);
>> +            }
>> +            for (long itr = 1; itr <= groupIndex; itr++) {
>> +                shipGroupSeqId = UtilFormatOut.formatPaddedNumber(1, 5);
>> +                List<GenericValue> duplicateAdjustmentList = new
>> ArrayList<GenericValue>();
>> +                for (GenericValue adjustment:
>> (List<GenericValue>)orderAdjustmentList) {
>> +                    if
>> ("PROMOTION_ADJUSTMENT".equals(adjustment.get("orderAdjustmentTypeId"))) {
>> +                        cart.addAdjustment(adjustment);
>> +                    }
>> +                    if
>> ("SALES_TAX".equals(adjustment.get("orderAdjustmentTypeId"))) {
>> +                        if (adjustment.get("description") != null
>> +                                    &&
>> ((String)adjustment.get("description")).startsWith("Tax adjustment due")) {
>> +                                cart.addAdjustment(adjustment);
>> +                            }
>> +                        if ( adjustment.get("comments") != null
>> +                                &&
>> ((String)adjustment.get("comments")).startsWith("Added manually by")) {
>> +                            cart.addAdjustment(adjustment);
>> +                        }
>> +                    }
>> +                }
>> +                for (GenericValue orderAdjustment:
>> (List<GenericValue>)orderAdjustments) {
>> +                    if
>> ("OrderAdjustment".equals(orderAdjustment.getEntityName())) {
>> +                        if
>> (("SHIPPING_CHARGES".equals(orderAdjustment.get("orderAdjustmentTypeId")))
>> &&
>> +
>>  orderAdjustment.get("orderId").equals(orderId) &&
>> +
>>  orderAdjustment.get("shipGroupSeqId").equals(shipGroupSeqId) &&
>> orderAdjustment.get("comments") == null) {
>> +                            // Removing objects from list for old
>> Shipping and Handling Charges Adjustment and Sales Tax Adjustment.
>> +                            duplicateAdjustmentList.add(orderAdjustment);
>> +                        }
>> +                    }
>> +                }
>> +                orderAdjustments.removeAll(duplicateAdjustmentList);
>> +            }
>>        } catch (GenericServiceException exc) {
>>            request.setAttribute("_ERROR_MESSAGE_", exc.getMessage());
>>            return "error";
>>
>>
>>
>

Re: svn commit: r882456 - in /ofbiz/branches/release09.04/applications/order/src/org/ofbiz/order/shoppingcart: ShoppingCart.java ShoppingCartEvents.java

Posted by Scott Gray <sc...@hotwaxmedia.com>.
Hi Ashish

This commit breaks the build, please fix it and always at the absolute  
minimum ensure that the release branch compiles before committing any  
changes.  Ideally everyone would also first confirm that a bug exists  
in the branch and also that the changes fix it before committing.

Thanks
Scott

HotWax Media
http://www.hotwaxmedia.com

On 20/11/2009, at 10:04 PM, ashish@apache.org wrote:

> Author: ashish
> Date: Fri Nov 20 09:04:46 2009
> New Revision: 882456
>
> URL: http://svn.apache.org/viewvc?rev=882456&view=rev
> Log:
> Applied fix from trunk revision: 882454.
> Applied patch from jira issue OFBIZ-3208 - On order view page when  
> clicking on "Create As New Order", the adjustments Shipping and  
> Handling and Sales Tax are duplicated.
>
> Patch will resolve the following Issues
>
> 1) Shipping and Handling Charges are added twice in new order amount.
> 2) Sales Tax are added twice in new order amount.
> 3) Add extra tax on shipping and handling charges for new order.
> 4) When click on "Create as New Order" Link, it is Giving NPE on  
> some Promotion (Happy Hour
> Promotion 9020).
> 5) Click on "Edit Items" Link and then "Update" Link it is it is  
> Giving NPE on some Promotion (Happy
> Hour Promotion 9020).
>
> Thanks Arpit for the contribution.
>
> Modified:
>    ofbiz/branches/release09.04/applications/order/src/org/ofbiz/ 
> order/shoppingcart/ShoppingCart.java
>    ofbiz/branches/release09.04/applications/order/src/org/ofbiz/ 
> order/shoppingcart/ShoppingCartEvents.java
>
> Modified: ofbiz/branches/release09.04/applications/order/src/org/ 
> ofbiz/order/shoppingcart/ShoppingCart.java
> URL: http://svn.apache.org/viewvc/ofbiz/branches/release09.04/applications/order/src/org/ofbiz/order/shoppingcart/ShoppingCart.java?rev=882456&r1=882455&r2=882456&view=diff
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> ======================================================================
> --- ofbiz/branches/release09.04/applications/order/src/org/ofbiz/ 
> order/shoppingcart/ShoppingCart.java (original)
> +++ ofbiz/branches/release09.04/applications/order/src/org/ofbiz/ 
> order/shoppingcart/ShoppingCart.java Fri Nov 20 09:04:46 2009
> @@ -826,6 +826,7 @@
>             return null;
>         }
>         return (ShoppingCartItem) cartLines.get(index);
> +
>     }
>
>     public ShoppingCartItem findCartItem(String orderItemSeqId) {
> @@ -2009,7 +2010,10 @@
>     }
>
>     public void setItemShipGroupQty(int itemIndex, BigDecimal  
> quantity, int idx) {
> -        this.setItemShipGroupQty(this.findCartItem(itemIndex),  
> itemIndex, quantity, idx);
> +        ShoppingCartItem itemIdx = this.findCartItem(itemIndex);
> +        if(itemIdx != null) {
> +            this.setItemShipGroupQty(itemIdx, itemIndex, quantity,  
> idx);
> +        }
>     }
>
>     public void setItemShipGroupQty(ShoppingCartItem item,  
> BigDecimal quantity, int idx) {
> @@ -2026,16 +2030,19 @@
>             }
>
>             // never set more than quantity ordered
> -            if (quantity.compareTo(item.getQuantity()) > 0) {
> -                quantity = item.getQuantity();
> -            }
> -
> -            // re-set the ship group's before and after dates based  
> on the item's
> -            csi.resetShipBeforeDateIfAfter(item.getShipBeforeDate());
> -            csi.resetShipAfterDateIfBefore(item.getShipAfterDate());
> -
> -            CartShipInfo.CartShipItemInfo csii =  
> csi.setItemInfo(item, quantity);
> -            this.checkShipItemInfo(csi, csii);
> +            if (item != null) {
> +                if (quantity.compareTo(item.getQuantity()) > 0) {
> +                    quantity = item.getQuantity();
> +                }
> +
> +
> +                // re-set the ship group's before and after dates  
> based on the item's
> +                 
> csi.resetShipBeforeDateIfAfter(item.getShipBeforeDate());
> +                 
> csi.resetShipAfterDateIfBefore(item.getShipAfterDate());
> +
> +                CartShipInfo.CartShipItemInfo csii =  
> csi.setItemInfo(item, quantity);
> +                this.checkShipItemInfo(csi, csii);
> +            }
>         }
>     }
>
>
> Modified: ofbiz/branches/release09.04/applications/order/src/org/ 
> ofbiz/order/shoppingcart/ShoppingCartEvents.java
> URL: http://svn.apache.org/viewvc/ofbiz/branches/release09.04/applications/order/src/org/ofbiz/order/shoppingcart/ShoppingCartEvents.java?rev=882456&r1=882455&r2=882456&view=diff
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> ======================================================================
> --- ofbiz/branches/release09.04/applications/order/src/org/ofbiz/ 
> order/shoppingcart/ShoppingCartEvents.java (original)
> +++ ofbiz/branches/release09.04/applications/order/src/org/ofbiz/ 
> order/shoppingcart/ShoppingCartEvents.java Fri Nov 20 09:04:46 2009
> @@ -20,20 +20,21 @@
>
> import java.math.BigDecimal;
> import java.math.MathContext;
> +import java.sql.Timestamp;
> import java.text.NumberFormat;
> +import java.util.ArrayList;
> import java.util.Iterator;
> import java.util.LinkedList;
> import java.util.List;
> import java.util.Locale;
> import java.util.Map;
> -import javolution.util.FastMap;
> -import java.sql.Timestamp;
>
> import javax.servlet.http.HttpServletRequest;
> import javax.servlet.http.HttpServletResponse;
> import javax.servlet.http.HttpSession;
>
> import javolution.util.FastList;
> +import javolution.util.FastMap;
>
> import org.ofbiz.base.util.Debug;
> import org.ofbiz.base.util.UtilDateTime;
> @@ -1288,6 +1289,7 @@
>         LocalDispatcher dispatcher = (LocalDispatcher)  
> request.getAttribute("dispatcher");
>         HttpSession session = request.getSession();
>         GenericValue userLogin =  
> (GenericValue)session.getAttribute("userLogin");
> +        Delegator delegator = (Delegator)  
> request.getAttribute("delegator");
>
>         String quoteId = request.getParameter("orderId");
>
> @@ -1303,7 +1305,49 @@
>              }
>
>             cart = (ShoppingCart) outMap.get("shoppingCart");
> -
> +
> +            cart.removeAdjustmentByType("SALES_TAX");
> +            cart.removeAdjustmentByType("PROMOTION_ADJUSTMENT");
> +            String shipGroupSeqId = null;
> +            long groupIndex = cart.getShipInfoSize();
> +            List orderAdjustmentList = new ArrayList();
> +            List orderAdjustments = new ArrayList();
> +            orderAdjustments = cart.getAdjustments();
> +            try {
> +                orderAdjustmentList =  
> delegator.findList("OrderAdjustment",  
> EntityCondition.makeCondition("orderId", EntityOperator.EQUALS,  
> orderId), null, null, null, false);
> +            } catch (Exception e) {
> +                Debug.logError(e, module);
> +            }
> +            for (long itr = 1; itr <= groupIndex; itr++) {
> +                shipGroupSeqId =  
> UtilFormatOut.formatPaddedNumber(1, 5);
> +                List<GenericValue> duplicateAdjustmentList = new  
> ArrayList<GenericValue>();
> +                for (GenericValue adjustment:  
> (List<GenericValue>)orderAdjustmentList) {
> +                    if  
> ("PROMOTION_ADJUSTMENT 
> ".equals(adjustment.get("orderAdjustmentTypeId"))) {
> +                        cart.addAdjustment(adjustment);
> +                    }
> +                    if  
> ("SALES_TAX".equals(adjustment.get("orderAdjustmentTypeId"))) {
> +                        if (adjustment.get("description") != null
> +                                    &&  
> ((String)adjustment.get("description")).startsWith("Tax adjustment  
> due")) {
> +                                cart.addAdjustment(adjustment);
> +                            }
> +                        if ( adjustment.get("comments") != null
> +                                &&  
> ((String)adjustment.get("comments")).startsWith("Added manually  
> by")) {
> +                            cart.addAdjustment(adjustment);
> +                        }
> +                    }
> +                }
> +                for (GenericValue orderAdjustment:  
> (List<GenericValue>)orderAdjustments) {
> +                    if  
> ("OrderAdjustment".equals(orderAdjustment.getEntityName())) {
> +                        if  
> (("SHIPPING_CHARGES 
> ".equals(orderAdjustment.get("orderAdjustmentTypeId"))) &&
> +                                 
> orderAdjustment.get("orderId").equals(orderId) &&
> +                                 
> orderAdjustment.get("shipGroupSeqId").equals(shipGroupSeqId) &&  
> orderAdjustment.get("comments") == null) {
> +                            // Removing objects from list for old  
> Shipping and Handling Charges Adjustment and Sales Tax Adjustment.
> +                             
> duplicateAdjustmentList.add(orderAdjustment);
> +                        }
> +                    }
> +                }
> +                orderAdjustments.removeAll(duplicateAdjustmentList);
> +            }
>         } catch (GenericServiceException exc) {
>             request.setAttribute("_ERROR_MESSAGE_", exc.getMessage());
>             return "error";
>
>