svn commit: r1768215 - /ofbiz/trunk/applications/manufacturing/src/main/java/org/apache/ofbiz/manufacturing/jobshopmgt/ProductionRunServices.java

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

svn commit: r1768215 - /ofbiz/trunk/applications/manufacturing/src/main/java/org/apache/ofbiz/manufacturing/jobshopmgt/ProductionRunServices.java

diveshdutta
Author: diveshdutta
Date: Sat Nov  5 13:38:20 2016
New Revision: 1768215

URL: http://svn.apache.org/viewvc?rev=1768215&view=rev
Log:
New feature: Provided an option to specify the Facility location while producing the inventory once production run gets completed.

(OFBIZ-7108)

Thanks: Swapnil Shah for suggesting this improvement and Anuj Jain for providing the patch

Modified:
    ofbiz/trunk/applications/manufacturing/src/main/java/org/apache/ofbiz/manufacturing/jobshopmgt/ProductionRunServices.java

Modified: ofbiz/trunk/applications/manufacturing/src/main/java/org/apache/ofbiz/manufacturing/jobshopmgt/ProductionRunServices.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/manufacturing/src/main/java/org/apache/ofbiz/manufacturing/jobshopmgt/ProductionRunServices.java?rev=1768215&r1=1768214&r2=1768215&view=diff
==============================================================================
--- ofbiz/trunk/applications/manufacturing/src/main/java/org/apache/ofbiz/manufacturing/jobshopmgt/ProductionRunServices.java (original)
+++ ofbiz/trunk/applications/manufacturing/src/main/java/org/apache/ofbiz/manufacturing/jobshopmgt/ProductionRunServices.java Sat Nov  5 13:38:20 2016
@@ -1673,9 +1673,10 @@ public class ProductionRunServices {
         }
         // the inventory item unit cost is the product's standard cost
         BigDecimal unitCost = ZERO;
+        GenericValue facility = null;
         try {
             // get the currency
-            GenericValue facility = productionRun.getGenericValue().getRelatedOne("Facility", false);
+            facility = productionRun.getGenericValue().getRelatedOne("Facility", false);
             Map<String, Object> outputMap = dispatcher.runSync("getPartyAccountingPreferences", UtilMisc.<String, Object>toMap("userLogin", userLogin, "organizationPartyId", facility.getString("ownerPartyId")));
             GenericValue partyAccountingPreference = (GenericValue)outputMap.get("partyAccountingPreference");
             if (partyAccountingPreference == null) {
@@ -1686,6 +1687,18 @@ public class ProductionRunServices {
             if (unitCost == null) {
                 unitCost = ZERO;
             }
+            
+         // Before creating InvntoryItem and InventoryItemDetails, check weather the record of ProductFacility exist in the system or not
+            GenericValue productFacility = EntityQuery.use(delegator). from("ProductFacility").where("productId", productionRun.getProductProduced().getString("productId")
+             , "facilityId", facility.get("facilityId")).queryOne();
+            
+            if (productFacility == null) {
+             Map<String, Object> createProductFacilityCtx = new HashMap<String, Object>();
+             createProductFacilityCtx.put("productId", productionRun.getProductProduced().getString("productId"));
+             createProductFacilityCtx.put("facilityId", facility.get("facilityId"));
+             createProductFacilityCtx.put("userLogin", userLogin);
+             dispatcher.runSync("createProductFacility", createProductFacilityCtx);
+            }
 
         } catch (GenericServiceException gse) {
             Debug.logWarning(gse.getMessage(), module);
@@ -1694,7 +1707,7 @@ public class ProductionRunServices {
             Debug.logWarning(e.getMessage(), module);
             return ServiceUtil.returnError(e.getMessage());
         }
-
+        
         if ("SERIALIZED_INV_ITEM".equals(inventoryItemTypeId)) {
             try {
                 int numOfItems = quantity.intValue();