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"/>