Author: akashjain
Date: Sat Jun 23 11:01:23 2018
New Revision: 1834190

URL: http://svn.apache.org/viewvc?rev=1834190&view=rev
Log:
Improved: Enable drop-ship PO feature at product store and product facility 
level as well, applied patch from jira issue with slightly changes. (OFBIZ-9987)


Thanks, Ankit Joshi for your contribution.

Modified:
    
ofbiz/ofbiz-framework/trunk/applications/datamodel/entitydef/product-entitymodel.xml
    
ofbiz/ofbiz-framework/trunk/applications/order/src/main/java/org/apache/ofbiz/order/shoppingcart/ShoppingCart.java

Modified: 
ofbiz/ofbiz-framework/trunk/applications/datamodel/entitydef/product-entitymodel.xml
URL: 
http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/applications/datamodel/entitydef/product-entitymodel.xml?rev=1834190&r1=1834189&r2=1834190&view=diff
==============================================================================
--- 
ofbiz/ofbiz-framework/trunk/applications/datamodel/entitydef/product-entitymodel.xml
 (original)
+++ 
ofbiz/ofbiz-framework/trunk/applications/datamodel/entitydef/product-entitymodel.xml
 Sat Jun 23 11:01:23 2018
@@ -1414,6 +1414,7 @@ under the License.
         <field name="reorderQuantity" type="fixed-point"></field>
         <field name="daysToShip" type="numeric"></field>
         <field name="lastInventoryCount" type="fixed-point"><description>This 
field represents availableToPromiseTotal of a product at a certain point of 
time and is being updated regularly by a schedule service every 
hour</description></field>
+        <field name="requirementMethodEnumId" type="id"></field>
         <prim-key field="productId"/>
         <prim-key field="facilityId"/>
         <relation type="one" fk-name="PROD_FAC_PROD" rel-entity-name="Product">
@@ -1422,6 +1423,9 @@ under the License.
         <relation type="one" fk-name="PROD_FAC_FAC" rel-entity-name="Facility">
             <key-map field-name="facilityId"/>
         </relation>
+        <relation type="one" fk-name="PROD_FAC_ENUM" title="RequirementMethod" 
rel-entity-name="Enumeration">
+            <key-map field-name="requirementMethodEnumId" 
rel-field-name="enumId"/>
+        </relation>
     </entity>
   <view-entity entity-name="ProductFacilityAndPostalAddress"
         package-name="org.apache.ofbiz.product.facility"

Modified: 
ofbiz/ofbiz-framework/trunk/applications/order/src/main/java/org/apache/ofbiz/order/shoppingcart/ShoppingCart.java
URL: 
http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/applications/order/src/main/java/org/apache/ofbiz/order/shoppingcart/ShoppingCart.java?rev=1834190&r1=1834189&r2=1834190&view=diff
==============================================================================
--- 
ofbiz/ofbiz-framework/trunk/applications/order/src/main/java/org/apache/ofbiz/order/shoppingcart/ShoppingCart.java
 (original)
+++ 
ofbiz/ofbiz-framework/trunk/applications/order/src/main/java/org/apache/ofbiz/order/shoppingcart/ShoppingCart.java
 Sat Jun 23 11:01:23 2018
@@ -4205,10 +4205,12 @@ public class ShoppingCart implements Ite
 
         // Retrieve the facilityId from the cart's productStoreId because 
ShoppingCart.setFacilityId() doesn't seem to be used anywhere
         String facilityId = null;
+        String requirementMethodEnumId = null;
         if (UtilValidate.isNotEmpty(this.getProductStoreId())) {
             try {
                 GenericValue productStore = 
this.getDelegator().findOne("ProductStore", UtilMisc.toMap("productStoreId", 
this.getProductStoreId()), true);
                 facilityId = productStore.getString("inventoryFacilityId");
+                requirementMethodEnumId = 
productStore.getString("requirementMethodEnumId");
             } catch (GenericEntityException gee) {
                 
Debug.logError(UtilProperties.getMessage(resource_error,"OrderProblemGettingProductStoreRecords",
 locale) + gee.getMessage(), module);
                 return;
@@ -4248,7 +4250,22 @@ public class ShoppingCart implements Ite
                     continue;
                 }
                 String productId = product.getString("productId");
-                String requirementMethodEnumId = 
product.getString("requirementMethodEnumId");
+
+                GenericValue productFacility = null;
+                try {
+                    productFacility = 
EntityQuery.use(delegator).from("ProductFacility").where("productId", 
productId, "facilityId", shipInfo.getFacilityId()).queryOne();
+                } catch(GenericEntityException e) {
+                    Debug.logError("Error :" +e.getMessage(), module);
+                    e.printStackTrace();
+                }
+                
+                if (productFacility != null && 
UtilValidate.isNotEmpty(productFacility.getString("requirementMethodEnumId"))){
+                    requirementMethodEnumId = 
productFacility.getString("requirementMethodEnumId");
+                }
+
+                if 
(UtilValidate.isNotEmpty(product.getString("requirementMethodEnumId"))) {
+                    requirementMethodEnumId = 
product.getString("requirementMethodEnumId");
+                }
 
                 if ("PRODRQM_DS".equals(requirementMethodEnumId)) {
 


Reply via email to