| Line 8... |
Line 8... |
| 8 |
from elixir.fields import Field
|
8 |
from elixir.fields import Field
|
| 9 |
from elixir.options import using_options, using_table_options
|
9 |
from elixir.options import using_options, using_table_options
|
| 10 |
from elixir.relationships import OneToMany, ManyToOne, ManyToMany
|
10 |
from elixir.relationships import OneToMany, ManyToOne, ManyToMany
|
| 11 |
from sqlalchemy import create_engine
|
11 |
from sqlalchemy import create_engine
|
| 12 |
from sqlalchemy.types import Integer, String, DateTime, Float, Boolean, Text,\
|
12 |
from sqlalchemy.types import Integer, String, DateTime, Float, Boolean, Text,\
|
| 13 |
Date
|
13 |
Date, Enum
|
| 14 |
import datetime
|
14 |
import datetime
|
| 15 |
import elixir
|
15 |
import elixir
|
| 16 |
|
16 |
|
| 17 |
class Vendor(Entity):
|
17 |
class Vendor(Entity):
|
| 18 |
id = Field(Integer, primary_key=True, autoincrement=True)
|
18 |
id = Field(Integer, primary_key=True, autoincrement=True)
|
| 19 |
name = Field(String(50))
|
19 |
name = Field(String(50))
|
| 20 |
warehouses = ManyToMany('Warehouse')
|
20 |
warehouses = OneToMany('Warehouse')
|
| 21 |
using_options(shortnames=True)
|
21 |
using_options(shortnames=True)
|
| 22 |
using_table_options(mysql_engine="InnoDB")
|
22 |
using_table_options(mysql_engine="InnoDB")
|
| 23 |
|
23 |
|
| 24 |
class Warehouse(Entity):
|
24 |
class Warehouse(Entity):
|
| 25 |
id = Field(Integer, primary_key=True, autoincrement=True)
|
25 |
id = Field(Integer, primary_key=True, autoincrement=True)
|
| 26 |
displayName = Field(String(50))
|
26 |
displayName = Field(String(50))
|
| 27 |
location = Field(String(200))
|
27 |
location = Field(String(200))
|
| 28 |
status = Field(Integer)
|
- |
|
| 29 |
addedOn = Field(DateTime)
|
28 |
addedOn = Field(DateTime)
|
| 30 |
lastCheckedOn = Field(DateTime)
|
29 |
lastCheckedOn = Field(DateTime)
|
| 31 |
tinNumber = Field(String(50))
|
30 |
tinNumber = Field(String(50))
|
| 32 |
pincode = Field(String(10))
|
31 |
pincode = Field(String(10))
|
| 33 |
vendorString = Field(String(50))
|
32 |
vendorString = Field(String(50))
|
| - |
|
33 |
badInventory = OneToMany('BadInventorySnapshot')
|
| 34 |
inventory = OneToMany('CurrentInventorySnapshot')
|
34 |
inventory = OneToMany('CurrentInventorySnapshot')
|
| 35 |
inventoryHistory = OneToMany('ItemInventoryHistory')
|
35 |
inventoryHistory = OneToMany('ItemInventoryHistory')
|
| 36 |
logisticsLocation = Field(Integer)
|
36 |
logisticsLocation = Field(Integer)
|
| 37 |
vendors = ManyToMany('Vendor')
|
37 |
vendor = ManyToOne('Vendor')
|
| 38 |
billingType = Field(Integer)
|
38 |
billingType = Field(Integer)
|
| - |
|
39 |
inventoryType = Field(Enum('GOOD', 'BAD', 'VIRTUAL'))
|
| - |
|
40 |
warehouseType = Field(Enum('OURS', 'THIRD_PARTY'))
|
| - |
|
41 |
shippingWarehouseId = Field(Integer)
|
| - |
|
42 |
billingWarehouseId = Field(Integer)
|
| - |
|
43 |
transferDelayInHours = Field(Integer)
|
| - |
|
44 |
isAvailabilityMonitored = Field(Boolean)
|
| 39 |
using_options(shortnames=True)
|
45 |
using_options(shortnames=True)
|
| 40 |
using_table_options(mysql_engine="InnoDB")
|
46 |
using_table_options(mysql_engine="InnoDB")
|
| 41 |
|
47 |
|
| 42 |
def __repr__(self):
|
48 |
def __repr__(self):
|
| 43 |
return "<warehouse>%s</warehouse>" %(self.location)
|
49 |
return "<warehouse>%s</warehouse>" %(self.location)
|
| Line 88... |
Line 94... |
| 88 |
expectedDelay = Field(Integer)
|
94 |
expectedDelay = Field(Integer)
|
| 89 |
warranty_period = Field(Integer)
|
95 |
warranty_period = Field(Integer)
|
| 90 |
defaultWarehouse = Field(Integer)
|
96 |
defaultWarehouse = Field(Integer)
|
| 91 |
isWarehousePreferenceSticky = Field(Boolean)
|
97 |
isWarehousePreferenceSticky = Field(Boolean)
|
| 92 |
preferredVendor = Field(Integer)
|
98 |
preferredVendor = Field(Integer)
|
| - |
|
99 |
type = Field(Enum('SERIALIZED', 'NON_SERIALIZED'))
|
| 93 |
using_options(shortnames=True)
|
100 |
using_options(shortnames=True)
|
| 94 |
using_table_options(mysql_engine="InnoDB")
|
101 |
using_table_options(mysql_engine="InnoDB")
|
| 95 |
|
102 |
|
| 96 |
def __repr__(self):
|
103 |
def __repr__(self):
|
| 97 |
return "<Item>%d</item>" % (self.id)
|
104 |
return "<Item>%d</item>" % (self.id)
|
| Line 153... |
Line 160... |
| 153 |
def __repr__(self):
|
160 |
def __repr__(self):
|
| 154 |
return "<ItemInfo><key>%s</key><value>%s</value></ItemInfo>" % (self.key, self.value)
|
161 |
return "<ItemInfo><key>%s</key><value>%s</value></ItemInfo>" % (self.key, self.value)
|
| 155 |
|
162 |
|
| 156 |
|
163 |
|
| 157 |
class CurrentInventorySnapshot(Entity):
|
164 |
class CurrentInventorySnapshot(Entity):
|
| 158 |
#id = Field(Integer, primary_key=True)
|
- |
|
| 159 |
#checkedOn = Field(DateTime, default=datetime.datetime.now())
|
- |
|
| 160 |
item = ManyToOne("Item", primary_key=True)
|
165 |
item = ManyToOne("Item", primary_key=True)
|
| 161 |
warehouse = ManyToOne("Warehouse", primary_key=True)
|
166 |
warehouse = ManyToOne("Warehouse", primary_key=True)
|
| 162 |
availibility = Field(Integer)
|
167 |
availibility = Field(Integer)
|
| 163 |
reserved = Field(Integer)
|
168 |
reserved = Field(Integer)
|
| 164 |
using_options(shortnames=True)
|
169 |
using_options(shortnames=True)
|
| 165 |
using_table_options(mysql_engine="InnoDB")
|
170 |
using_table_options(mysql_engine="InnoDB")
|
| 166 |
|
171 |
|
| 167 |
def __repr__(self):
|
172 |
def __repr__(self):
|
| 168 |
return "<current inventory><availability> %s </availability><time>%s</time><item>%s</item><warehouse>%s</warehouse></current inventory>" %(self.availibility, self.checkedOn, self.item, self.warehouse)
|
173 |
return "<current inventory><availability> %s </availability><time>%s</time><item>%s</item><warehouse>%s</warehouse></current inventory>" %(self.availibility, self.checkedOn, self.item, self.warehouse)
|
| 169 |
|
174 |
|
| - |
|
175 |
class BadInventorySnapshot(Entity):
|
| - |
|
176 |
item = ManyToOne("Item", primary_key=True)
|
| - |
|
177 |
warehouse = ManyToOne("Warehouse", primary_key=True)
|
| - |
|
178 |
availability = Field(Integer)
|
| - |
|
179 |
using_options(shortnames=True)
|
| - |
|
180 |
using_table_options(mysql_engine="InnoDB")
|
| - |
|
181 |
|
| 170 |
class ItemInventoryHistory(Entity):
|
182 |
class ItemInventoryHistory(Entity):
|
| 171 |
id = Field(Integer, primary_key=True, autoincrement = True)
|
183 |
id = Field(Integer, primary_key=True, autoincrement = True)
|
| 172 |
timestamp = Field(DateTime, default=datetime.datetime.now())
|
184 |
timestamp = Field(DateTime, default=datetime.datetime.now())
|
| 173 |
availibility = Field(Integer)
|
185 |
availibility = Field(Integer)
|
| 174 |
item = ManyToOne("Item")
|
186 |
item = ManyToOne("Item")
|