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 2007/12/11 08:48:48 UTC

svn commit: r603164 - in /ofbiz/trunk/applications: ecommerce/data/DemoConfigurator.xml product/entitydef/entitymodel.xml product/src/org/ofbiz/product/config/ProductConfigWrapper.java

Author: jleroux
Date: Mon Dec 10 23:48:44 2007
New Revision: 603164

URL: http://svn.apache.org/viewvc?rev=603164&view=rev
Log:
A patch from Chris Lombardi "Need a better way to specify the default item configuration" (https://issues.apache.org/jira/browse/OFBIZ-1393) - OFBIZ-1393
One day we will have to change the PC001 options descriptions ;o)

Modified:
    ofbiz/trunk/applications/ecommerce/data/DemoConfigurator.xml
    ofbiz/trunk/applications/product/entitydef/entitymodel.xml
    ofbiz/trunk/applications/product/src/org/ofbiz/product/config/ProductConfigWrapper.java

Modified: ofbiz/trunk/applications/ecommerce/data/DemoConfigurator.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/ecommerce/data/DemoConfigurator.xml?rev=603164&r1=603163&r2=603164&view=diff
==============================================================================
--- ofbiz/trunk/applications/ecommerce/data/DemoConfigurator.xml (original)
+++ ofbiz/trunk/applications/ecommerce/data/DemoConfigurator.xml Mon Dec 10 23:48:44 2007
@@ -33,7 +33,7 @@
     <ProductPrice productId="HD4GB_BRAND" productPricePurposeId="COMPONENT_PRICE" productPriceTypeId="DEFAULT_PRICE" currencyUomId="USD" productStoreGroupId="_NA_" fromDate="2004-08-20 12:55:36.479" price="420" createdDate="2004-08-20 12:55:36.479" createdByUserLogin="admin"/>
     <ProductPrice productId="ETH_BRAND" productPricePurposeId="COMPONENT_PRICE" productPriceTypeId="DEFAULT_PRICE" currencyUomId="USD" productStoreGroupId="_NA_" fromDate="2004-08-20 12:55:36.479" price="18" createdDate="2004-08-20 12:55:36.479" createdByUserLogin="admin"/>
     <ProductPrice productId="MOD_BRAND" productPricePurposeId="COMPONENT_PRICE" productPriceTypeId="DEFAULT_PRICE" currencyUomId="USD" productStoreGroupId="_NA_" fromDate="2004-08-20 12:55:36.479" price="15" createdDate="2004-08-20 12:55:36.479" createdByUserLogin="admin"/>
-    
+   
     <ProductConfigItem configItemId="IT0000" configItemTypeId="SINGLE" configItemName="RAM (brand)" description="Select the memory configuration:"/>
     <ProductConfigItem configItemId="IT0001" configItemTypeId="SINGLE" configItemName="HD (brand)" description="Select the Hard Disk:"/>
     <ProductConfigItem configItemId="IT0002" configItemTypeId="MULTIPLE" configItemName="PCI slot" description="Select the PCI cards:"/>
@@ -52,8 +52,8 @@
     <ProductConfigProduct configItemId="IT0002" configOptionId="OP004" productId="ETH_BRAND" quantity="1"/>
     <ProductConfigProduct configItemId="IT0002" configOptionId="OP005" productId="MOD_BRAND" quantity="1"/>
     
-    <ProductConfig productId="PC001" configItemId="IT0000" sequenceNum="10" fromDate="2004-08-20 12:59:26.209" configTypeId="QUESTION" isMandatory="Y"/>
-    <ProductConfig productId="PC001" configItemId="IT0001" sequenceNum="20" fromDate="2004-08-20 12:59:26.209" description="1st Hard Disk drive" configTypeId="QUESTION" isMandatory="Y"/>
+    <ProductConfig productId="PC001" configItemId="IT0000" sequenceNum="10" fromDate="2004-08-20 12:59:26.209" configTypeId="QUESTION" defaultConfigOptionId="OP001" isMandatory="Y"/>
+    <ProductConfig productId="PC001" configItemId="IT0001" sequenceNum="20" fromDate="2004-08-20 12:59:26.209" description="1st Hard Disk drive" defaultConfigOptionId="OP003" configTypeId="QUESTION" isMandatory="Y"/>
     <ProductConfig productId="PC001" configItemId="IT0001" sequenceNum="30" fromDate="2004-08-20 12:59:26.209" description="2nd Hard Disk drive" configTypeId="QUESTION" isMandatory="N"/>
     <ProductConfig productId="PC001" configItemId="IT0002" sequenceNum="40" fromDate="2004-08-20 12:59:26.209" configTypeId="QUESTION" isMandatory="N"/>
     

Modified: ofbiz/trunk/applications/product/entitydef/entitymodel.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/product/entitydef/entitymodel.xml?rev=603164&r1=603163&r2=603164&view=diff
==============================================================================
--- ofbiz/trunk/applications/product/entitydef/entitymodel.xml (original)
+++ ofbiz/trunk/applications/product/entitydef/entitymodel.xml Mon Dec 10 23:48:44 2007
@@ -552,6 +552,7 @@
         <field name="description" type="description"></field>
         <field name="longDescription" type="very-long"></field>
         <field name="configTypeId" type="id"></field>
+        <field name="defaultConfigOptionId" type="id"></field>
         <field name="thruDate" type="date-time"></field>
         <field name="isMandatory" type="indicator"></field>
         <prim-key field="productId"/>

Modified: ofbiz/trunk/applications/product/src/org/ofbiz/product/config/ProductConfigWrapper.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/product/src/org/ofbiz/product/config/ProductConfigWrapper.java?rev=603164&r1=603163&r2=603164&view=diff
==============================================================================
--- ofbiz/trunk/applications/product/src/org/ofbiz/product/config/ProductConfigWrapper.java (original)
+++ ofbiz/trunk/applications/product/src/org/ofbiz/product/config/ProductConfigWrapper.java Mon Dec 10 23:48:44 2007
@@ -125,8 +125,11 @@
         for (int i = 0; i < questions.size(); i++) {
             ConfigItem ci = (ConfigItem)questions.get(i);
             if (ci.isMandatory()) {
-                if (ci.getOptions().size() > 0) {
-                    ConfigOption co = (ConfigOption)ci.getOptions().get(0);
+                ConfigOption co = ci.getDefault();
+                if(co != null){
+                    co.setSelected(true);
+                }else if (ci.getOptions().size() > 0) {
+                    co = (ConfigOption)ci.getOptions().get(0);
                     co.setSelected(true);
                 }
             }
@@ -303,7 +306,7 @@
         public List getOptions() {
             return options;
         }
-        
+                
         public String getQuestion() {
             String question = "";
             if (UtilValidate.isNotEmpty(configItemAssoc.getString("description"))) {
@@ -355,6 +358,19 @@
             return null;
         }
         
+        public ConfigOption getDefault(){
+            String defaultConfigOptionId = configItemAssoc.getString("defaultConfigOptionId");
+            if(UtilValidate.isNotEmpty(defaultConfigOptionId)){
+                for(ConfigOption oneOption : (List<ConfigOption>)getOptions()) {
+                    String currentConfigOptionId = oneOption.getId();
+                    if (defaultConfigOptionId.compareToIgnoreCase(currentConfigOptionId) == 0  ){
+                        return oneOption;
+                    }
+                }
+            }
+            return null;
+        }
+        
         public boolean equals(Object obj) {
             if (obj == null || !(obj instanceof ConfigItem)) {
                 return false;
@@ -436,6 +452,10 @@
 
         public String getDescription() {
             return (configOption.getString("description") != null? configOption.getString("description"): "no description");
+        }
+        
+        public String getId(){
+            return configOption.getString("configOptionId");
         }
         
         public double getPrice() {