Hans,

could you please fix the Java code in order to be in line with our formatting 
conventions?

Thanks,

Jacopo

On Dec 19, 2011, at 7:40 AM, hans...@apache.org wrote:

> Author: hansbak
> Date: Mon Dec 19 06:40:18 2011
> New Revision: 1220622
> 
> URL: http://svn.apache.org/viewvc?rev=1220622&view=rev
> Log:
> new producttype: configurable product service, using inventory
> 
> Modified:
>    ofbiz/trunk/applications/manufacturing/data/ManufacturingExampleData.xml
>    ofbiz/trunk/applications/order/src/org/ofbiz/order/order/OrderServices.java
>    
> ofbiz/trunk/applications/order/src/org/ofbiz/order/shoppingcart/CheckOutHelper.java
>    
> ofbiz/trunk/applications/order/src/org/ofbiz/order/shoppingcart/ShoppingCart.java
>    
> ofbiz/trunk/applications/order/webapp/ordermgr/WEB-INF/actions/entry/catalog/Product.groovy
>    
> ofbiz/trunk/applications/order/webapp/ordermgr/entry/catalog/productsummary.ftl
>    ofbiz/trunk/applications/product/data/ProductTypeData.xml
>    
> ofbiz/trunk/applications/product/script/org/ofbiz/shipment/issuance/IssuanceServices.xml
>    
> ofbiz/trunk/applications/product/script/org/ofbiz/shipment/receipt/ShipmentReceiptServices.xml
>    
> ofbiz/trunk/applications/product/src/org/ofbiz/product/config/ProductConfigWrapper.java
>    
> ofbiz/trunk/applications/product/src/org/ofbiz/product/product/ProductWorker.java
>    ofbiz/trunk/specialpurpose/ecommerce/data/DemoProduct.xml
> 
> Modified: 
> ofbiz/trunk/applications/manufacturing/data/ManufacturingExampleData.xml
> URL: 
> http://svn.apache.org/viewvc/ofbiz/trunk/applications/manufacturing/data/ManufacturingExampleData.xml?rev=1220622&r1=1220621&r2=1220622&view=diff
> ==============================================================================
> --- ofbiz/trunk/applications/manufacturing/data/ManufacturingExampleData.xml 
> (original)
> +++ ofbiz/trunk/applications/manufacturing/data/ManufacturingExampleData.xml 
> Mon Dec 19 06:40:18 2011
> @@ -45,6 +45,11 @@ under the License.
>     <FixedAsset fixedAssetId="DEMO_PROD_EQUIPMT_2" fixedAssetName="Demo 
> Production Equipment Two" fixedAssetTypeId="PRODUCTION_EQUIPMENT" 
> dateAcquired="2005-01-01 00:01:00.0" expectedEndOfLife="2010-01-01" 
> calendarId="DEMO_CALENDAR" salvageValue="50" purchaseCost="1000" 
> purchaseCostUomId="USD"/>
>     <FixedAssetGeoPoint fixedAssetId="DEMO_PROD_EQUIPMT_2" geoPointId="9000" 
> fromDate="2009-01-09 00:00:00.000"/>
> 
> +    <FixedAsset fixedAssetId="DEMO_BOOK_GROUP" 
> fixedAssetTypeId="GROUP_EQUIPMENT" fixedAssetName="Demo Book Group"/>
> +    <FixedAssetGeoPoint fixedAssetId="DEMO_BOOK_GROUP" geoPointId="9000" 
> fromDate="2011-08-02 00:00:00.000"/>
> +    <FixedAsset fixedAssetId="DEMO_BOOK" fixedAssetName="Demo Book" 
> fixedAssetTypeId="PRODUCTION_EQUIPMENT" parentFixedAssetId="DEMO_BOOK_GROUP" 
> calendarId="DEMO_CALENDAR" purchaseCost="200" purchaseCostUomId="USD"/>
> +    <FixedAssetGeoPoint fixedAssetId="DEMO_BOOK" geoPointId="9000" 
> fromDate="2011-08-02 00:00:00.000"/>
> +
>     <FixedAssetDepMethod depreciationCustomMethodId="STR_LINE_DEP_FORMULA" 
> fixedAssetId="DEMO_PROD_EQUIPMT_1"/>
>     <FixedAssetDepMethod depreciationCustomMethodId="DBL_DECL_DEP_FORMULA" 
> fixedAssetId="DEMO_PROD_EQUIPMT_2"/>
> </entity-engine-xml>
> 
> Modified: 
> ofbiz/trunk/applications/order/src/org/ofbiz/order/order/OrderServices.java
> URL: 
> http://svn.apache.org/viewvc/ofbiz/trunk/applications/order/src/org/ofbiz/order/order/OrderServices.java?rev=1220622&r1=1220621&r2=1220622&view=diff
> ==============================================================================
> --- 
> ofbiz/trunk/applications/order/src/org/ofbiz/order/order/OrderServices.java 
> (original)
> +++ 
> ofbiz/trunk/applications/order/src/org/ofbiz/order/order/OrderServices.java 
> Mon Dec 19 06:40:18 2011
> @@ -1138,7 +1138,7 @@ public class OrderServices {
>                     String productId = (String) orderItem.get("productId");
>                     GenericValue product = delegator.getRelatedOne("Product", 
> orderItem);
> 
> -                    
> if("SERVICE_PRODUCT".equals(product.get("productTypeId"))){
> +                    
> if("SERVICE_PRODUCT".equals(product.get("productTypeId")) || 
> "AGGREGATEDSERV_CONF".equals(product.get("productTypeId"))){
>                         String inventoryFacilityId = null;
>                         if 
> ("Y".equals(productStore.getString("oneInventoryFacility"))) {
>                             inventoryFacilityId = 
> productStore.getString("inventoryFacilityId");
> 
> Modified: 
> ofbiz/trunk/applications/order/src/org/ofbiz/order/shoppingcart/CheckOutHelper.java
> URL: 
> http://svn.apache.org/viewvc/ofbiz/trunk/applications/order/src/org/ofbiz/order/shoppingcart/CheckOutHelper.java?rev=1220622&r1=1220621&r2=1220622&view=diff
> ==============================================================================
> --- 
> ofbiz/trunk/applications/order/src/org/ofbiz/order/shoppingcart/CheckOutHelper.java
>  (original)
> +++ 
> ofbiz/trunk/applications/order/src/org/ofbiz/order/shoppingcart/CheckOutHelper.java
>  Mon Dec 19 06:40:18 2011
> @@ -644,7 +644,7 @@ public class CheckOutHelper {
>                     GenericValue permUserLogin = 
> delegator.findByPrimaryKeyCache("UserLogin", UtilMisc.toMap("userLoginId", 
> "system"));
>                     GenericValue productStore = 
> ProductStoreWorker.getProductStore(productStoreId, delegator);
>                     GenericValue product = 
> delegator.findByPrimaryKey("Product", UtilMisc.toMap("productId", productId));
> -                    if 
> ("AGGREGATED_CONF".equals(product.getString("productTypeId"))) {
> +                    if 
> ("AGGREGATED_CONF".equals(product.getString("productTypeId")) || 
> "AGGREGATEDSERV_CONF".equals(product.getString("productTypeId"))) {
>                         org.ofbiz.product.config.ProductConfigWrapper config 
> = this.cart.findCartItem(counter).getConfigWrapper();
>                         Map<String, Object> inputMap = new HashMap<String, 
> Object>();
>                         inputMap.put("config", config);
> 
> Modified: 
> ofbiz/trunk/applications/order/src/org/ofbiz/order/shoppingcart/ShoppingCart.java
> URL: 
> http://svn.apache.org/viewvc/ofbiz/trunk/applications/order/src/org/ofbiz/order/shoppingcart/ShoppingCart.java?rev=1220622&r1=1220621&r2=1220622&view=diff
> ==============================================================================
> --- 
> ofbiz/trunk/applications/order/src/org/ofbiz/order/shoppingcart/ShoppingCart.java
>  (original)
> +++ 
> ofbiz/trunk/applications/order/src/org/ofbiz/order/shoppingcart/ShoppingCart.java
>  Mon Dec 19 06:40:18 2011
> @@ -3430,7 +3430,11 @@ public class ShoppingCart implements Ite
>             serviceContext.put("internalName", internalName);
>             serviceContext.put("productName", productName);
>             serviceContext.put("description", description);
> -            serviceContext.put("productTypeId", "AGGREGATED_CONF");
> +            if(ProductWorker.isAggregateService(delegator, 
> item.getProductId()))
> +                serviceContext.put("productTypeId", "AGGREGATEDSERV_CONF");
> +            else
> +                serviceContext.put("productTypeId", "AGGREGATED_CONF");
> +            
>             serviceContext.put("configId", configId);
>             if 
> (UtilValidate.isNotEmpty(product.getString("requirementMethodEnumId"))) {
>                 serviceContext.put("requirementMethodEnumId", 
> product.getString("requirementMethodEnumId"));
> 
> Modified: 
> ofbiz/trunk/applications/order/webapp/ordermgr/WEB-INF/actions/entry/catalog/Product.groovy
> URL: 
> http://svn.apache.org/viewvc/ofbiz/trunk/applications/order/webapp/ordermgr/WEB-INF/actions/entry/catalog/Product.groovy?rev=1220622&r1=1220621&r2=1220622&view=diff
> ==============================================================================
> --- 
> ofbiz/trunk/applications/order/webapp/ordermgr/WEB-INF/actions/entry/catalog/Product.groovy
>  (original)
> +++ 
> ofbiz/trunk/applications/order/webapp/ordermgr/WEB-INF/actions/entry/catalog/Product.groovy
>  Mon Dec 19 06:40:18 2011
> @@ -124,7 +124,7 @@ if (productId) {
>         }
> 
>         // Set the default template for aggregated product (product component 
> configurator ui)
> -        if (product.productTypeId && 
> "AGGREGATED".equals(product.productTypeId) && 
> context.configproductdetailScreen) {
> +        if (product.productTypeId && 
> ("AGGREGATED".equals(product.productTypeId) || 
> "AGGREGATED_SERVICE".equals(product.productTypeId)) && 
> context.configproductdetailScreen) {
>             detailScreen = context.configproductdetailScreen;
>         }
> 
> 
> Modified: 
> ofbiz/trunk/applications/order/webapp/ordermgr/entry/catalog/productsummary.ftl
> URL: 
> http://svn.apache.org/viewvc/ofbiz/trunk/applications/order/webapp/ordermgr/entry/catalog/productsummary.ftl?rev=1220622&r1=1220621&r2=1220622&view=diff
> ==============================================================================
> --- 
> ofbiz/trunk/applications/order/webapp/ordermgr/entry/catalog/productsummary.ftl
>  (original)
> +++ 
> ofbiz/trunk/applications/order/webapp/ordermgr/entry/catalog/productsummary.ftl
>  Mon Dec 19 06:40:18 2011
> @@ -101,7 +101,7 @@ ${virtualJavaScript?if_exists}
>           <#elseif product.productTypeId?if_exists == "ASSET_USAGE">
>             <a href="${productUrl}" 
> class="buttontext">${uiLabelMap.OrderMakeBooking}...</a>
>           <#-- check to see if it is an aggregated or configurable product; 
> will enter parameters on the detail screen-->
> -          <#elseif product.productTypeId?if_exists == "AGGREGATED">
> +          <#elseif product.productTypeId?if_exists == "AGGREGATED" || 
> product.productTypeId?if_exists == "AGGREGATED_SERVICE">
>             <a href="${productUrl}" 
> class="buttontext">${uiLabelMap.OrderConfigure}...</a>
>           <#-- check to see if the product is a virtual product -->
>           <#elseif product.isVirtual?exists && product.isVirtual == "Y">
> 
> Modified: ofbiz/trunk/applications/product/data/ProductTypeData.xml
> URL: 
> http://svn.apache.org/viewvc/ofbiz/trunk/applications/product/data/ProductTypeData.xml?rev=1220622&r1=1220621&r2=1220622&view=diff
> ==============================================================================
> --- ofbiz/trunk/applications/product/data/ProductTypeData.xml (original)
> +++ ofbiz/trunk/applications/product/data/ProductTypeData.xml Mon Dec 19 
> 06:40:18 2011
> @@ -500,7 +500,9 @@ under the License.
>     <ProductType description="Work In Process" isPhysical="Y" isDigital="N" 
> hasTable="N" parentTypeId="GOOD" productTypeId="WIP"/>
>     <ProductType description="Configurable Good Configuration" isPhysical="Y" 
> isDigital="N" hasTable="N" parentTypeId="AGGREGATED" 
> productTypeId="AGGREGATED_CONF"/>
>     <ProductType description="Fixed Asset Usage For Rental of an asset which 
> is shipped from and returned to inventory" isPhysical="Y" isDigital="N" 
> hasTable="N" parentTypeId="" productTypeId="ASSET_USAGE_OUT_IN"/>
> -    <ProductType description="Service a product which is received to- and 
> shipped from inventory" isPhysical="Y" isDigital="N" hasTable="N" 
> parentTypeId="" productTypeId="SERVICE_PRODUCT"/>
> +    <ProductType description="Service a product using inventory" 
> isPhysical="Y" isDigital="N" hasTable="N" parentTypeId="" 
> productTypeId="SERVICE_PRODUCT"/>
> +    <ProductType description="Configurable Service using inventory" 
> isPhysical="Y" isDigital="N" hasTable="N" parentTypeId="SERVICE_PRODUCT" 
> productTypeId="AGGREGATED_SERVICE"/>
> +    <ProductType description="Configurable Service Configuration" 
> isPhysical="Y" isDigital="N" hasTable="N" parentTypeId="AGGREGATED_SERVICE" 
> productTypeId="AGGREGATEDSERV_CONF"/>
> 
>     <EnumerationType description="Product Requirement Method" 
> enumTypeId="PROD_REQ_METHOD" hasTable="N" parentTypeId=""/>
>     <!-- NONE: no requirement is created (default) -->
> @@ -618,7 +620,7 @@ under the License.
>     <StatusItem description="Approved" sequenceId="02" statusCode="APPROVED" 
> statusId="IM_APPROVED" statusTypeId="IMAGE_MANAGEMENT_ST"/>
>     <StatusItem description="Rejected" sequenceId="03" statusCode="REJECTED" 
> statusId="IM_REJECTED" statusTypeId="IMAGE_MANAGEMENT_ST"/>
> 
> -    <ProductFeatureCategory productFeatureCategoryId="IMAGE" 
> description="Image"/>
> +    <ProductFeatureCategory productFeatureCategoryI="IMAGE" 
> description="Image"/>
>     <ProductFeatureCategory productFeatureCategoryId="TEXT" 
> description="Text"/>
> 
>     <ProductFeature productFeatureId="IMAGE_AVATAR" 
> productFeatureTypeId="SIZE" productFeatureCategoryId="IMAGE" description="100 
> X 75 (avatar)" defaultSequenceNum="1"/>
> 
> Modified: 
> ofbiz/trunk/applications/product/script/org/ofbiz/shipment/issuance/IssuanceServices.xml
> URL: 
> http://svn.apache.org/viewvc/ofbiz/trunk/applications/product/script/org/ofbiz/shipment/issuance/IssuanceServices.xml?rev=1220622&r1=1220621&r2=1220622&view=diff
> ==============================================================================
> --- 
> ofbiz/trunk/applications/product/script/org/ofbiz/shipment/issuance/IssuanceServices.xml
>  (original)
> +++ 
> ofbiz/trunk/applications/product/script/org/ofbiz/shipment/issuance/IssuanceServices.xml
>  Mon Dec 19 06:40:18 2011
> @@ -53,6 +53,7 @@ under the License.
>                         <or>
>                             <if-compare field="product.productTypeId" 
> operator="equals" value="SERVICE_PRODUCT"/>
>                             <if-compare field="product.productTypeId" 
> operator="equals" value="ASSET_USAGE_OUT_IN"/>
> +                            <if-compare field="product.productTypeId" 
> operator="equals" value="AGGREGATEDSERV_CONF"/>
>                         </or>
>                     </condition>
>                     <then>
> 
> Modified: 
> ofbiz/trunk/applications/product/script/org/ofbiz/shipment/receipt/ShipmentReceiptServices.xml
> URL: 
> http://svn.apache.org/viewvc/ofbiz/trunk/applications/product/script/org/ofbiz/shipment/receipt/ShipmentReceiptServices.xml?rev=1220622&r1=1220621&r2=1220622&view=diff
> ==============================================================================
> --- 
> ofbiz/trunk/applications/product/script/org/ofbiz/shipment/receipt/ShipmentReceiptServices.xml
>  (original)
> +++ 
> ofbiz/trunk/applications/product/script/org/ofbiz/shipment/receipt/ShipmentReceiptServices.xml
>  Mon Dec 19 06:40:18 2011
> @@ -53,6 +53,7 @@ under the License.
>                 <or>
>                     <if-compare field="product.productTypeId" 
> operator="equals" value="SERVICE_PRODUCT"/>
>                     <if-compare field="product.productTypeId" 
> operator="equals" value="ASSET_USAGE_OUT_IN"/>
> +                    <if-compare field="product.productTypeId" 
> operator="equals" value="AGGREGATEDSERV_CONF"/>
>                 </or>
>             </condition>
>             <then>
> 
> 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=1220622&r1=1220621&r2=1220622&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 19 06:40:18 2011
> @@ -97,7 +97,7 @@ public class ProductConfigWrapper implem
> 
>     private void init(Delegator delegator, LocalDispatcher dispatcher, String 
> productId, String productStoreId, String catalogId, String webSiteId, String 
> currencyUomId, Locale locale, GenericValue autoUserLogin) throws Exception {
>         product = delegator.findByPrimaryKey("Product", 
> UtilMisc.toMap("productId", productId));
> -        if (product == null || 
> !product.getString("productTypeId").equals("AGGREGATED")) {
> +        if (product == null || 
> !product.getString("productTypeId").equals("AGGREGATED") && 
> !product.getString("productTypeId").equals("AGGREGATED_SERVICE")) {
>             throw new ProductConfigWrapperException("Product " + productId + 
> " is not an AGGREGATED product.");
>         }
>         this.dispatcher = dispatcher;
> @@ -123,7 +123,7 @@ public class ProductConfigWrapper implem
>             basePrice = price;
>         }
>         questions = FastList.newInstance();
> -        if ("AGGREGATED".equals(product.getString("productTypeId"))) {
> +        if ("AGGREGATED".equals(product.getString("productTypeId")) || 
> "AGGREGATED_SERVICE".equals(product.getString("productTypeId"))) {
>             List<GenericValue> questionsValues = 
> delegator.findByAnd("ProductConfig", UtilMisc.toMap("productId", productId), 
> UtilMisc.toList("sequenceNum"));
>             questionsValues = EntityUtil.filterByDate(questionsValues);
>             Set<String> itemIds = FastSet.newInstance();
> 
> Modified: 
> ofbiz/trunk/applications/product/src/org/ofbiz/product/product/ProductWorker.java
> URL: 
> http://svn.apache.org/viewvc/ofbiz/trunk/applications/product/src/org/ofbiz/product/product/ProductWorker.java?rev=1220622&r1=1220621&r2=1220622&view=diff
> ==============================================================================
> --- 
> ofbiz/trunk/applications/product/src/org/ofbiz/product/product/ProductWorker.java
>  (original)
> +++ 
> ofbiz/trunk/applications/product/src/org/ofbiz/product/product/ProductWorker.java
>  Mon Dec 19 06:40:18 2011
> @@ -146,7 +146,7 @@ public class ProductWorker {
>     public static String getInstanceAggregatedId(Delegator delegator, String 
> instanceProductId) throws GenericEntityException {
>         GenericValue instanceProduct = delegator.findByPrimaryKey("Product", 
> UtilMisc.toMap("productId", instanceProductId));
> 
> -        if (UtilValidate.isNotEmpty(instanceProduct) && 
> "AGGREGATED_CONF".equals(instanceProduct.getString("productTypeId"))) {
> +        if (UtilValidate.isNotEmpty(instanceProduct) && 
> ("AGGREGATED_CONF".equals(instanceProduct.getString("productTypeId")) || 
> "AGGREGATEDSERV_CONF".equals(instanceProduct.getString("productTypeId")))) {
>             GenericValue productAssoc = 
> EntityUtil.getFirst(EntityUtil.filterByDate(instanceProduct.getRelatedByAnd("AssocProductAssoc",
>                     UtilMisc.toMap("productAssocTypeId", "PRODUCT_CONF"))));
>             if (UtilValidate.isNotEmpty(productAssoc)) {
> @@ -172,7 +172,7 @@ public class ProductWorker {
>     public static List<GenericValue> getAggregatedAssocs(Delegator delegator, 
> String  aggregatedProductId) throws GenericEntityException {
>         GenericValue aggregatedProduct = 
> delegator.findByPrimaryKey("Product", UtilMisc.toMap("productId", 
> aggregatedProductId));
> 
> -        if (UtilValidate.isNotEmpty(aggregatedProduct) && 
> "AGGREGATED".equals(aggregatedProduct.getString("productTypeId"))) {
> +        if (UtilValidate.isNotEmpty(aggregatedProduct) && 
> ("AGGREGATED".equals(aggregatedProduct.getString("productTypeId")) || 
> "AGGREGATED_SERVICE".equals(aggregatedProduct.getString("productTypeId")))) {
>             List<GenericValue> productAssocs = 
> EntityUtil.filterByDate(aggregatedProduct.getRelatedByAnd("MainProductAssoc",
>                     UtilMisc.toMap("productAssocTypeId", "PRODUCT_CONF")));
>             return productAssocs;
> @@ -1193,4 +1193,16 @@ nextProd:
>         return Boolean.TRUE;
>     }
> 
> +    public static boolean isAggregateService(Delegator delegator, String 
> aggregatedProductId) {
> +        try {
> +            GenericValue aggregatedProduct = 
> delegator.findByPrimaryKeyCache("Product", UtilMisc.toMap("productId", 
> aggregatedProductId));
> +            if (UtilValidate.isNotEmpty(aggregatedProduct) && 
> "AGGREGATED_SERVICE".equals(aggregatedProduct.getString("productTypeId"))) {
> +                return true;
> +            }
> +        } catch (GenericEntityException e) {
> +            Debug.logWarning(e.getMessage(), module);
> +        }
> +
> +        return false;
> +    }
> }
> 
> Modified: ofbiz/trunk/specialpurpose/ecommerce/data/DemoProduct.xml
> URL: 
> http://svn.apache.org/viewvc/ofbiz/trunk/specialpurpose/ecommerce/data/DemoProduct.xml?rev=1220622&r1=1220621&r2=1220622&view=diff
> ==============================================================================
> --- ofbiz/trunk/specialpurpose/ecommerce/data/DemoProduct.xml (original)
> +++ ofbiz/trunk/specialpurpose/ecommerce/data/DemoProduct.xml Mon Dec 19 
> 06:40:18 2011
> @@ -737,6 +737,93 @@ under the License.
>     <ContentAssoc contentId="SV-1001-ALT" contentIdTo="CSV-1001-ALTEN" 
> contentAssocTypeId="ALTERNATE_LOCALE" fromDate="2011-08-02 12:00:00.0"/>
>     <ProductContent productId="SV-1001" contentId="SV-1001-ALT" 
> productContentTypeId="ALTERNATIVE_URL" fromDate="2011-08-02 12:00:00.0"/>
> 
> +    <!-- test for the configurable product type which is received to- and 
> shipped from inventory-->
> +    <Product productId="CFSV1001" productTypeId="AGGREGATED_SERVICE" 
> primaryProductCategoryId="SERV-001" productName="Scanning book service" 
> internalName="The configurable product type which is received to- and shipped 
> from inventory" description="The configurable product type which is received 
> to- and shipped from inventory for demonstration use" taxable="Y" 
> chargeShipping="N" autoCreateKeywords="Y" isVirtual="N" isVariant="N" 
> createdDate="2008-12-02 12:00:00.0" createdByUserLogin="admin" 
> lastModifiedDate="2008-12-02 12:00:00.0" lastModifiedByUserLogin="admin"/>
> +    <Product productId="SCAN_TYPE" productTypeId="SERVICE_PRODUCT" 
> productName="Scanning Type" internalName="Scanning Type" 
> description="Scanning Type" isVirtual="Y" isVariant="N" 
> billOfMaterialLevel="0" createdDate="2004-08-20 12:50:54.794" 
> createdByUserLogin="admin"/>
> +    <Product productId="SCAN-EC" productTypeId="SERVICE_PRODUCT" 
> internalName="Economy Scanning type" productName="Economy Scanning type" 
> description="Economy Scanning type" returnable="N" includeInPromotions="N" 
> taxable="N" chargeShipping="N" isVirtual="N" isVariant="Y" 
> createdDate="2003-11-20 13:48:19.105" createdByUserLogin="admin" 
> lastModifiedDate="2003-11-20 13:48:19.105" lastModifiedByUserLogin="admin"/>
> +    <Product productId="SCAN-ST" productTypeId="SERVICE_PRODUCT" 
> internalName="Standard Scanning type" productName="Standard Scanning type" 
> description="Standard Scanning type" returnable="N" includeInPromotions="N" 
> taxable="N" chargeShipping="N" isVirtual="N" isVariant="Y" 
> createdDate="2003-11-20 13:48:19.105" createdByUserLogin="admin" 
> lastModifiedDate="2003-11-20 13:48:19.105" lastModifiedByUserLogin="admin"/>
> +    <Product productId="SCAN-SU" productTypeId="SERVICE_PRODUCT" 
> internalName="Superfine Scanning type" productName="Superfine Scanning type" 
> description="Superfine Scanning type" returnable="N" includeInPromotions="N" 
> taxable="N" chargeShipping="N" isVirtual="N" isVariant="Y" 
> createdDate="2003-11-20 13:48:19.105" createdByUserLogin="admin" 
> lastModifiedDate="2003-11-20 13:48:19.105" lastModifiedByUserLogin="admin"/>
> +    
> +    <ProductFeatureCategory productFeatureCategoryId="SCAN_TYPE" 
> description="Scanning Type"/>
> +    <ProductFeature productFeatureId="ECONOMY" productFeatureTypeId="TYPE" 
> productFeatureCategoryId="SCAN_TYPE" description="Economy Scan" 
> defaultSequenceNum="1"/>
> +    <ProductFeature productFeatureId="STANDARD" productFeatureTypeId="TYPE" 
> productFeatureCategoryId="SCAN_TYPE" description="Standard Scan" 
> defaultSequenceNum="2"/>
> +    <ProductFeature productFeatureId="SUPERFINE" productFeatureTypeId="TYPE" 
> productFeatureCategoryId="SCAN_TYPE" description="Superfine Scan" 
> defaultSequenceNum="3"/>
> +    
> +    <Product productId="EXPRESS" productTypeId="SERVICE_PRODUCT" 
> productName="Express" internalName="Express" description="Express" 
> isVirtual="N" isVariant="N" billOfMaterialLevel="0" createdDate="2007-12-27 
> 12:00:00.0" createdByUserLogin="admin"/>
> +    <Product productId="SUPER_EXPRESS" productTypeId="SERVICE_PRODUCT" 
> productName="Super Express" internalName="Super Express" description="Super 
> Express" isVirtual="N" isVariant="N" billOfMaterialLevel="0" 
> createdDate="2007-12-27 12:00:00.0" createdByUserLogin="admin"/>
> +    <Product productId="SCAN_COVER" productTypeId="SERVICE_PRODUCT" 
> productName="Scan Cover" internalName="Scan Cover" description="Scan Cover" 
> isVirtual="N" isVariant="N" billOfMaterialLevel="0" createdDate="2007-12-27 
> 12:00:00.0" createdByUserLogin="admin"/>
> +    <Product productId="OCR" productTypeId="SERVICE_PRODUCT" 
> productName="OCR" internalName="OCR" description="OCR" isVirtual="N" 
> isVariant="N" billOfMaterialLevel="0" createdDate="2007-12-27 12:00:00.0" 
> createdByUserLogin="admin"/>
> +    <Product productId="METADATA" productTypeId="SERVICE_PRODUCT" 
> productName="Metadata" internalName="Metadata" description="Metadata" 
> isVirtual="N" isVariant="N" billOfMaterialLevel="0" createdDate="2007-12-27 
> 12:00:00.0" createdByUserLogin="admin"/>
> +    <Product productId="DVD" productTypeId="SERVICE_PRODUCT" 
> productName="DVD" internalName="DVD" description="DVD" isVirtual="N" 
> isVariant="N" billOfMaterialLevel="0" createdDate="2007-12-27 12:00:00.0" 
> createdByUserLogin="admin"/>
> +    
> +    <ProductAssoc productId="SCAN_TYPE" productIdTo="SCAN-EC" 
> productAssocTypeId="PRODUCT_VARIANT" fromDate="2011-08-02 12:00:00.0"/>
> +    <ProductAssoc productId="SCAN_TYPE" productIdTo="SCAN-ST" 
> productAssocTypeId="PRODUCT_VARIANT" fromDate="2011-08-02 12:00:00.0"/>
> +    <ProductAssoc productId="SCAN_TYPE" productIdTo="SCAN-SU" 
> productAssocTypeId="PRODUCT_VARIANT" fromDate="2011-08-02 12:00:00.0"/>
> +    
> +    <ProductFeatureAppl productId="SCAN_TYPE" productFeatureId="ECONOMY" 
> productFeatureApplTypeId="SELECTABLE_FEATURE" fromDate="2011-08-02 
> 12:00:00.0" sequenceNum="1"/>
> +    <ProductFeatureAppl productId="SCAN_TYPE" productFeatureId="STANDARD" 
> productFeatureApplTypeId="SELECTABLE_FEATURE" fromDate="2011-08-02 
> 12:00:00.0" sequenceNum="2"/>
> +    <ProductFeatureAppl productId="SCAN_TYPE" productFeatureId="SUPERFINE" 
> productFeatureApplTypeId="SELECTABLE_FEATURE" fromDate="2011-08-02 
> 12:00:00.0" sequenceNum="3"/>
> +    
> +    <ProductFeatureAppl productId="SCAN-EC" productFeatureId="ECONOMY" 
> productFeatureApplTypeId="STANDARD_FEATURE" fromDate="2011-08-02 12:00:00.0" 
> sequenceNum="1"/>
> +    <ProductFeatureAppl productId="SCAN-ST" productFeatureId="STANDARD" 
> productFeatureApplTypeId="STANDARD_FEATURE" fromDate="2011-08-02 12:00:00.0" 
> sequenceNum="1"/>
> +    <ProductFeatureAppl productId="SCAN-SU" productFeatureId="SUPERFINE" 
> productFeatureApplTypeId="STANDARD_FEATURE" fromDate="2011-08-02 12:00:00.0" 
> sequenceNum="1"/>
> +    
> +    <ProductPrice productId="CFSV1001" productPricePurposeId="PURCHASE" 
> productPriceTypeId="DEFAULT_PRICE" currencyUomId="USD" 
> productStoreGroupId="_NA_" fromDate="2011-08-02 12:00:00.0" price="9.99" 
> createdDate="2011-08-02 12:00:00.0" createdByUserLogin="admin"/>
> +    <ProductPrice productId="SCAN-EC" productPricePurposeId="PURCHASE" 
> productPriceTypeId="DEFAULT_PRICE" currencyUomId="USD" 
> productStoreGroupId="_NA_" fromDate="2011-01-01 00:00:00.0" price="1.00" 
> createdDate="2011-01-01 00:00:00.0"/>
> +    <ProductPrice productId="SCAN-EC" 
> productPricePurposeId="COMPONENT_PRICE" productPriceTypeId="DEFAULT_PRICE" 
> currencyUomId="USD" productStoreGroupId="_NA_" fromDate="2011-01-01 
> 00:00:00.0" price="1.00" createdDate="2011-01-01 00:00:00.0"/>
> +    <ProductPrice productId="SCAN-ST" productPricePurposeId="PURCHASE" 
> productPriceTypeId="DEFAULT_PRICE" currencyUomId="USD" 
> productStoreGroupId="_NA_" fromDate="2011-01-01 00:00:00.0" price="2.00" 
> createdDate="2011-01-01 00:00:00.0"/>
> +    <ProductPrice productId="SCAN-ST" 
> productPricePurposeId="COMPONENT_PRICE" productPriceTypeId="DEFAULT_PRICE" 
> currencyUomId="USD" productStoreGroupId="_NA_" fromDate="2011-01-01 
> 00:00:00.0" price="2.00" createdDate="2011-01-01 00:00:00.0"/>
> +    <ProductPrice productId="SCAN-SU" productPricePurposeId="PURCHASE" 
> productPriceTypeId="DEFAULT_PRICE" currencyUomId="USD" 
> productStoreGroupId="_NA_" fromDate="2011-01-01 00:00:00.0" price="3.00" 
> createdDate="2011-01-01 00:00:00.0"/>
> +    <ProductPrice productId="SCAN-SU" 
> productPricePurposeId="COMPONENT_PRICE" productPriceTypeId="DEFAULT_PRICE" 
> currencyUomId="USD" productStoreGroupId="_NA_" fromDate="2011-01-01 
> 00:00:00.0" price="3.00" createdDate="2011-01-01 00:00:00.0"/>
> +    <ProductPrice productId="EXPRESS" 
> productPricePurposeId="COMPONENT_PRICE" productPriceTypeId="DEFAULT_PRICE" 
> currencyUomId="USD" productStoreGroupId="_NA_" fromDate="2011-01-01 
> 00:00:00.0" price="1.50" createdDate="2011-01-01 00:00:00.0"/>
> +    <ProductPrice productId="SUPER_EXPRESS" 
> productPricePurposeId="COMPONENT_PRICE" productPriceTypeId="DEFAULT_PRICE" 
> currencyUomId="USD" productStoreGroupId="_NA_" fromDate="2011-01-01 
> 00:00:00.0" price="3.00" createdDate="2011-01-01 00:00:00.0"/>
> +    <ProductPrice productId="SCAN_COVER" 
> productPricePurposeId="COMPONENT_PRICE" productPriceTypeId="DEFAULT_PRICE" 
> currencyUomId="USD" productStoreGroupId="_NA_" fromDate="2011-01-01 
> 00:00:00.0" price="1.00" createdDate="2011-01-01 00:00:00.0"/>
> +    <ProductPrice productId="OCR" productPricePurposeId="COMPONENT_PRICE" 
> productPriceTypeId="DEFAULT_PRICE" currencyUomId="USD" 
> productStoreGroupId="_NA_" fromDate="2011-01-01 00:00:00.0" price="2.00" 
> createdDate="2011-01-01 00:00:00.0"/>
> +    <ProductPrice productId="METADATA" 
> productPricePurposeId="COMPONENT_PRICE" productPriceTypeId="DEFAULT_PRICE" 
> currencyUomId="USD" productStoreGroupId="_NA_" fromDate="2011-01-01 
> 00:00:00.0" price="1.00" createdDate="2011-01-01 00:00:00.0"/>
> +    <ProductPrice productId="DVD" productPricePurposeId="COMPONENT_PRICE" 
> productPriceTypeId="DEFAULT_PRICE" currencyUomId="USD" 
> productStoreGroupId="_NA_" fromDate="2011-01-01 00:00:00.0" price="0.25" 
> createdDate="2011-01-01 00:00:00.0"/>
> +    
> +    <ProductConfigItem configItemId="SC00000" configItemTypeId="MULTIPLE" 
> configItemName="Scanning Type" description="Select the scanning type :"/>
> +    <ProductConfigItem configItemId="SCF0001" configItemTypeId="MULTIPLE" 
> configItemName="Scanning Options" description="Scanning options :"/>
> +    
> +    <ProductConfigOption configItemId="SC00000" configOptionId="SCOP001" 
> configOptionName="OPT0001" description="Scanning Type" sequenceNum="10"/>
> +    <ProductConfigOption configItemId="SCF0001" configOptionId="SCOP006" 
> configOptionName="OPT0006" description="Express" sequenceNum="10"/>
> +    <ProductConfigOption configItemId="SCF0001" configOptionId="SCOP007" 
> configOptionName="OPT0007" description="Super Express" sequenceNum="20"/>
> +    <ProductConfigOption configItemId="SCF0001" configOptionId="SCOP008" 
> configOptionName="OPT0008" description="Scan Cover" sequenceNum="30"/>
> +    <ProductConfigOption configItemId="SCF0001" configOptionId="SCOP009" 
> configOptionName="OPT0009" description="OCR" sequenceNum="40"/>
> +    <ProductConfigOption configItemId="SCF0001" configOptionId="SCOP010" 
> configOptionName="OPT0010" description="Metadata" sequenceNum="60"/>
> +    <ProductConfigOption configItemId="SCF0001" configOptionId="SCOP011" 
> configOptionName="OPT0011" description="DVD" sequenceNum="50"/>
> +    
> +    <ProductConfigProduct configItemId="SC00000" configOptionId="SCOP001" 
> productId="SCAN_TYPE" quantity="1"/>
> +    <ProductConfigProduct configItemId="SCF0001" configOptionId="SCOP006" 
> productId="EXPRESS" quantity="1"/>
> +    <ProductConfigProduct configItemId="SCF0001" configOptionId="SCOP007" 
> productId="SUPER_EXPRESS" quantity="1"/>
> +    <ProductConfigProduct configItemId="SCF0001" configOptionId="SCOP008" 
> productId="SCAN_COVER" quantity="1"/>
> +    <ProductConfigProduct configItemId="SCF0001" configOptionId="SCOP009" 
> productId="OCR" quantity="1"/>
> +    <ProductConfigProduct configItemId="SCF0001" configOptionId="SCOP010" 
> productId="METADATA" quantity="1"/>
> +    <ProductConfigProduct configItemId="SCF0001" configOptionId="SCOP011" 
> productId="DVD" quantity="1"/>
> +    
> +    <ProductCategoryMember productCategoryId="SERV-001" productId="CFSV1001" 
> fromDate="2011-08-02 12:00:00.0"/>
> +    <ProductCategoryMember productCategoryId="CATALOG1_SEARCH" 
> productId="CFSV1001" fromDate="2011-08-02 12:00:00.0"/>
> +    <DataResource dataResourceId="CFSV1001-ALT" dataResourceTypeId="LINK" 
> objectInfo="scanning-book-service-CFSV1001-p"/>
> +    <DataResource dataResourceTypeId="ELECTRONIC_TEXT" 
> dataResourceId="CFSV1001-ALT" localeString="en"/>
> +    <DataResource dataResourceTypeId="ELECTRONIC_TEXT" 
> dataResourceId="DRCFSV1001-ALTEN" localeString="en_US"/>
> +    <ElectronicText dataResourceId="CFSV1001-ALT" 
> textData="scanning-book-product"/>
> +    <ElectronicText dataResourceId="DRCFSV1001-ALTEN" 
> textData="scanning-book-product"/>
> +
> +    <ProductConfig productId="CFSV1001" configItemId="SC00000" 
> sequenceNum="10" fromDate="2011-01-01 00:00:00.0" description="Select the 
> scanning type :" configTypeId="QUESTION" isMandatory="N"/>
> +    <ProductConfig productId="CFSV1001" configItemId="SCF0001" 
> sequenceNum="20" fromDate="2011-01-01 00:00:00.0" description="Scanning 
> options :" configTypeId="QUESTION" isMandatory="N"/>
> +    
> +    <WorkEffort workEffortId="SCTASK01" workEffortTypeId="ROU_TASK" 
> workEffortPurposeTypeId="ROU_ASSEMBLING" currentStatusId="ROU_ACTIVE" 
> workEffortName="Stock out" description="Components" revisionNumber="1" 
> fixedAssetId="DEMO_BOOK_GROUP" estimatedMilliSeconds="600000" 
> estimatedSetupMillis="0"/>
> +    <WorkEffort workEffortId="SCTASK02" workEffortTypeId="ROU_TASK" 
> workEffortPurposeTypeId="ROU_ASSEMBLING" currentStatusId="ROU_ACTIVE" 
> workEffortName="Preparation" description="Preparation" revisionNumber="1" 
> fixedAssetId="DEMO_BOOK_GROUP" estimatedMilliSeconds="900000" 
> estimatedSetupMillis="0"/>
> +    <WorkEffort workEffortId="SCROUT01" workEffortTypeId="ROUTING" 
> currentStatusId="ROU_ACTIVE" workEffortName="Pizza preparation" 
> description="Scanning preparation" revisionNumber="1" quantityToProduce="0"/>
> +    <WorkEffortGoodStandard workEffortId="SCROUT01" productId="CFSV1001" 
> workEffortGoodStdTypeId="ROU_PROD_TEMPLATE" statusId="WEGS_CREATED" 
> fromDate="2011-01-01 00:00:00.0"/>
> +    <WorkEffortAssoc workEffortIdFrom="SCROUT01" workEffortIdTo="SCTASK01" 
> workEffortAssocTypeId="ROUTING_COMPONENT" sequenceNum="10" 
> fromDate="2011-01-01 00:00:00.0"/>
> +    <WorkEffortAssoc workEffortIdFrom="SCROUT01" workEffortIdTo="SCTASK02" 
> workEffortAssocTypeId="ROUTING_COMPONENT" sequenceNum="20" 
> fromDate="2011-01-01 00:00:00.0"/>
> +    
> +    <Content contentId="CFSV1001-ALT" contentTypeId="DOCUMENT" 
> dataResourceId="CFSV1001-ALT" localeString="en"/>
> +    <Content contentId="CCFSV1001-ALTEN" contentTypeId="DOCUMENT" 
> dataResourceId="DRCFSV1001-ALTEN" localeString="en_US"/>
> +    <ContentAssoc contentId="CFSV1001-ALT" contentIdTo="CCFSV1001-ALTEN" 
> contentAssocTypeId="ALTERNATE_LOCALE" fromDate="2011-08-02 12:00:00.0"/>
> +    <ProductContent productId="CFSV1001" contentId="CFSV1001-ALT" 
> productContentTypeId="ALTERNATIVE_URL" fromDate="2011-08-02 12:00:00.0"/>
> +
>     <ProductFeatureCategory productFeatureCategoryId="8000" 
> description="License Features"/>
>     <ProductFeatureCategoryAppl productFeatureCategoryId="8000" 
> productCategoryId="CATALOG1_SEARCH" fromDate="2001-05-13 12:00:00.0"/>
> 
> 
> 

Reply via email to