You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ofbiz.apache.org by jo...@apache.org on 2007/07/25 11:40:48 UTC

svn commit: r559376 - in /ofbiz/trunk/applications/product: entitydef/entitygroup.xml entitydef/entitymodel.xml script/org/ofbiz/product/inventory/InventoryServices.xml

Author: jonesde
Date: Wed Jul 25 02:40:47 2007
New Revision: 559376

URL: http://svn.apache.org/viewvc?view=rev&rev=559376
Log:
Some changes to make it easier and more efficient to track information and do queries to get QOH totals for a given moment in time

Modified:
    ofbiz/trunk/applications/product/entitydef/entitygroup.xml
    ofbiz/trunk/applications/product/entitydef/entitymodel.xml
    ofbiz/trunk/applications/product/script/org/ofbiz/product/inventory/InventoryServices.xml

Modified: ofbiz/trunk/applications/product/entitydef/entitygroup.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/product/entitydef/entitygroup.xml?view=diff&rev=559376&r1=559375&r2=559376
==============================================================================
--- ofbiz/trunk/applications/product/entitydef/entitygroup.xml (original)
+++ ofbiz/trunk/applications/product/entitydef/entitygroup.xml Wed Jul 25 02:40:47 2007
@@ -104,7 +104,9 @@
     <entity-group group="org.ofbiz" entity="InventoryItemAttribute" />
     <entity-group group="org.ofbiz" entity="InventoryItemDetail" />
     <entity-group group="org.ofbiz" entity="InventoryItemDetailSummary" />
+    <entity-group group="org.ofbiz" entity="InventoryItemDetailForSum" />
     <entity-group group="org.ofbiz" entity="InventoryItemStatus" />
+    <entity-group group="org.ofbiz" entity="InventoryItemStatusForCount" />
     <entity-group group="org.ofbiz" entity="InventoryItemTempRes" />
     <entity-group group="org.ofbiz" entity="InventoryItemType" />
     <entity-group group="org.ofbiz" entity="InventoryItemTypeAttr" />
@@ -117,7 +119,6 @@
     <entity-group group="org.ofbiz" entity="PhysicalInventory" />
     <entity-group group="org.ofbiz" entity="PhysicalInventoryAndVariance" />
     <entity-group group="org.ofbiz" entity="VarianceReason" />
-    <entity-group group="org.ofbiz" entity="InventoryItemAndDetail" />
 
   <!-- ========================================================= -->
   <!-- org.ofbiz.product.location -->

Modified: ofbiz/trunk/applications/product/entitydef/entitymodel.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/product/entitydef/entitymodel.xml?view=diff&rev=559376&r1=559375&r2=559376
==============================================================================
--- ofbiz/trunk/applications/product/entitydef/entitymodel.xml (original)
+++ ofbiz/trunk/applications/product/entitydef/entitymodel.xml Wed Jul 25 02:40:47 2007
@@ -1286,12 +1286,25 @@
       <alias entity-alias="IID" name="availableToPromiseTotal" field="availableToPromiseDiff" function="sum"/>
       <alias entity-alias="IID" name="quantityOnHandTotal" field="quantityOnHandDiff" function="sum"/>
     </view-entity>
+    <view-entity entity-name="InventoryItemDetailForSum" package-name="org.ofbiz.product.inventory"
+        title="Inventory Item  And Inventory Item Detail for Summation View Entity">
+        <member-entity entity-alias="II" entity-name="InventoryItem"/>        
+        <member-entity entity-alias="IID" entity-name="InventoryItemDetail"/>
+        <alias entity-alias="IID" name="quantityOnHandSum" field="quantityOnHandDiff" function="sum"/>
+        <alias entity-alias="II" name="facilityId" group-by="true"></alias>
+        <alias entity-alias="II" name="productId" group-by="true"></alias>
+        <alias entity-alias="IID" name="effectiveDate"><description>For query only, not in fields to select.</description></alias>   
+        <view-link entity-alias="II" rel-entity-alias="IID">
+            <key-map field-name="inventoryItemId"/>
+        </view-link>
+    </view-entity>
     <entity entity-name="InventoryItemStatus"
             package-name="org.ofbiz.product.inventory"
             title="Inventory Item Status History Entity">
       <field name="inventoryItemId" type="id-ne"></field>
       <field name="statusId" type="id-ne"></field>
       <field name="statusDatetime" type="date-time"></field>
+      <field name="statusEndDatetime" type="date-time"></field>
       <field name="ownerPartyId" type="id"><description>Used to track a changed (new) ownerPartyId as a status changes.</description></field>
       <field name="productId" type="id"><description>Used to track a changed (new) productId as a status changes. In other words over time the item may be represented by a different Product (like new versus refurbished).</description></field>
       <prim-key field="inventoryItemId"/>
@@ -1304,6 +1317,20 @@
         <key-map field-name="statusId"/>
       </relation>
     </entity>
+    <view-entity entity-name="InventoryItemStatusForCount" package-name="org.ofbiz.product.inventory">
+        <description>This view-entity is for querying a count (findCountByCondition) of InventoryItems that were in a certain status at a certain point in time.</description>
+        <member-entity entity-alias="IIS" entity-name="InventoryItemStatus"/>
+        <member-entity entity-alias="II" entity-name="InventoryItem"/>
+        <alias name="facilityId" entity-alias="II"/>
+        <alias name="inventoryItemId" entity-alias="IIS"/>
+        <alias name="productId" entity-alias="IIS"><description>Note that this is from the status entity because it may change over time.</description></alias>
+        <alias name="statusId" entity-alias="IIS"/>
+        <alias name="statusDatetime" entity-alias="IIS"/>
+        <alias name="statusEndDatetime" entity-alias="IIS"/>
+        <view-link entity-alias="IIS" rel-entity-alias="II">
+            <key-map field-name="inventoryItemId"/>
+        </view-link>
+    </view-entity>
     <entity entity-name="InventoryItemTempRes"
             package-name="org.ofbiz.product.inventory"
             title="Inventory Item Temporary Reservation Entity">
@@ -1524,21 +1551,6 @@
       <field name="description" type="description"></field>
       <prim-key field="varianceReasonId"/>
     </entity>
-    <view-entity entity-name="InventoryItemAndDetail"
-            package-name="org.ofbiz.product.inventory"
-            title="Inventory Item  And Inventory Item Detail View Entity">
-      <member-entity entity-alias="II" entity-name="InventoryItem"/>        
-      <member-entity entity-alias="IID" entity-name="InventoryItemDetail"/>
-      <alias entity-alias="II" name="inventoryItemId"/>
-      <alias entity-alias="II" name="productId"/>
-      <alias entity-alias="II" name="statusId"/>
-      <alias entity-alias="IID" name="inventoryItemDetailSeqId"/>   
-      <alias entity-alias="IID" name="effectiveDate"/>   
-      <alias entity-alias="IID" name="quantityOnHandDiff"/>
-      <view-link entity-alias="II" rel-entity-alias="IID">
-          <key-map field-name="inventoryItemId"/>
-      </view-link>
-    </view-entity>
 
   <!-- ========================================================= -->
   <!-- org.ofbiz.product.location -->

Modified: ofbiz/trunk/applications/product/script/org/ofbiz/product/inventory/InventoryServices.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/product/script/org/ofbiz/product/inventory/InventoryServices.xml?view=diff&rev=559376&r1=559375&r2=559376
==============================================================================
--- ofbiz/trunk/applications/product/script/org/ofbiz/product/inventory/InventoryServices.xml (original)
+++ ofbiz/trunk/applications/product/script/org/ofbiz/product/inventory/InventoryServices.xml Wed Jul 25 02:40:47 2007
@@ -217,12 +217,31 @@
     </simple-method>
 
     <simple-method method-name="createInventoryItemStatus" short-description="Create an inventory item status record">
-        <make-value value-name="invStatus" entity-name="InventoryItemStatus"/>
-        <set-nonpk-fields map-name="parameters" value-name="invStatus"/>
-        <set-pk-fields map-name="parameters" value-name="invStatus"/>
         <now-timestamp-to-env env-name="now"/>
-        <set field="invStatus.statusDatetime" from-field="now"/>
-        <create-value value-name="invStatus"/>
+
+        <!-- find the most recent InventoryItemStatus record and set the statusEndDatetime -->
+        <entity-and entity-name="InventoryItemStatus" list-name="oldInventoryItemStatusList">
+            <field-map field-name="inventoryItemId" env-name="parameters.inventoryItemId"/>
+            <order-by field-name="-statusDatetime"/>
+        </entity-and>
+        <first-from-list entry-name="oldInventoryItemStatus" list-name="oldInventoryItemStatusList"/>
+        <if-not-empty field-name="oldInventoryItemStatus">
+            <set field="oldInventoryItemStatusList.statusEndDatetime"/>
+            <store-value value-name="oldInventoryItemStatus"/>
+        </if-not-empty>
+        
+        <make-value value-name="inventoryItemStatus" entity-name="InventoryItemStatus"/>
+        <set-nonpk-fields map-name="parameters" value-name="inventoryItemStatus"/>
+        <set-pk-fields map-name="parameters" value-name="inventoryItemStatus"/>
+        <set field="inventoryItemStatus.statusDatetime" from-field="now"/>
+        
+        <!-- make sure the current productId is set, if not passed in look up the current value -->
+        <if-empty field-name="inventoryItemStatus.productId">
+            <entity-one entity-name="InventoryItem" value-name="inventoryItem"/>
+            <set field="inventoryItemStatus.productId" from-field="inventoryItem.productId"/>
+        </if-empty>
+        
+        <create-value value-name="inventoryItemStatus"/>
     </simple-method>
 
     <simple-method method-name="createInventoryItemDetail" short-description="Create an InventoryItemDetail">