commit-gnue
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[gnue] r7547 - in trunk/gnue-packages/supply-chain: doc inventory


From: kilo
Subject: [gnue] r7547 - in trunk/gnue-packages/supply-chain: doc inventory
Date: Thu, 19 May 2005 05:12:53 -0500 (CDT)

Author: kilo
Date: 2005-05-19 05:12:52 -0500 (Thu, 19 May 2005)
New Revision: 7547

Modified:
   trunk/gnue-packages/supply-chain/doc/Inv.dia
   trunk/gnue-packages/supply-chain/doc/Inv.png
   trunk/gnue-packages/supply-chain/inventory/invent.gcd
Log:
Packages.
Inventory basic add/remove operation implemented.

Modified: trunk/gnue-packages/supply-chain/doc/Inv.dia
===================================================================
--- trunk/gnue-packages/supply-chain/doc/Inv.dia        2005-05-18 12:27:19 UTC 
(rev 7546)
+++ trunk/gnue-packages/supply-chain/doc/Inv.dia        2005-05-19 10:12:52 UTC 
(rev 7547)
@@ -65,13 +65,13 @@
   <dia:layer name="Háttér" visible="true">
     <dia:object type="UML - Class" version="0" id="O0">
       <dia:attribute name="obj_pos">
-        <dia:point val="17,6"/>
+        <dia:point val="31,7"/>
       </dia:attribute>
       <dia:attribute name="obj_bb">
-        <dia:rectangle val="16.95,5.95;23.6,8.85"/>
+        <dia:rectangle val="30.95,6.95;37.6,9.85"/>
       </dia:attribute>
       <dia:attribute name="elem_corner">
-        <dia:point val="17,6"/>
+        <dia:point val="31,7"/>
       </dia:attribute>
       <dia:attribute name="elem_width">
         <dia:real val="6.55"/>
@@ -184,19 +184,19 @@
     </dia:object>
     <dia:object type="UML - Class" version="0" id="O1">
       <dia:attribute name="obj_pos">
-        <dia:point val="5,8"/>
+        <dia:point val="5,11"/>
       </dia:attribute>
       <dia:attribute name="obj_bb">
-        <dia:rectangle val="4.95,7.95;13.35,10.85"/>
+        <dia:rectangle val="4.95,10.95;27,15.25"/>
       </dia:attribute>
       <dia:attribute name="elem_corner">
-        <dia:point val="5,8"/>
+        <dia:point val="5,11"/>
       </dia:attribute>
       <dia:attribute name="elem_width">
-        <dia:real val="8.3"/>
+        <dia:real val="21.95"/>
       </dia:attribute>
       <dia:attribute name="elem_height">
-        <dia:real val="2.8"/>
+        <dia:real val="4.2"/>
       </dia:attribute>
       <dia:attribute name="name">
         <dia:string>#ItemInWhouse#</dia:string>
@@ -295,7 +295,172 @@
           </dia:attribute>
         </dia:composite>
       </dia:attribute>
-      <dia:attribute name="operations"/>
+      <dia:attribute name="operations">
+        <dia:composite type="umloperation">
+          <dia:attribute name="name">
+            <dia:string>#Add#</dia:string>
+          </dia:attribute>
+          <dia:attribute name="stereotype">
+            <dia:string>##</dia:string>
+          </dia:attribute>
+          <dia:attribute name="type">
+            <dia:string>#number(10,2)#</dia:string>
+          </dia:attribute>
+          <dia:attribute name="visibility">
+            <dia:enum val="0"/>
+          </dia:attribute>
+          <dia:attribute name="comment">
+            <dia:string>#Adds a given quantity of items to a 
warehouse#</dia:string>
+          </dia:attribute>
+          <dia:attribute name="abstract">
+            <dia:boolean val="false"/>
+          </dia:attribute>
+          <dia:attribute name="inheritance_type">
+            <dia:enum val="2"/>
+          </dia:attribute>
+          <dia:attribute name="query">
+            <dia:boolean val="false"/>
+          </dia:attribute>
+          <dia:attribute name="class_scope">
+            <dia:boolean val="false"/>
+          </dia:attribute>
+          <dia:attribute name="parameters">
+            <dia:composite type="umlparameter">
+              <dia:attribute name="name">
+                <dia:string>#whouseId#</dia:string>
+              </dia:attribute>
+              <dia:attribute name="type">
+                <dia:string>#id#</dia:string>
+              </dia:attribute>
+              <dia:attribute name="value">
+                <dia:string>##</dia:string>
+              </dia:attribute>
+              <dia:attribute name="comment">
+                <dia:string>##</dia:string>
+              </dia:attribute>
+              <dia:attribute name="kind">
+                <dia:enum val="0"/>
+              </dia:attribute>
+            </dia:composite>
+            <dia:composite type="umlparameter">
+              <dia:attribute name="name">
+                <dia:string>#itemId#</dia:string>
+              </dia:attribute>
+              <dia:attribute name="type">
+                <dia:string>#id#</dia:string>
+              </dia:attribute>
+              <dia:attribute name="value">
+                <dia:string>##</dia:string>
+              </dia:attribute>
+              <dia:attribute name="comment">
+                <dia:string>##</dia:string>
+              </dia:attribute>
+              <dia:attribute name="kind">
+                <dia:enum val="0"/>
+              </dia:attribute>
+            </dia:composite>
+            <dia:composite type="umlparameter">
+              <dia:attribute name="name">
+                <dia:string>#qty#</dia:string>
+              </dia:attribute>
+              <dia:attribute name="type">
+                <dia:string>#number(10,2)#</dia:string>
+              </dia:attribute>
+              <dia:attribute name="value">
+                <dia:string>##</dia:string>
+              </dia:attribute>
+              <dia:attribute name="comment">
+                <dia:string>##</dia:string>
+              </dia:attribute>
+              <dia:attribute name="kind">
+                <dia:enum val="0"/>
+              </dia:attribute>
+            </dia:composite>
+          </dia:attribute>
+        </dia:composite>
+        <dia:composite type="umloperation">
+          <dia:attribute name="name">
+            <dia:string>#Remove#</dia:string>
+          </dia:attribute>
+          <dia:attribute name="stereotype">
+            <dia:string>##</dia:string>
+          </dia:attribute>
+          <dia:attribute name="type">
+            <dia:string>#number(10,2)#</dia:string>
+          </dia:attribute>
+          <dia:attribute name="visibility">
+            <dia:enum val="0"/>
+          </dia:attribute>
+          <dia:attribute name="comment">
+            <dia:string>#Removes a given number of items from a 
warehouse#</dia:string>
+          </dia:attribute>
+          <dia:attribute name="abstract">
+            <dia:boolean val="false"/>
+          </dia:attribute>
+          <dia:attribute name="inheritance_type">
+            <dia:enum val="2"/>
+          </dia:attribute>
+          <dia:attribute name="query">
+            <dia:boolean val="false"/>
+          </dia:attribute>
+          <dia:attribute name="class_scope">
+            <dia:boolean val="false"/>
+          </dia:attribute>
+          <dia:attribute name="parameters">
+            <dia:composite type="umlparameter">
+              <dia:attribute name="name">
+                <dia:string>#whouseId#</dia:string>
+              </dia:attribute>
+              <dia:attribute name="type">
+                <dia:string>#id#</dia:string>
+              </dia:attribute>
+              <dia:attribute name="value">
+                <dia:string>##</dia:string>
+              </dia:attribute>
+              <dia:attribute name="comment">
+                <dia:string>##</dia:string>
+              </dia:attribute>
+              <dia:attribute name="kind">
+                <dia:enum val="0"/>
+              </dia:attribute>
+            </dia:composite>
+            <dia:composite type="umlparameter">
+              <dia:attribute name="name">
+                <dia:string>#itemId#</dia:string>
+              </dia:attribute>
+              <dia:attribute name="type">
+                <dia:string>#id#</dia:string>
+              </dia:attribute>
+              <dia:attribute name="value">
+                <dia:string>##</dia:string>
+              </dia:attribute>
+              <dia:attribute name="comment">
+                <dia:string>##</dia:string>
+              </dia:attribute>
+              <dia:attribute name="kind">
+                <dia:enum val="0"/>
+              </dia:attribute>
+            </dia:composite>
+            <dia:composite type="umlparameter">
+              <dia:attribute name="name">
+                <dia:string>#qty#</dia:string>
+              </dia:attribute>
+              <dia:attribute name="type">
+                <dia:string>#number(10,2)#</dia:string>
+              </dia:attribute>
+              <dia:attribute name="value">
+                <dia:string>##</dia:string>
+              </dia:attribute>
+              <dia:attribute name="comment">
+                <dia:string>##</dia:string>
+              </dia:attribute>
+              <dia:attribute name="kind">
+                <dia:enum val="0"/>
+              </dia:attribute>
+            </dia:composite>
+          </dia:attribute>
+        </dia:composite>
+      </dia:attribute>
       <dia:attribute name="template">
         <dia:boolean val="false"/>
       </dia:attribute>
@@ -351,13 +516,13 @@
     </dia:object>
     <dia:object type="UML - SmallPackage" version="0" id="O3">
       <dia:attribute name="obj_pos">
-        <dia:point val="25,4"/>
+        <dia:point val="39,4"/>
       </dia:attribute>
       <dia:attribute name="obj_bb">
-        <dia:rectangle val="24.95,3.05;29.5,5.45"/>
+        <dia:rectangle val="38.95,3.05;43.5,5.45"/>
       </dia:attribute>
       <dia:attribute name="elem_corner">
-        <dia:point val="25,4"/>
+        <dia:point val="39,4"/>
       </dia:attribute>
       <dia:attribute name="elem_width">
         <dia:real val="4.45"/>
@@ -386,7 +551,7 @@
             <dia:real val="0.8"/>
           </dia:attribute>
           <dia:attribute name="pos">
-            <dia:point val="25.3,4.95"/>
+            <dia:point val="39.3,4.95"/>
           </dia:attribute>
           <dia:attribute name="color">
             <dia:color val="#000000"/>
@@ -402,13 +567,13 @@
         <dia:point val="2.05,5.7"/>
       </dia:attribute>
       <dia:attribute name="obj_bb">
-        <dia:rectangle val="2,5.65;7.1,11.5"/>
+        <dia:rectangle val="2,5.65;7.1,14.5"/>
       </dia:attribute>
       <dia:attribute name="orth_points">
         <dia:point val="2.05,5.7"/>
         <dia:point val="2.75,5.7"/>
-        <dia:point val="2.75,9.9"/>
-        <dia:point val="5,9.9"/>
+        <dia:point val="2.75,12.9"/>
+        <dia:point val="5,12.9"/>
       </dia:attribute>
       <dia:attribute name="orth_orient">
         <dia:enum val="0"/>
@@ -461,16 +626,16 @@
     </dia:object>
     <dia:object type="UML - Association" version="0" id="O5">
       <dia:attribute name="obj_pos">
-        <dia:point val="13.3,9.9"/>
+        <dia:point val="26.95,12.9"/>
       </dia:attribute>
       <dia:attribute name="obj_bb">
-        <dia:rectangle val="13.25,6.65;17.7,11.5"/>
+        <dia:rectangle val="26.9,7.65;31.7,14.5"/>
       </dia:attribute>
       <dia:attribute name="orth_points">
-        <dia:point val="13.3,9.9"/>
-        <dia:point val="15.325,9.9"/>
-        <dia:point val="15.325,6.7"/>
-        <dia:point val="17,6.7"/>
+        <dia:point val="26.95,12.9"/>
+        <dia:point val="30,12.9"/>
+        <dia:point val="30,7.7"/>
+        <dia:point val="31,7.7"/>
       </dia:attribute>
       <dia:attribute name="orth_orient">
         <dia:enum val="0"/>
@@ -523,16 +688,16 @@
     </dia:object>
     <dia:object type="UML - Association" version="0" id="O6">
       <dia:attribute name="obj_pos">
-        <dia:point val="23.55,7.9"/>
+        <dia:point val="37.55,8.9"/>
       </dia:attribute>
       <dia:attribute name="obj_bb">
-        <dia:rectangle val="23.5,4.65;26.35,9.5"/>
+        <dia:rectangle val="37.5,4.65;40.35,10.5"/>
       </dia:attribute>
       <dia:attribute name="orth_points">
-        <dia:point val="23.55,7.9"/>
-        <dia:point val="24.275,7.9"/>
-        <dia:point val="24.275,4.7"/>
-        <dia:point val="25,4.7"/>
+        <dia:point val="37.55,8.9"/>
+        <dia:point val="38.275,8.9"/>
+        <dia:point val="38.275,4.7"/>
+        <dia:point val="39,4.7"/>
       </dia:attribute>
       <dia:attribute name="orth_orient">
         <dia:enum val="0"/>

Modified: trunk/gnue-packages/supply-chain/doc/Inv.png
===================================================================
(Binary files differ)

Modified: trunk/gnue-packages/supply-chain/inventory/invent.gcd
===================================================================
--- trunk/gnue-packages/supply-chain/inventory/invent.gcd       2005-05-18 
12:27:19 UTC (rev 7546)
+++ trunk/gnue-packages/supply-chain/inventory/invent.gcd       2005-05-19 
10:12:52 UTC (rev 7547)
@@ -24,23 +24,102 @@
      $Id$ -->
 
 <module name="INVENT">
-
   <class name="Item" module="ITEM" comment="Expand base item with 
inventory-specific attributes">
     <property name="minQty"         type="number(10,2)"     comment=""/>
     <property name="maxQty"         type="number(10,2)"     comment=""/>
     <property name="reorderLimit"   type="number(10,2)"     comment=""/>
     <property name="reorderQty"     type="number(10,2)"     comment=""/>
+    
+    <procedure name="OnInit">
+      self.minQty = 0
+      self.maxQty = None
+      self.reorderLimit = 0
+    </procedure>
   </class>
 
+
   <class name="Whouse" comment="Warehouse">
     <property name="name"       type="string(35)"   nullable="False"    
comment=""/>
     <property name="location"   type="LOC_Address"                      
comment=""/>
   </class>
 
+
   <class name="ItemInWhouse"    comment="Item in warehouse">
-    <property name="whouseId"   type="INVENT_Whouse"    nullable="False"    
comment="" />
-    <property name="itemId"     type="ITEM_Item"        nullable="False"    
comment="" />
-    <property name="onStock"    type="number(10,2)"     nullable="False"    
comment="" />
+    <property name="whouseId"   type="INVENT_Whouse"    nullable="False"    
comment="where" />
+    <property name="itemId"     type="ITEM_Item"        nullable="False"    
comment="what" />
+    <property name="onStock"    type="number(10,2)"     nullable="False"    
comment="how many" />
+    
+    <!--
+    Adds a given number of items to a warehouse.
+    Return: quantity of items in the warehouse after addition
+            -1 on limit error (ie stock would go beyond the maximum quantity)
+            None on any other error
+    -->
+    <procedure name="Add"   type="number(10,2)" comment="Return: new qty on 
stock, -1 on limit error">
+      <parameter name="whouseId"    type="id"/>
+      <parameter name="itemId"      type="id"/>
+      <parameter name="qty"         type="number(10,2)"/>
+      <![CDATA[
+      try:
+        itemObj = session.get('ITEM_Item', itemId)
+        
+        if qty <= itemObj.maxQty:
+          lot = find('INVENT_ItemInWhouse', {'INVENT_whouseId':whouseId, 
'INVENT_itemId':itemId}, [], [])
+          if not lot:
+            newLot = new('INVENT_ItemInWhouse')
+            newLot.whouse   = whouseId
+            newLot.item     = itemId
+            newLot.onStock  = qty
+            ret = newLot.onStock
+          else:
+            if itemObj.maxQty and (lot[0].onStock + qty <= itemObj.maxQty) or 
not itemObj.maxQty:
+              lot[0].onStock += qty
+              ret = lot[0].onStock
+            else:
+              ret = -1
+          session.commit()
+        else:
+          ret = -1
+      except:
+        ret = None
+        
+      return ret
+      ]]>
+    </procedure>
+    
+    <!--
+    Removes a given number of items from a warehouse.
+    If the quantity falls below the reorder limit, initiates a reorder process 
(TODO)
+    Return: quantity of items left in the warehouse
+            -1 on limit error (ie stock would fall below the minimum quantity)
+            None on any other error
+    -->
+    <procedure name="Remove"    type="number(10,2)" comment="Return: new qty 
on stock, -1 on limit error">
+      <parameter name="whouseId"    type="id"/>
+      <parameter name="itemId"      type="id"/>
+      <parameter name="qty"         type="number(10,2)"/>
+      <![CDATA[
+      try:
+        lot = find('INVENT_ItemInWhouse', {'INVENT_whouseId':whouseId, 
'INVENT_itemId':itemId}, [], [])
+        if lot:
+          itemObj = session.get('ITEM_Item', itemId)
+          if itemObj.minQty and (lot[0].onStock - qty >= itemObj.minQty) or 
not itemObj.minQty:
+            lot[0].onStock -= qty
+            ret = lot[0].onStock
+            session.commit()
+
+            if itemObj.reorderLimit and (lot[0].onStock < 
itemObj.reorderLimit):
+              print "Reorder!"
+              #reorder
+          else:
+            ret = -1
+        else:
+          ret = -1
+      except:
+        ret = None
+        
+      return ret
+      ]]>
+    </procedure>
   </class>
-
 </module>





reply via email to

[Prev in Thread] Current Thread [Next in Thread]