You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ofbiz.apache.org by le...@apache.org on 2007/04/19 10:30:02 UTC
svn commit: r530326 -
/ofbiz/trunk/applications/order/src/org/ofbiz/order/order/OrderReturnServices.java
Author: lektran
Date: Thu Apr 19 01:30:01 2007
New Revision: 530326
URL: http://svn.apache.org/viewvc?view=rev&rev=530326
Log:
Changed the getReturnAmountByOrder service to use BigDecimal and also checkPaymentAmountForRefund which uses this service
Part of OFBIZ-880
Modified:
ofbiz/trunk/applications/order/src/org/ofbiz/order/order/OrderReturnServices.java
Modified: ofbiz/trunk/applications/order/src/org/ofbiz/order/order/OrderReturnServices.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/order/src/org/ofbiz/order/order/OrderReturnServices.java?view=diff&rev=530326&r1=530325&r2=530326
==============================================================================
--- ofbiz/trunk/applications/order/src/org/ofbiz/order/order/OrderReturnServices.java (original)
+++ ofbiz/trunk/applications/order/src/org/ofbiz/order/order/OrderReturnServices.java Thu Apr 19 01:30:01 2007
@@ -1577,9 +1577,9 @@
if ((returnItemResponse != null) && (orderId != null)) {
// TODO should we filter on payment's status (PMNT_SENT,PMNT_RECEIVED)
payment = returnItemResponse.getRelatedOne("Payment");
- if ((payment != null) && (payment.getDouble("amount") != null) &&
+ if ((payment != null) && (payment.getBigDecimal("amount") != null) &&
!paymentList.contains(payment.get("paymentId"))) {
- UtilMisc.addToDoubleInMap(returnAmountByOrder, orderId, payment.getDouble("amount"));
+ UtilMisc.addToBigDecimalInMap(returnAmountByOrder, orderId, payment.getBigDecimal("amount"));
paymentList.add(payment.get("paymentId")); // make sure we don't add duplicated payment amount
}
}
@@ -1616,17 +1616,17 @@
Iterator orderIterator = returnAmountByOrder.keySet().iterator();
while (orderIterator.hasNext()) {
String orderId = (String) orderIterator.next();
- Double returnAmount = (Double) returnAmountByOrder.get(orderId);
- if (Math.abs(returnAmount.doubleValue()) < 0.000001) {
+ BigDecimal returnAmount = (BigDecimal) returnAmountByOrder.get(orderId);
+ if (returnAmount.abs().compareTo(new BigDecimal("0.000001")) < 0) {
Debug.logError("Order [" + orderId + "] refund amount[ " + returnAmount + "] less than zero", module);
return ServiceUtil.returnError(UtilProperties.getMessage(resource_error, "OrderReturnTotalCannotLessThanZero", locale));
}
OrderReadHelper helper = new OrderReadHelper(OrderReadHelper.getOrderHeader(delegator, orderId));
- double grandTotal = helper.getOrderGrandTotal();
+ BigDecimal grandTotal = helper.getOrderGrandTotalBd();
if (returnAmount == null) {
Debug.logInfo("No returnAmount found for order:" + orderId, module);
} else {
- if ((returnAmount.doubleValue() - grandTotal) > 0.01) {
+ if (returnAmount.subtract(grandTotal).compareTo("0.01") > 0) {
Debug.logError("Order [" + orderId + "] refund amount[ " + returnAmount + "] exceeds order total [" + grandTotal + "]", module);
return ServiceUtil.returnError(UtilProperties.getMessage(resource_error, "OrderRefundAmountExceedsOrderTotal", locale));
}