You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ofbiz.apache.org by jl...@apache.org on 2013/11/20 12:03:48 UTC

svn commit: r1543768 - in /ofbiz/branches/release12.04: ./ applications/product/servicedef/ applications/product/src/org/ofbiz/product/inventory/ applications/product/webapp/facility/WEB-INF/actions/facility/

Author: jleroux
Date: Wed Nov 20 11:03:48 2013
New Revision: 1543768

URL: http://svn.apache.org/r1543768
Log:
"Applied fix from trunk for revision: 1543766" 
------------------------------------------------------------------------
r1543766 | jleroux | 2013-11-20 12:02:42 +0100 (mer. 20 nov. 2013) | 10 lignes

A completed patch from Pierre Smits for "Using type=accounting-number in form in facility generates wrong output for inventory overview" https://issues.apache.org/jira/browse/OFBIZ-5335

When using locale DE or NL several quantities (ATP, QOH and others) get transformed wrong.
E.g. a ATP of 250 for a product is 250.00 in locale EN or FR, but for DE and NL the output is 250.000.000,00

jleroux: I completed Pierre's patch in 2 ways:
* used also BigDecimal for minimumStock in getProductInventoryAndFacilitySummary service and groovy script
* Fixed the same kind of issue in  CountFacilityInventoryByProduct.groovy

In by and large i18n contexts, this fixes number of Inventory views and reports, also in Asset Maint and Birt components where those 2 service/groovy scripts are used
------------------------------------------------------------------------


Modified:
    ofbiz/branches/release12.04/   (props changed)
    ofbiz/branches/release12.04/applications/product/servicedef/services_facility.xml
    ofbiz/branches/release12.04/applications/product/src/org/ofbiz/product/inventory/InventoryServices.java
    ofbiz/branches/release12.04/applications/product/webapp/facility/WEB-INF/actions/facility/CountFacilityInventoryByProduct.groovy
    ofbiz/branches/release12.04/applications/product/webapp/facility/WEB-INF/actions/facility/ViewFacilityInventoryByProduct.groovy

Propchange: ofbiz/branches/release12.04/
------------------------------------------------------------------------------
  Merged /ofbiz/trunk:r1543766

Modified: ofbiz/branches/release12.04/applications/product/servicedef/services_facility.xml
URL: http://svn.apache.org/viewvc/ofbiz/branches/release12.04/applications/product/servicedef/services_facility.xml?rev=1543768&r1=1543767&r2=1543768&view=diff
==============================================================================
--- ofbiz/branches/release12.04/applications/product/servicedef/services_facility.xml (original)
+++ ofbiz/branches/release12.04/applications/product/servicedef/services_facility.xml Wed Nov 20 11:03:48 2013
@@ -257,10 +257,10 @@ under the License.
         <attribute name="checkTime" type="Timestamp" mode="IN" optional="true"/>
         <attribute name="facilityId" type="String" mode="IN" optional="false"/>
         <attribute name="productId" type="String" mode="IN" optional="false"/>
-        <attribute name="minimumStock" mode="IN" type="String" optional="true"/>
+        <attribute name="minimumStock" mode="IN" type="BigDecimal" optional="true"/>
         <attribute name="statusId" type="String" mode="IN" optional="true"/>
-        <attribute name="totalQuantityOnHand" mode="OUT" type="String" optional="true"/>
-        <attribute name="totalAvailableToPromise" mode="OUT" type="String" optional="true"/>
+        <attribute name="totalQuantityOnHand" mode="OUT" type="BigDecimal" optional="true"/>
+        <attribute name="totalAvailableToPromise" mode="OUT" type="BigDecimal" optional="true"/>
         <attribute name="quantityOnOrder" mode="OUT" type="BigDecimal" optional="true"/>
         <attribute name="offsetQOHQtyAvailable" mode="OUT" type="BigDecimal" optional="true"/>
         <attribute name="offsetATPQtyAvailable" mode="OUT" type="BigDecimal" optional="true"/>
@@ -802,7 +802,7 @@ under the License.
         <attribute name="partyId" type="String" mode="IN" optional="false"/>
         <attribute name="roleTypeId" type="String" mode="IN" optional="false"/>
     </service>
-    
+
     <service name="createFacilityContent" engine="simple" default-entity-name="FacilityContent"
         location="component://product/script/org/ofbiz/product/storage/StorageServices.xml" invoke="createFacilityContent" auth="true">
         <description>Create a Facility Content</description>
@@ -810,7 +810,7 @@ under the License.
         <auto-attributes include="nonpk" mode="IN" optional="true"/>
         <override name="fromDate" optional="true"/>
     </service>
-    
+
     <service name="deleteFacilityContent" engine="simple" default-entity-name="FacilityContent"
                 location="component://product/script/org/ofbiz/product/storage/StorageServices.xml" invoke="deleteFacilityContent" auth="true">
         <description>Delete Content From Facility</description>

Modified: ofbiz/branches/release12.04/applications/product/src/org/ofbiz/product/inventory/InventoryServices.java
URL: http://svn.apache.org/viewvc/ofbiz/branches/release12.04/applications/product/src/org/ofbiz/product/inventory/InventoryServices.java?rev=1543768&r1=1543767&r2=1543768&view=diff
==============================================================================
--- ofbiz/branches/release12.04/applications/product/src/org/ofbiz/product/inventory/InventoryServices.java (original)
+++ ofbiz/branches/release12.04/applications/product/src/org/ofbiz/product/inventory/InventoryServices.java Wed Nov 20 11:03:48 2013
@@ -21,7 +21,6 @@ package org.ofbiz.product.inventory;
 import java.math.BigDecimal;
 import java.math.MathContext;
 import java.sql.Timestamp;
-import com.ibm.icu.util.Calendar;
 import java.util.List;
 import java.util.Locale;
 import java.util.Map;
@@ -52,6 +51,8 @@ import org.ofbiz.service.GenericServiceE
 import org.ofbiz.service.LocalDispatcher;
 import org.ofbiz.service.ServiceUtil;
 
+import com.ibm.icu.util.Calendar;
+
 /**
  * Inventory Services
  */
@@ -73,12 +74,12 @@ public class InventoryServices {
         try {
             inventoryItem = delegator.findByPrimaryKey("InventoryItem", UtilMisc.toMap("inventoryItemId", inventoryItemId));
         } catch (GenericEntityException e) {
-            return ServiceUtil.returnError(UtilProperties.getMessage(resource, 
+            return ServiceUtil.returnError(UtilProperties.getMessage(resource,
                     "ProductNotFindInventoryItemWithId", locale) + inventoryItemId);
         }
 
         if (inventoryItem == null) {
-            return ServiceUtil.returnError(UtilProperties.getMessage(resource, 
+            return ServiceUtil.returnError(UtilProperties.getMessage(resource,
                     "ProductNotFindInventoryItemWithId", locale) + inventoryItemId);
         }
 
@@ -91,7 +92,7 @@ public class InventoryServices {
                 BigDecimal qoh = inventoryItem.getBigDecimal("quantityOnHandTotal");
 
                 if (atp == null) {
-                    return ServiceUtil.returnError(UtilProperties.getMessage(resource, 
+                    return ServiceUtil.returnError(UtilProperties.getMessage(resource,
                             "ProductInventoryItemATPNotAvailable",
                             UtilMisc.toMap("inventoryItemId", inventoryItem.getString("inventoryItemId")), locale));
                 }
@@ -101,7 +102,7 @@ public class InventoryServices {
 
                 // first make sure we have enough to cover the request transfer amount
                 if (xferQty.compareTo(atp) > 0) {
-                    return ServiceUtil.returnError(UtilProperties.getMessage(resource, 
+                    return ServiceUtil.returnError(UtilProperties.getMessage(resource,
                             "ProductInventoryItemATPIsNotSufficient",
                             UtilMisc.toMap("inventoryItemId", inventoryItem.getString("inventoryItemId"),
                                     "atp", atp, "xferQty", xferQty), locale));
@@ -140,19 +141,19 @@ public class InventoryServices {
                     try {
                         Map<String, Object> resultNew = dctx.getDispatcher().runSync("createInventoryItemDetail", createNewDetailMap);
                         if (ServiceUtil.isError(resultNew)) {
-                            return ServiceUtil.returnError(UtilProperties.getMessage(resource, 
-                                    "ProductInventoryItemDetailCreateProblem", 
+                            return ServiceUtil.returnError(UtilProperties.getMessage(resource,
+                                    "ProductInventoryItemDetailCreateProblem",
                                     UtilMisc.toMap("errorString", ""), locale), null, null, resultNew);
                         }
                         Map<String, Object> resultUpdate = dctx.getDispatcher().runSync("createInventoryItemDetail", createUpdateDetailMap);
                         if (ServiceUtil.isError(resultUpdate)) {
-                            return ServiceUtil.returnError(UtilProperties.getMessage(resource, 
-                                    "ProductInventoryItemDetailCreateProblem", 
+                            return ServiceUtil.returnError(UtilProperties.getMessage(resource,
+                                    "ProductInventoryItemDetailCreateProblem",
                                     UtilMisc.toMap("errorString", ""), locale), null, null, resultUpdate);
                         }
                     } catch (GenericServiceException e1) {
-                        return ServiceUtil.returnError(UtilProperties.getMessage(resource, 
-                                "ProductInventoryItemDetailCreateProblem", 
+                        return ServiceUtil.returnError(UtilProperties.getMessage(resource,
+                                "ProductInventoryItemDetailCreateProblem",
                                 UtilMisc.toMap("errorString", e1.getMessage()), locale));
                     }
                 } else {
@@ -160,7 +161,7 @@ public class InventoryServices {
                 }
             } else if (inventoryType.equals("SERIALIZED_INV_ITEM")) {
                 if (!"INV_AVAILABLE".equals(inventoryItem.getString("statusId"))) {
-                    return ServiceUtil.returnError(UtilProperties.getMessage(resource, 
+                    return ServiceUtil.returnError(UtilProperties.getMessage(resource,
                             "ProductSerializedInventoryNotAvailable", locale));
                 }
             }
@@ -179,13 +180,13 @@ public class InventoryServices {
                     try {
                         Map<String, Object> result = dctx.getDispatcher().runSync("createInventoryItemDetail", createDetailMap);
                         if (ServiceUtil.isError(result)) {
-                            return ServiceUtil.returnError(UtilProperties.getMessage(resource, 
-                                    "ProductInventoryItemDetailCreateProblem", 
+                            return ServiceUtil.returnError(UtilProperties.getMessage(resource,
+                                    "ProductInventoryItemDetailCreateProblem",
                                     UtilMisc.toMap("errorString", ""), locale), null, null, result);
                         }
                     } catch (GenericServiceException e1) {
-                        return ServiceUtil.returnError(UtilProperties.getMessage(resource, 
-                                "ProductInventoryItemDetailCreateProblem", 
+                        return ServiceUtil.returnError(UtilProperties.getMessage(resource,
+                                "ProductInventoryItemDetailCreateProblem",
                                 UtilMisc.toMap("errorString", e1.getMessage()), locale));
                     }
                 }
@@ -206,8 +207,8 @@ public class InventoryServices {
 
             return results;
         } catch (GenericEntityException e) {
-            return ServiceUtil.returnError(UtilProperties.getMessage(resource, 
-                    "ProductInventoryItemStoreProblem", 
+            return ServiceUtil.returnError(UtilProperties.getMessage(resource,
+                    "ProductInventoryItemStoreProblem",
                     UtilMisc.toMap("errorString", e.getMessage()), locale));
         }
     }
@@ -228,14 +229,14 @@ public class InventoryServices {
             inventoryItem = inventoryTransfer.getRelatedOne("InventoryItem");
             destinationFacility = inventoryTransfer.getRelatedOne("ToFacility");
         } catch (GenericEntityException e) {
-            return ServiceUtil.returnError(UtilProperties.getMessage(resource, 
-                    "ProductInventoryItemLookupProblem", 
+            return ServiceUtil.returnError(UtilProperties.getMessage(resource,
+                    "ProductInventoryItemLookupProblem",
                     UtilMisc.toMap("errorString", e.getMessage()), locale));
         }
 
         if (inventoryTransfer == null || inventoryItem == null) {
-            return ServiceUtil.returnError(UtilProperties.getMessage(resource, 
-                    "ProductInventoryItemLookupProblem", 
+            return ServiceUtil.returnError(UtilProperties.getMessage(resource,
+                    "ProductInventoryItemLookupProblem",
                     UtilMisc.toMap("errorString", ""), locale));
         }
 
@@ -259,20 +260,20 @@ public class InventoryServices {
             try {
                 Map<String, Object> result = dctx.getDispatcher().runSync("createInventoryItemDetail", createDetailMap);
                 if (ServiceUtil.isError(result)) {
-                    return ServiceUtil.returnError(UtilProperties.getMessage(resource, 
-                            "ProductInventoryItemDetailCreateProblem", 
+                    return ServiceUtil.returnError(UtilProperties.getMessage(resource,
+                            "ProductInventoryItemDetailCreateProblem",
                             UtilMisc.toMap("errorString", ""), locale), null, null, result);
                 }
             } catch (GenericServiceException e1) {
-                return ServiceUtil.returnError(UtilProperties.getMessage(resource, 
-                        "ProductInventoryItemDetailCreateProblem", 
+                return ServiceUtil.returnError(UtilProperties.getMessage(resource,
+                        "ProductInventoryItemDetailCreateProblem",
                         UtilMisc.toMap("errorString", e1.getMessage()), locale));
             }
             try {
                 inventoryItem.refresh();
             } catch (GenericEntityException e) {
-                return ServiceUtil.returnError(UtilProperties.getMessage(resource, 
-                        "ProductInventoryItemRefreshProblem", 
+                return ServiceUtil.returnError(UtilProperties.getMessage(resource,
+                        "ProductInventoryItemRefreshProblem",
                         UtilMisc.toMap("errorString", e.getMessage()), locale));
             }
         }
@@ -302,13 +303,13 @@ public class InventoryServices {
         try {
             Map<String, Object> result = dctx.getDispatcher().runSync("updateInventoryItem", updateInventoryItemMap);
             if (ServiceUtil.isError(result)) {
-                return ServiceUtil.returnError(UtilProperties.getMessage(resource, 
-                        "ProductInventoryItemStoreProblem", 
+                return ServiceUtil.returnError(UtilProperties.getMessage(resource,
+                        "ProductInventoryItemStoreProblem",
                         UtilMisc.toMap("errorString", ""), locale), null, null, result);
             }
         } catch (GenericServiceException exc) {
-            return ServiceUtil.returnError(UtilProperties.getMessage(resource, 
-                    "ProductInventoryItemStoreProblem", 
+            return ServiceUtil.returnError(UtilProperties.getMessage(resource,
+                    "ProductInventoryItemStoreProblem",
                     UtilMisc.toMap("errorString", exc.getMessage()), locale));
         }
 
@@ -319,8 +320,8 @@ public class InventoryServices {
         try {
             inventoryTransfer.store();
         } catch (GenericEntityException e) {
-            return ServiceUtil.returnError(UtilProperties.getMessage(resource, 
-                    "ProductInventoryItemStoreProblem", 
+            return ServiceUtil.returnError(UtilProperties.getMessage(resource,
+                    "ProductInventoryItemStoreProblem",
                     UtilMisc.toMap("errorString", e.getMessage()), locale));
         }
 
@@ -339,20 +340,20 @@ public class InventoryServices {
             inventoryTransfer = delegator.findByPrimaryKey("InventoryTransfer",
                     UtilMisc.toMap("inventoryTransferId", inventoryTransferId));
             if (UtilValidate.isEmpty(inventoryTransfer)) {
-                return ServiceUtil.returnError(UtilProperties.getMessage(resource, 
-                        "ProductInventoryItemTransferNotFound", 
+                return ServiceUtil.returnError(UtilProperties.getMessage(resource,
+                        "ProductInventoryItemTransferNotFound",
                         UtilMisc.toMap("inventoryTransferId", inventoryTransferId), locale));
             }
             inventoryItem = inventoryTransfer.getRelatedOne("InventoryItem");
         } catch (GenericEntityException e) {
-            return ServiceUtil.returnError(UtilProperties.getMessage(resource, 
-                    "ProductInventoryItemLookupProblem", 
+            return ServiceUtil.returnError(UtilProperties.getMessage(resource,
+                    "ProductInventoryItemLookupProblem",
                     UtilMisc.toMap("errorString", e.getMessage()), locale));
         }
 
         if (inventoryTransfer == null || inventoryItem == null) {
-            return ServiceUtil.returnError(UtilProperties.getMessage(resource, 
-                    "ProductInventoryItemLookupProblem", 
+            return ServiceUtil.returnError(UtilProperties.getMessage(resource,
+                    "ProductInventoryItemLookupProblem",
                     UtilMisc.toMap("errorString", ""), locale));
         }
 
@@ -369,13 +370,13 @@ public class InventoryServices {
             try {
                 Map<String, Object> result = dctx.getDispatcher().runSync("createInventoryItemDetail", createDetailMap);
                 if (ServiceUtil.isError(result)) {
-                    return ServiceUtil.returnError(UtilProperties.getMessage(resource, 
-                            "ProductInventoryItemDetailCreateProblem", 
+                    return ServiceUtil.returnError(UtilProperties.getMessage(resource,
+                            "ProductInventoryItemDetailCreateProblem",
                             UtilMisc.toMap("errorString", ""), locale), null, null, result);
                 }
             } catch (GenericServiceException e1) {
-                return ServiceUtil.returnError(UtilProperties.getMessage(resource, 
-                        "ProductInventoryItemDetailCreateProblem", 
+                return ServiceUtil.returnError(UtilProperties.getMessage(resource,
+                        "ProductInventoryItemDetailCreateProblem",
                         UtilMisc.toMap("errorString", e1.getMessage()), locale));
             }
         } else if (inventoryType.equals("SERIALIZED_INV_ITEM")) {
@@ -384,8 +385,8 @@ public class InventoryServices {
             try {
                 inventoryItem.store();
             } catch (GenericEntityException e) {
-                return ServiceUtil.returnError(UtilProperties.getMessage(resource, 
-                        "ProductInventoryItemStoreProblem", 
+                return ServiceUtil.returnError(UtilProperties.getMessage(resource,
+                        "ProductInventoryItemStoreProblem",
                         UtilMisc.toMap("errorString", e.getMessage()), locale));
             }
         }
@@ -397,8 +398,8 @@ public class InventoryServices {
         try {
             inventoryTransfer.store();
         } catch (GenericEntityException e) {
-            return ServiceUtil.returnError(UtilProperties.getMessage(resource, 
-                    "ProductInventoryItemStoreProblem", 
+            return ServiceUtil.returnError(UtilProperties.getMessage(resource,
+                    "ProductInventoryItemStoreProblem",
                     UtilMisc.toMap("errorString", e.getMessage()), locale));
         }
 
@@ -430,7 +431,7 @@ public class InventoryServices {
             inventoryItems = delegator.findList("InventoryItem", ee, null, null, null, false);
         } catch (GenericEntityException e) {
             Debug.logError(e, "Trouble getting inventory items", module);
-            return ServiceUtil.returnError(UtilProperties.getMessage(resource, 
+            return ServiceUtil.returnError(UtilProperties.getMessage(resource,
                     "ProductPriceCannotRetrieveInventoryItem", locale));
         }
 
@@ -455,7 +456,7 @@ public class InventoryServices {
                 shipmentAndItems = delegator.findList("ShipmentAndItem", ecl, null, UtilMisc.toList("estimatedArrivalDate"), null, false);
             } catch (GenericEntityException e) {
                 Debug.logError(e, "Problem getting ShipmentAndItem records", module);
-                return ServiceUtil.returnError(UtilProperties.getMessage(resource, 
+                return ServiceUtil.returnError(UtilProperties.getMessage(resource,
                         "ProductPriceCannotRetrieveShipmentAndItem", locale));
             }
 
@@ -465,7 +466,7 @@ public class InventoryServices {
                 reservations = inventoryItem.getRelated("OrderItemShipGrpInvRes", null, UtilMisc.toList("-reservedDatetime"));
             } catch (GenericEntityException e) {
                 Debug.logError(e, "Problem getting related reservations", module);
-                return ServiceUtil.returnError(UtilProperties.getMessage(resource, 
+                return ServiceUtil.returnError(UtilProperties.getMessage(resource,
                         "ProductPriceCannotRetrieveRelativeReservation", locale));
             }
 
@@ -786,8 +787,8 @@ public class InventoryServices {
                 facilities = delegator.findList("Facility", null, null, null, null, false);
             }
         } catch (GenericEntityException e) {
-            return ServiceUtil.returnError(UtilProperties.getMessage(resource, 
-                    "ProductErrorFacilityIdNotFound", 
+            return ServiceUtil.returnError(UtilProperties.getMessage(resource,
+                    "ProductErrorFacilityIdNotFound",
                     UtilMisc.toMap("facilityId", facilityId), locale));
         }
 
@@ -802,7 +803,7 @@ public class InventoryServices {
                 product = orderItem.getRelatedOneCache("Product");
             } catch (GenericEntityException e) {
                 Debug.logError(e, "Couldn't get product.", module);
-                return ServiceUtil.returnError(UtilProperties.getMessage(resource, 
+                return ServiceUtil.returnError(UtilProperties.getMessage(resource,
                         "ProductProductNotFound", locale) + productId);
             }
 
@@ -824,8 +825,8 @@ public class InventoryServices {
                     invResult = dispatcher.runSync("getInventoryAvailableByFacility", UtilMisc.toMap("productId", productId, "facilityId", facility.getString("facilityId")));
                 } catch (GenericServiceException e) {
                     Debug.logError(e, "Could not find inventory for facility " + facility.getString("facilityId"), module);
-                    return ServiceUtil.returnError(UtilProperties.getMessage(resource, 
-                            "ProductInventoryNotAvailableForFacility", 
+                    return ServiceUtil.returnError(UtilProperties.getMessage(resource,
+                            "ProductInventoryNotAvailableForFacility",
                             UtilMisc.toMap("facilityId", facility.getString("facilityId")), locale));
                 }
 
@@ -864,7 +865,7 @@ public class InventoryServices {
         Timestamp checkTime = (Timestamp)context.get("checkTime");
         String facilityId = (String)context.get("facilityId");
         String productId = (String)context.get("productId");
-        String minimumStockStr = (String)context.get("minimumStock");
+        BigDecimal minimumStock = (BigDecimal)context.get("minimumStock");
         String statusId = (String)context.get("statusId");
 
         Map<String, Object> result = FastMap.newInstance();
@@ -894,10 +895,7 @@ public class InventoryServices {
             }
         }
         // filter for quantities
-        BigDecimal minimumStock = BigDecimal.ZERO;
-        if (minimumStockStr != null) {
-            minimumStock = new BigDecimal(minimumStockStr);
-        }
+        minimumStock = minimumStock != null ? minimumStock : BigDecimal.ZERO;
 
         BigDecimal quantityOnHandTotal = BigDecimal.ZERO;
         if (resultOutput.get("quantityOnHandTotal") != null) {
@@ -912,8 +910,8 @@ public class InventoryServices {
         BigDecimal offsetATPQtyAvailable = availableToPromiseTotal.subtract(minimumStock);
 
         BigDecimal quantityOnOrder = InventoryWorker.getOutstandingPurchasedQuantity(productId, delegator);
-        result.put("totalQuantityOnHand", resultOutput.get("quantityOnHandTotal").toString());
-        result.put("totalAvailableToPromise", resultOutput.get("availableToPromiseTotal").toString());
+        result.put("totalQuantityOnHand", resultOutput.get("quantityOnHandTotal"));
+        result.put("totalAvailableToPromise", resultOutput.get("availableToPromiseTotal"));
         result.put("quantityOnOrder", quantityOnOrder);
 
         result.put("offsetQOHQtyAvailable", offsetQOHQtyAvailable);

Modified: ofbiz/branches/release12.04/applications/product/webapp/facility/WEB-INF/actions/facility/CountFacilityInventoryByProduct.groovy
URL: http://svn.apache.org/viewvc/ofbiz/branches/release12.04/applications/product/webapp/facility/WEB-INF/actions/facility/CountFacilityInventoryByProduct.groovy?rev=1543768&r1=1543767&r2=1543768&view=diff
==============================================================================
--- ofbiz/branches/release12.04/applications/product/webapp/facility/WEB-INF/actions/facility/CountFacilityInventoryByProduct.groovy (original)
+++ ofbiz/branches/release12.04/applications/product/webapp/facility/WEB-INF/actions/facility/CountFacilityInventoryByProduct.groovy Wed Nov 20 11:03:48 2013
@@ -234,8 +234,8 @@ if (action) {
         prodsIt = prods.iterator();
         while (prodsIt) {
             oneProd = prodsIt.next();
-            offsetQOHQtyAvailable = oneProd.getDouble("offsetQOHQtyAvailable");
-            offsetATPQtyAvailable = oneProd.getDouble("offsetATPQtyAvailable");
+            offsetQOHQtyAvailable = oneProd.getBigDecimal("offsetQOHQtyAvailable");
+            offsetATPQtyAvailable = oneProd.getBigDecimal("offsetATPQtyAvailable");
             if (hasOffsetATP) {
                 if (offsetATPQtyAvailable && offsetATPQtyAvailable.doubleValue() > offsetATP) {
                     break;
@@ -249,8 +249,8 @@ if (action) {
 
             oneInventory = [:];
             oneInventory.productId = oneProd.productId;
-            oneInventory.minimumStock = oneProd.getString("minimumStock");
-            oneInventory.reorderQuantity = oneProd.getString("reorderQuantity");
+            oneInventory.minimumStock = oneProd.getBigDecimal("minimumStock");
+            oneInventory.reorderQuantity = oneProd.getBigDecimal("reorderQuantity");
             oneInventory.daysToShip = oneProd.getString("daysToShip");
             oneInventory.totalQuantityOnHand = oneProd.totalQuantityOnHandTotal;
             oneInventory.totalAvailableToPromise = oneProd.totalAvailableToPromiseTotal;

Modified: ofbiz/branches/release12.04/applications/product/webapp/facility/WEB-INF/actions/facility/ViewFacilityInventoryByProduct.groovy
URL: http://svn.apache.org/viewvc/ofbiz/branches/release12.04/applications/product/webapp/facility/WEB-INF/actions/facility/ViewFacilityInventoryByProduct.groovy?rev=1543768&r1=1543767&r2=1543768&view=diff
==============================================================================
--- ofbiz/branches/release12.04/applications/product/webapp/facility/WEB-INF/actions/facility/ViewFacilityInventoryByProduct.groovy (original)
+++ ofbiz/branches/release12.04/applications/product/webapp/facility/WEB-INF/actions/facility/ViewFacilityInventoryByProduct.groovy Wed Nov 20 11:03:48 2013
@@ -168,7 +168,7 @@ if (action) {
         oneInventory.checkTime = checkTime;
         oneInventory.facilityId = facilityId;
         oneInventory.productId = oneProd.productId;
-        minimumStock = oneProd.minimumStock as String;
+        minimumStock = oneProd.minimumStock;
         oneInventory.minimumStock = minimumStock;
         oneInventory.reorderQuantity = oneProd.reorderQuantity;
         oneInventory.daysToShip = oneProd.daysToShip;