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

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

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

akashjain
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)) {