[Top][All Lists]
[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>
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [gnue] r7547 - in trunk/gnue-packages/supply-chain: doc inventory,
kilo <=