Author: jacopoc
Date: Fri Mar 28 14:18:09 2014
New Revision: 1582755

URL: http://svn.apache.org/r1582755
Log:
Only formatting changes.

Modified:
    
ofbiz/trunk/applications/order/src/org/ofbiz/order/order/OrderReadHelper.java

Modified: 
ofbiz/trunk/applications/order/src/org/ofbiz/order/order/OrderReadHelper.java
URL: 
http://svn.apache.org/viewvc/ofbiz/trunk/applications/order/src/org/ofbiz/order/order/OrderReadHelper.java?rev=1582755&r1=1582754&r2=1582755&view=diff
==============================================================================
--- 
ofbiz/trunk/applications/order/src/org/ofbiz/order/order/OrderReadHelper.java 
(original)
+++ 
ofbiz/trunk/applications/order/src/org/ofbiz/order/order/OrderReadHelper.java 
Fri Mar 28 14:18:09 2014
@@ -218,14 +218,14 @@ public class OrderReadHelper {
             List<GenericValue> payments = FastList.newInstance();
             try {
                 List<EntityExpr> exprs = 
UtilMisc.toList(EntityCondition.makeCondition("statusId", 
EntityOperator.EQUALS, "PMNT_RECEIVED"),
-                                            
EntityCondition.makeCondition("statusId", EntityOperator.EQUALS, 
"PMNT_CONFIRMED"));
+                        EntityCondition.makeCondition("statusId", 
EntityOperator.EQUALS, "PMNT_CONFIRMED"));
                 payments = paymentPref.getRelated("Payment", null, null, 
false);
                 payments = EntityUtil.filterByOr(payments, exprs);
                 List<EntityExpr> conds = 
UtilMisc.toList(EntityCondition.makeCondition("paymentTypeId", 
EntityOperator.EQUALS, "CUSTOMER_PAYMENT"),
-                                            
EntityCondition.makeCondition("paymentTypeId", EntityOperator.EQUALS, 
"CUSTOMER_DEPOSIT"),
-                                            
EntityCondition.makeCondition("paymentTypeId", EntityOperator.EQUALS, 
"INTEREST_RECEIPT"),
-                                            
EntityCondition.makeCondition("paymentTypeId", EntityOperator.EQUALS, 
"GC_DEPOSIT"),
-                                            
EntityCondition.makeCondition("paymentTypeId", EntityOperator.EQUALS, 
"POS_PAID_IN"));
+                        EntityCondition.makeCondition("paymentTypeId", 
EntityOperator.EQUALS, "CUSTOMER_DEPOSIT"),
+                        EntityCondition.makeCondition("paymentTypeId", 
EntityOperator.EQUALS, "INTEREST_RECEIPT"),
+                        EntityCondition.makeCondition("paymentTypeId", 
EntityOperator.EQUALS, "GC_DEPOSIT"),
+                        EntityCondition.makeCondition("paymentTypeId", 
EntityOperator.EQUALS, "POS_PAID_IN"));
                 payments = EntityUtil.filterByOr(payments, conds);
             } catch (GenericEntityException e) {
                 Debug.logError(e, module);
@@ -319,7 +319,7 @@ public class OrderReadHelper {
 
     public List<GenericValue> getOrderTerms() {
         try {
-           return orderHeader.getRelated("OrderTerm", null, null, false);
+            return orderHeader.getRelated("OrderTerm", null, null, false);
         } catch (GenericEntityException e) {
             Debug.logError(e, module);
             return null;
@@ -1185,7 +1185,7 @@ public class OrderReadHelper {
         return piecesIncluded;
     }
 
-   public List<Map<String, Object>> getShippableItemInfo(String 
shipGroupSeqId) {
+    public List<Map<String, Object>> getShippableItemInfo(String 
shipGroupSeqId) {
         List<Map<String, Object>> shippableInfo = FastList.newInstance();
 
         List<GenericValue> validItems = getValidOrderItems(shipGroupSeqId);
@@ -1649,7 +1649,7 @@ public class OrderReadHelper {
             if (orderItem.get("productId") != null) {
                 productIds.add(orderItem.getString("productId"));
             }
-        }        
+        }
         return productIds;
     }
 
@@ -1666,42 +1666,42 @@ public class OrderReadHelper {
         return this.orderReturnItems;
     }
 
-   /**
-    * Get the quantity returned per order item.
-    * In other words, this method will count the ReturnItems
-    * related to each OrderItem.
-    *
-    * @return  Map of returned quantities as BigDecimals keyed to the 
orderItemSeqId
-    */
-   public Map<String, BigDecimal> getOrderItemReturnedQuantities() {
-       List<GenericValue> returnItems = getOrderReturnItems();
-
-       // since we don't have a handy grouped view entity, we'll have to group 
the return items by hand
-       Map<String, BigDecimal> returnMap = FastMap.newInstance();
-       for (GenericValue orderItem : this.getValidOrderItems()) {
-           List<GenericValue> group = EntityUtil.filterByAnd(returnItems, 
UtilMisc.toList(
-                                              
EntityCondition.makeCondition("orderId", orderItem.get("orderId")),
-                                              
EntityCondition.makeCondition("orderItemSeqId", 
orderItem.get("orderItemSeqId")),
-                                              
EntityCondition.makeCondition("statusId", EntityOperator.NOT_EQUAL, 
"RETURN_CANCELLED")));
-
-           // add up the returned quantities for this group TODO: received 
quantity should be used eventually
-           BigDecimal returned = BigDecimal.ZERO;
-           for (GenericValue returnItem : group) {
-               if (returnItem.getBigDecimal("returnQuantity") != null) {
-                   returned = 
returned.add(returnItem.getBigDecimal("returnQuantity"));
-               }
-           }
-
-           // the quantity returned per order item
-           returnMap.put(orderItem.getString("orderItemSeqId"), returned);
-       }
-       return returnMap;
-   }
-
-   /**
-    * Get the total quantity of returned items for an order. This will count
-    * only the ReturnItems that are directly correlated to an OrderItem.
-    */
+    /**
+     * Get the quantity returned per order item.
+     * In other words, this method will count the ReturnItems
+     * related to each OrderItem.
+     *
+     * @return  Map of returned quantities as BigDecimals keyed to the 
orderItemSeqId
+     */
+    public Map<String, BigDecimal> getOrderItemReturnedQuantities() {
+        List<GenericValue> returnItems = getOrderReturnItems();
+
+        // since we don't have a handy grouped view entity, we'll have to 
group the return items by hand
+        Map<String, BigDecimal> returnMap = FastMap.newInstance();
+        for (GenericValue orderItem : this.getValidOrderItems()) {
+            List<GenericValue> group = EntityUtil.filterByAnd(returnItems, 
UtilMisc.toList(
+                    EntityCondition.makeCondition("orderId", 
orderItem.get("orderId")),
+                    EntityCondition.makeCondition("orderItemSeqId", 
orderItem.get("orderItemSeqId")),
+                    EntityCondition.makeCondition("statusId", 
EntityOperator.NOT_EQUAL, "RETURN_CANCELLED")));
+
+            // add up the returned quantities for this group TODO: received 
quantity should be used eventually
+            BigDecimal returned = BigDecimal.ZERO;
+            for (GenericValue returnItem : group) {
+                if (returnItem.getBigDecimal("returnQuantity") != null) {
+                    returned = 
returned.add(returnItem.getBigDecimal("returnQuantity"));
+                }
+            }
+
+            // the quantity returned per order item
+            returnMap.put(orderItem.getString("orderItemSeqId"), returned);
+        }
+        return returnMap;
+    }
+
+    /**
+     * Get the total quantity of returned items for an order. This will count
+     * only the ReturnItems that are directly correlated to an OrderItem.
+     */
     public BigDecimal getOrderReturnedQuantity() {
         List<GenericValue> returnedItemsBase = getOrderReturnItems();
         List<GenericValue> returnedItems = new 
ArrayList<GenericValue>(returnedItemsBase.size());
@@ -2442,7 +2442,7 @@ public class OrderReadHelper {
         BigDecimal promoAdjTotal = ZERO;
 
         List<GenericValue> promoAdjustments = 
EntityUtil.filterByAnd(allOrderAdjustments, 
UtilMisc.toMap("orderAdjustmentTypeId", "PROMOTION_ADJUSTMENT"));
-        
+
         if (UtilValidate.isNotEmpty(promoAdjustments)) {
             Iterator<GenericValue> promoAdjIter = promoAdjustments.iterator();
             while (promoAdjIter.hasNext()) {
@@ -2495,7 +2495,7 @@ public class OrderReadHelper {
         rentalAdjustment = rentalAdjustment.divide(new BigDecimal(100), scale, 
rounding).multiply(new BigDecimal(String.valueOf(length)));
 //        Debug.logInfo("rental parameters....Nbr of persons:" + persons + " 
extra% 2nd person:" + secondPersonPerc + " extra% Nth person:" + nthPersonPerc 
+ " Length: " + length + "  total rental adjustment:" + rentalAdjustment 
,module);
         return rentalAdjustment; // return total rental adjustment
-        }
+    }
 
     public static BigDecimal 
getAllOrderItemsAdjustmentsTotal(List<GenericValue> orderItems, 
List<GenericValue> adjustments, boolean includeOther, boolean includeTax, 
boolean includeShipping) {
         BigDecimal result = ZERO;
@@ -2736,39 +2736,39 @@ public class OrderReadHelper {
         return isTax ? value.setScale(taxCalcScale, taxRounding) : 
value.setScale(scale, rounding);
     }
 
-   /** Get the quantity of order items that have been invoiced */
-   public static BigDecimal getOrderItemInvoicedQuantity(GenericValue 
orderItem) {
-       BigDecimal invoiced = BigDecimal.ZERO;
-       try {
-           // this is simply the sum of quantity billed in all related 
OrderItemBillings
-           List<GenericValue> billings = 
orderItem.getRelated("OrderItemBilling", null, null, false);
-           for (GenericValue billing : billings) {
-               BigDecimal quantity = billing.getBigDecimal("quantity");
-               if (quantity != null) {
-                   invoiced = invoiced.add(quantity);
-               }
-           }
-       } catch (GenericEntityException e) {
-           Debug.logError(e, e.getMessage(), module);
-       }
-       return invoiced;
-   }
-
-   public List<GenericValue> getOrderPaymentStatuses() {
-       return getOrderPaymentStatuses(getOrderStatuses());
-   }
-
-   public static List<GenericValue> getOrderPaymentStatuses(List<GenericValue> 
orderStatuses) {
-       List<EntityExpr> contraints1 = 
UtilMisc.toList(EntityCondition.makeCondition("orderItemSeqId", 
EntityOperator.EQUALS, null));
-       contraints1.add(EntityCondition.makeCondition("orderItemSeqId", 
EntityOperator.EQUALS, DataModelConstants.SEQ_ID_NA));
-       contraints1.add(EntityCondition.makeCondition("orderItemSeqId", 
EntityOperator.EQUALS, ""));
-
-       List<EntityExpr> contraints2 = 
UtilMisc.toList(EntityCondition.makeCondition("orderPaymentPreferenceId", 
EntityOperator.NOT_EQUAL, null));
-       List<GenericValue> newOrderStatuses = FastList.newInstance();
-       newOrderStatuses.addAll(EntityUtil.filterByOr(orderStatuses, 
contraints1));
+    /** Get the quantity of order items that have been invoiced */
+    public static BigDecimal getOrderItemInvoicedQuantity(GenericValue 
orderItem) {
+        BigDecimal invoiced = BigDecimal.ZERO;
+        try {
+            // this is simply the sum of quantity billed in all related 
OrderItemBillings
+            List<GenericValue> billings = 
orderItem.getRelated("OrderItemBilling", null, null, false);
+            for (GenericValue billing : billings) {
+                BigDecimal quantity = billing.getBigDecimal("quantity");
+                if (quantity != null) {
+                    invoiced = invoiced.add(quantity);
+                }
+            }
+        } catch (GenericEntityException e) {
+            Debug.logError(e, e.getMessage(), module);
+        }
+        return invoiced;
+    }
+
+    public List<GenericValue> getOrderPaymentStatuses() {
+        return getOrderPaymentStatuses(getOrderStatuses());
+    }
+
+    public static List<GenericValue> 
getOrderPaymentStatuses(List<GenericValue> orderStatuses) {
+        List<EntityExpr> contraints1 = 
UtilMisc.toList(EntityCondition.makeCondition("orderItemSeqId", 
EntityOperator.EQUALS, null));
+        contraints1.add(EntityCondition.makeCondition("orderItemSeqId", 
EntityOperator.EQUALS, DataModelConstants.SEQ_ID_NA));
+        contraints1.add(EntityCondition.makeCondition("orderItemSeqId", 
EntityOperator.EQUALS, ""));
+
+        List<EntityExpr> contraints2 = 
UtilMisc.toList(EntityCondition.makeCondition("orderPaymentPreferenceId", 
EntityOperator.NOT_EQUAL, null));
+        List<GenericValue> newOrderStatuses = FastList.newInstance();
+        newOrderStatuses.addAll(EntityUtil.filterByOr(orderStatuses, 
contraints1));
 
-       return EntityUtil.orderBy(EntityUtil.filterByAnd(newOrderStatuses, 
contraints2), UtilMisc.toList("-statusDatetime"));
-   }
+        return EntityUtil.orderBy(EntityUtil.filterByAnd(newOrderStatuses, 
contraints2), UtilMisc.toList("-statusDatetime"));
+    }
 
     public static String getOrderItemAttribute(GenericValue orderItem, String 
attributeName) {
         String attributeValue = null;
@@ -2799,118 +2799,117 @@ public class OrderReadHelper {
         }
         return attributeValue;
     }
-    
 
-   public static Map<String, Object> 
getOrderTaxByTaxAuthGeoAndParty(List<GenericValue> orderAdjustments) {
-       BigDecimal taxGrandTotal = BigDecimal.ZERO;
-       List<Map<String, Object>> taxByTaxAuthGeoAndPartyList = 
FastList.newInstance();
-       if (UtilValidate.isNotEmpty(orderAdjustments)) {
-           // get orderAdjustment where orderAdjustmentTypeId is SALES_TAX.
-           orderAdjustments = EntityUtil.filterByAnd(orderAdjustments, 
UtilMisc.toMap("orderAdjustmentTypeId","SALES_TAX"));
-           orderAdjustments = EntityUtil.orderBy(orderAdjustments, 
UtilMisc.toList("taxAuthGeoId","taxAuthPartyId"));
-
-           // get the list of all distinct taxAuthGeoId and taxAuthPartyId. It 
is for getting the number of taxAuthGeo and taxAuthPartyId in adjustments.
-           List<String> distinctTaxAuthGeoIdList = 
EntityUtil.getFieldListFromEntityList(orderAdjustments, "taxAuthGeoId", true);
-           List<String> distinctTaxAuthPartyIdList = 
EntityUtil.getFieldListFromEntityList(orderAdjustments, "taxAuthPartyId", true);
-
-           // Keep a list of amount that have been added to make sure none are 
missed (if taxAuth* information is missing)
-           List<GenericValue> processedAdjustments = FastList.newInstance();
-           // For each taxAuthGeoId get and add amount from orderAdjustment
-           for (String taxAuthGeoId : distinctTaxAuthGeoIdList) {
-               for (String taxAuthPartyId : distinctTaxAuthPartyIdList) {
-                   //get all records for orderAdjustments filtered by 
taxAuthGeoId and taxAurhPartyId
-                   List<GenericValue> orderAdjByTaxAuthGeoAndPartyIds = 
EntityUtil.filterByAnd(orderAdjustments, UtilMisc.toMap("taxAuthGeoId", 
taxAuthGeoId, "taxAuthPartyId", taxAuthPartyId));
-                   if 
(UtilValidate.isNotEmpty(orderAdjByTaxAuthGeoAndPartyIds)) {
-                       BigDecimal totalAmount = BigDecimal.ZERO;
-                       //Now for each orderAdjustment record get and add 
amount.
-                       for (GenericValue orderAdjustment : 
orderAdjByTaxAuthGeoAndPartyIds) {
-                           BigDecimal amount = 
orderAdjustment.getBigDecimal("amount");
-                           if (amount == null) {
-                               amount = ZERO;
-                           }
-                           totalAmount = 
totalAmount.add(amount).setScale(taxCalcScale, taxRounding);
-                           processedAdjustments.add(orderAdjustment);
-                       }
-                       totalAmount = totalAmount.setScale(taxFinalScale, 
taxRounding);
-                       taxByTaxAuthGeoAndPartyList.add(UtilMisc.<String, 
Object>toMap("taxAuthPartyId", taxAuthPartyId, "taxAuthGeoId", taxAuthGeoId, 
"totalAmount", totalAmount));
-                       taxGrandTotal = taxGrandTotal.add(totalAmount);
-                   }
-               }
-           }
-           // Process any adjustments that got missed
-           List<GenericValue> missedAdjustments = FastList.newInstance();
-           missedAdjustments.addAll(orderAdjustments);
-           missedAdjustments.removeAll(processedAdjustments);
-           for (GenericValue orderAdjustment : missedAdjustments) {
-               taxGrandTotal = 
taxGrandTotal.add(orderAdjustment.getBigDecimal("amount").setScale(taxCalcScale,
 taxRounding));
-           }
-           taxGrandTotal = taxGrandTotal.setScale(taxFinalScale, taxRounding);
-       }
-       Map<String, Object> result = FastMap.newInstance();
-       result.put("taxByTaxAuthGeoAndPartyList", taxByTaxAuthGeoAndPartyList);
-       result.put("taxGrandTotal", taxGrandTotal);
-       return result;
-   }
-
-   public static Map<String, Object> 
getOrderItemTaxByTaxAuthGeoAndPartyForDisplay(GenericValue orderItem, 
List<GenericValue> orderAdjustmentsOriginal) {
-       return 
getOrderTaxByTaxAuthGeoAndPartyForDisplay(getOrderItemAdjustmentList(orderItem, 
orderAdjustmentsOriginal));
-   }
-
-   public static Map<String, Object> 
getOrderTaxByTaxAuthGeoAndPartyForDisplay(List<GenericValue> 
orderAdjustmentsOriginal) {
-       BigDecimal taxGrandTotal = BigDecimal.ZERO;
-       List<Map<String, Object>> taxByTaxAuthGeoAndPartyList = 
FastList.newInstance();
-       List<GenericValue> orderAdjustmentsToUse = FastList.newInstance();
-       if (UtilValidate.isNotEmpty(orderAdjustmentsOriginal)) {
-           // get orderAdjustment where orderAdjustmentTypeId is SALES_TAX.
-           
orderAdjustmentsToUse.addAll(EntityUtil.filterByAnd(orderAdjustmentsOriginal, 
UtilMisc.toMap("orderAdjustmentTypeId", "SALES_TAX")));
-           
orderAdjustmentsToUse.addAll(EntityUtil.filterByAnd(orderAdjustmentsOriginal, 
UtilMisc.toMap("orderAdjustmentTypeId", "VAT_TAX")));
-           orderAdjustmentsToUse = EntityUtil.orderBy(orderAdjustmentsToUse, 
UtilMisc.toList("taxAuthGeoId","taxAuthPartyId"));
-
-           // get the list of all distinct taxAuthGeoId and taxAuthPartyId. It 
is for getting the number of taxAuthGeo and taxAuthPartyId in adjustments.
-           List<String> distinctTaxAuthGeoIdList = 
EntityUtil.getFieldListFromEntityList(orderAdjustmentsToUse, "taxAuthGeoId", 
true);
-           List<String> distinctTaxAuthPartyIdList = 
EntityUtil.getFieldListFromEntityList(orderAdjustmentsToUse, "taxAuthPartyId", 
true);
-
-           // Keep a list of amount that have been added to make sure none are 
missed (if taxAuth* information is missing)
-           List<GenericValue> processedAdjustments = FastList.newInstance();
-           // For each taxAuthGeoId get and add amount from orderAdjustment
-           for (String taxAuthGeoId : distinctTaxAuthGeoIdList) {
-               for (String taxAuthPartyId : distinctTaxAuthPartyIdList) {
-                   //get all records for orderAdjustments filtered by 
taxAuthGeoId and taxAurhPartyId
-                   List<GenericValue> orderAdjByTaxAuthGeoAndPartyIds = 
EntityUtil.filterByAnd(orderAdjustmentsToUse, UtilMisc.toMap("taxAuthGeoId", 
taxAuthGeoId, "taxAuthPartyId", taxAuthPartyId));
-                   if 
(UtilValidate.isNotEmpty(orderAdjByTaxAuthGeoAndPartyIds)) {
-                       BigDecimal totalAmount = BigDecimal.ZERO;
-                       //Now for each orderAdjustment record get and add 
amount.
-                       for (GenericValue orderAdjustment : 
orderAdjByTaxAuthGeoAndPartyIds) {
-                           BigDecimal amount = 
orderAdjustment.getBigDecimal("amount");
-                           if (amount != null) {
-                               totalAmount = totalAmount.add(amount);
-                           }
-                           if 
("VAT_TAX".equals(orderAdjustment.getString("orderAdjustmentTypeId")) && 
-                                   
orderAdjustment.get("amountAlreadyIncluded") != null) {
-                               // this is the only case where the VAT_TAX 
amountAlreadyIncluded should be added in, and should just be for display and 
not to calculate the order grandTotal
-                               totalAmount = 
totalAmount.add(orderAdjustment.getBigDecimal("amountAlreadyIncluded"));
-                           }
-                           totalAmount = totalAmount.setScale(taxCalcScale, 
taxRounding);
-                           processedAdjustments.add(orderAdjustment);
-                       }
-                       totalAmount = totalAmount.setScale(taxFinalScale, 
taxRounding);
-                       taxByTaxAuthGeoAndPartyList.add(UtilMisc.<String, 
Object>toMap("taxAuthPartyId", taxAuthPartyId, "taxAuthGeoId", taxAuthGeoId, 
"totalAmount", totalAmount));
-                       taxGrandTotal = taxGrandTotal.add(totalAmount);
-                   }
-               }
-           }
-           // Process any adjustments that got missed
-           List<GenericValue> missedAdjustments = FastList.newInstance();
-           missedAdjustments.addAll(orderAdjustmentsToUse);
-           missedAdjustments.removeAll(processedAdjustments);
-           for (GenericValue orderAdjustment : missedAdjustments) {
-               taxGrandTotal = 
taxGrandTotal.add(orderAdjustment.getBigDecimal("amount").setScale(taxCalcScale,
 taxRounding));
-           }
-           taxGrandTotal = taxGrandTotal.setScale(taxFinalScale, taxRounding);
-       }
-       Map<String, Object> result = FastMap.newInstance();
-       result.put("taxByTaxAuthGeoAndPartyList", taxByTaxAuthGeoAndPartyList);
-       result.put("taxGrandTotal", taxGrandTotal);
-       return result;
-   }
+    public static Map<String, Object> 
getOrderTaxByTaxAuthGeoAndParty(List<GenericValue> orderAdjustments) {
+        BigDecimal taxGrandTotal = BigDecimal.ZERO;
+        List<Map<String, Object>> taxByTaxAuthGeoAndPartyList = 
FastList.newInstance();
+        if (UtilValidate.isNotEmpty(orderAdjustments)) {
+            // get orderAdjustment where orderAdjustmentTypeId is SALES_TAX.
+            orderAdjustments = EntityUtil.filterByAnd(orderAdjustments, 
UtilMisc.toMap("orderAdjustmentTypeId", "SALES_TAX"));
+            orderAdjustments = EntityUtil.orderBy(orderAdjustments, 
UtilMisc.toList("taxAuthGeoId", "taxAuthPartyId"));
+
+            // get the list of all distinct taxAuthGeoId and taxAuthPartyId. 
It is for getting the number of taxAuthGeo and taxAuthPartyId in adjustments.
+            List<String> distinctTaxAuthGeoIdList = 
EntityUtil.getFieldListFromEntityList(orderAdjustments, "taxAuthGeoId", true);
+            List<String> distinctTaxAuthPartyIdList = 
EntityUtil.getFieldListFromEntityList(orderAdjustments, "taxAuthPartyId", true);
+
+            // Keep a list of amount that have been added to make sure none 
are missed (if taxAuth* information is missing)
+            List<GenericValue> processedAdjustments = FastList.newInstance();
+            // For each taxAuthGeoId get and add amount from orderAdjustment
+            for (String taxAuthGeoId : distinctTaxAuthGeoIdList) {
+                for (String taxAuthPartyId : distinctTaxAuthPartyIdList) {
+                    //get all records for orderAdjustments filtered by 
taxAuthGeoId and taxAurhPartyId
+                    List<GenericValue> orderAdjByTaxAuthGeoAndPartyIds = 
EntityUtil.filterByAnd(orderAdjustments, UtilMisc.toMap("taxAuthGeoId", 
taxAuthGeoId, "taxAuthPartyId", taxAuthPartyId));
+                    if 
(UtilValidate.isNotEmpty(orderAdjByTaxAuthGeoAndPartyIds)) {
+                        BigDecimal totalAmount = BigDecimal.ZERO;
+                        //Now for each orderAdjustment record get and add 
amount.
+                        for (GenericValue orderAdjustment : 
orderAdjByTaxAuthGeoAndPartyIds) {
+                            BigDecimal amount = 
orderAdjustment.getBigDecimal("amount");
+                            if (amount == null) {
+                                amount = ZERO;
+                            }
+                            totalAmount = 
totalAmount.add(amount).setScale(taxCalcScale, taxRounding);
+                            processedAdjustments.add(orderAdjustment);
+                        }
+                        totalAmount = totalAmount.setScale(taxFinalScale, 
taxRounding);
+                        taxByTaxAuthGeoAndPartyList.add(UtilMisc.<String, 
Object>toMap("taxAuthPartyId", taxAuthPartyId, "taxAuthGeoId", taxAuthGeoId, 
"totalAmount", totalAmount));
+                        taxGrandTotal = taxGrandTotal.add(totalAmount);
+                    }
+                }
+            }
+            // Process any adjustments that got missed
+            List<GenericValue> missedAdjustments = FastList.newInstance();
+            missedAdjustments.addAll(orderAdjustments);
+            missedAdjustments.removeAll(processedAdjustments);
+            for (GenericValue orderAdjustment : missedAdjustments) {
+                taxGrandTotal = 
taxGrandTotal.add(orderAdjustment.getBigDecimal("amount").setScale(taxCalcScale,
 taxRounding));
+            }
+            taxGrandTotal = taxGrandTotal.setScale(taxFinalScale, taxRounding);
+        }
+        Map<String, Object> result = FastMap.newInstance();
+        result.put("taxByTaxAuthGeoAndPartyList", taxByTaxAuthGeoAndPartyList);
+        result.put("taxGrandTotal", taxGrandTotal);
+        return result;
+    }
+
+    public static Map<String, Object> 
getOrderItemTaxByTaxAuthGeoAndPartyForDisplay(GenericValue orderItem, 
List<GenericValue> orderAdjustmentsOriginal) {
+        return 
getOrderTaxByTaxAuthGeoAndPartyForDisplay(getOrderItemAdjustmentList(orderItem, 
orderAdjustmentsOriginal));
+    }
+
+    public static Map<String, Object> 
getOrderTaxByTaxAuthGeoAndPartyForDisplay(List<GenericValue> 
orderAdjustmentsOriginal) {
+        BigDecimal taxGrandTotal = BigDecimal.ZERO;
+        List<Map<String, Object>> taxByTaxAuthGeoAndPartyList = 
FastList.newInstance();
+        List<GenericValue> orderAdjustmentsToUse = FastList.newInstance();
+        if (UtilValidate.isNotEmpty(orderAdjustmentsOriginal)) {
+            // get orderAdjustment where orderAdjustmentTypeId is SALES_TAX.
+            
orderAdjustmentsToUse.addAll(EntityUtil.filterByAnd(orderAdjustmentsOriginal, 
UtilMisc.toMap("orderAdjustmentTypeId", "SALES_TAX")));
+            
orderAdjustmentsToUse.addAll(EntityUtil.filterByAnd(orderAdjustmentsOriginal, 
UtilMisc.toMap("orderAdjustmentTypeId", "VAT_TAX")));
+            orderAdjustmentsToUse = EntityUtil.orderBy(orderAdjustmentsToUse, 
UtilMisc.toList("taxAuthGeoId", "taxAuthPartyId"));
+
+            // get the list of all distinct taxAuthGeoId and taxAuthPartyId. 
It is for getting the number of taxAuthGeo and taxAuthPartyId in adjustments.
+            List<String> distinctTaxAuthGeoIdList = 
EntityUtil.getFieldListFromEntityList(orderAdjustmentsToUse, "taxAuthGeoId", 
true);
+            List<String> distinctTaxAuthPartyIdList = 
EntityUtil.getFieldListFromEntityList(orderAdjustmentsToUse, "taxAuthPartyId", 
true);
+
+            // Keep a list of amount that have been added to make sure none 
are missed (if taxAuth* information is missing)
+            List<GenericValue> processedAdjustments = FastList.newInstance();
+            // For each taxAuthGeoId get and add amount from orderAdjustment
+            for (String taxAuthGeoId : distinctTaxAuthGeoIdList) {
+                for (String taxAuthPartyId : distinctTaxAuthPartyIdList) {
+                    //get all records for orderAdjustments filtered by 
taxAuthGeoId and taxAurhPartyId
+                    List<GenericValue> orderAdjByTaxAuthGeoAndPartyIds = 
EntityUtil.filterByAnd(orderAdjustmentsToUse, UtilMisc.toMap("taxAuthGeoId", 
taxAuthGeoId, "taxAuthPartyId", taxAuthPartyId));
+                    if 
(UtilValidate.isNotEmpty(orderAdjByTaxAuthGeoAndPartyIds)) {
+                        BigDecimal totalAmount = BigDecimal.ZERO;
+                        //Now for each orderAdjustment record get and add 
amount.
+                        for (GenericValue orderAdjustment : 
orderAdjByTaxAuthGeoAndPartyIds) {
+                            BigDecimal amount = 
orderAdjustment.getBigDecimal("amount");
+                            if (amount != null) {
+                                totalAmount = totalAmount.add(amount);
+                            }
+                            if 
("VAT_TAX".equals(orderAdjustment.getString("orderAdjustmentTypeId")) &&
+                                    
orderAdjustment.get("amountAlreadyIncluded") != null) {
+                                // this is the only case where the VAT_TAX 
amountAlreadyIncluded should be added in, and should just be for display and 
not to calculate the order grandTotal
+                                totalAmount = 
totalAmount.add(orderAdjustment.getBigDecimal("amountAlreadyIncluded"));
+                            }
+                            totalAmount = totalAmount.setScale(taxCalcScale, 
taxRounding);
+                            processedAdjustments.add(orderAdjustment);
+                        }
+                        totalAmount = totalAmount.setScale(taxFinalScale, 
taxRounding);
+                        taxByTaxAuthGeoAndPartyList.add(UtilMisc.<String, 
Object>toMap("taxAuthPartyId", taxAuthPartyId, "taxAuthGeoId", taxAuthGeoId, 
"totalAmount", totalAmount));
+                        taxGrandTotal = taxGrandTotal.add(totalAmount);
+                    }
+                }
+            }
+            // Process any adjustments that got missed
+            List<GenericValue> missedAdjustments = FastList.newInstance();
+            missedAdjustments.addAll(orderAdjustmentsToUse);
+            missedAdjustments.removeAll(processedAdjustments);
+            for (GenericValue orderAdjustment : missedAdjustments) {
+                taxGrandTotal = 
taxGrandTotal.add(orderAdjustment.getBigDecimal("amount").setScale(taxCalcScale,
 taxRounding));
+            }
+            taxGrandTotal = taxGrandTotal.setScale(taxFinalScale, taxRounding);
+        }
+        Map<String, Object> result = FastMap.newInstance();
+        result.put("taxByTaxAuthGeoAndPartyList", taxByTaxAuthGeoAndPartyList);
+        result.put("taxGrandTotal", taxGrandTotal);
+        return result;
+    }
 }


Reply via email to