Subversion Repositories SmartDukaan

Rev

Rev 724 | Rev 759 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 724 Rev 746
Line 7... Line 7...
7
from elixir.entity import Entity
7
from elixir.entity import Entity
8
from elixir.fields import Field
8
from elixir.fields import Field
9
from sqlalchemy.types import Integer, Binary
9
from sqlalchemy.types import Integer, Binary
10
from elixir.relationships import OneToMany, ManyToOne
10
from elixir.relationships import OneToMany, ManyToOne
11
import datetime
11
import datetime
-
 
12
import elixir
12
 
13
 
13
class BestSellers(Entity):
14
class BestSellers(Entity):
14
    manufacturer_name = Field(String(100), primary_key=True)
15
    manufacturer_name = Field(String(100), primary_key=True)
15
    model_number = Field(String(50), primary_key=True)
16
    model_number = Field(String(50), primary_key=True)
16
    color = Field(String(20), primary_key=True)
17
    color = Field(String(20), primary_key=True)
17
    rank = Field(Integer)
18
    rank = Field(Integer)
18
    using_options(shortnames=True)
19
    using_options(shortnames=True)
-
 
20
    using_table_options(mysql_engine="InnoDB")
19
 
21
 
20
class Warehouse(Entity):
22
class Warehouse(Entity):
21
    id = Field(Integer, primary_key=True, autoincrement=True)
23
    id = Field(Integer, primary_key=True, autoincrement=True)
22
    location = Field(String(200))
24
    location = Field(String(200))
23
    status = Field(Integer)
25
    status = Field(Integer)
Line 27... Line 29...
27
    pincode = Field(String(10))
29
    pincode = Field(String(10))
28
    vendorString = Field(String(50))
30
    vendorString = Field(String(50))
29
    inventory = OneToMany('CurrentInventorySnapshot')
31
    inventory = OneToMany('CurrentInventorySnapshot')
30
    inventoryHistory = OneToMany('ItemInventoryHistory')
32
    inventoryHistory = OneToMany('ItemInventoryHistory')
31
    logisticsLocation = Field(Integer)
33
    logisticsLocation = Field(Integer)
-
 
34
    using_options(shortnames=True)
-
 
35
    using_table_options(mysql_engine="InnoDB")
32
    
36
    
33
    def __repr__(self):
37
    def __repr__(self):
34
        return "<warehouse>%s</warehouse>" %(self.location)
38
        return "<warehouse>%s</warehouse>" %(self.location)
35
 
39
 
36
    @property
40
    @property
Line 41... Line 45...
41
        return items 
45
        return items 
42
 
46
 
43
class EntityIDGenerator(Entity):
47
class EntityIDGenerator(Entity):
44
    id=Field(Integer, primary_key=True)
48
    id=Field(Integer, primary_key=True)
45
    using_options(shortnames=True)
49
    using_options(shortnames=True)
-
 
50
    using_table_options(mysql_engine="InnoDB")
46
    
51
    
47
class Item(Entity):
52
class Item(Entity):
48
    id = Field(Integer, primary_key=True, autoincrement=True)
53
    id = Field(Integer, primary_key=True, autoincrement=True)
49
    manufacturer_name = Field(String(100))
54
    manufacturer_name = Field(String(100))
50
    model_number = Field(String(50))
55
    model_number = Field(String(50))
Line 73... Line 78...
73
    currentInventory = OneToMany('CurrentInventorySnapshot')
78
    currentInventory = OneToMany('CurrentInventorySnapshot')
74
    inventoryHistory = OneToMany('ItemInventoryHistory')
79
    inventoryHistory = OneToMany('ItemInventoryHistory')
75
    iteminfo = OneToMany("ItemInfo")
80
    iteminfo = OneToMany("ItemInfo")
76
    statusChangeLog = OneToMany("ItemChangeLog")
81
    statusChangeLog = OneToMany("ItemChangeLog")
77
    hotspotCategory = Field(String(50))
82
    hotspotCategory = Field(String(50))
-
 
83
    using_options(shortnames=True)
-
 
84
    using_table_options(mysql_engine="InnoDB")
78
    
85
    
79
    def __repr__(self):
86
    def __repr__(self):
80
        return "<Item>%d</item>" % (self.id)
87
        return "<Item>%d</item>" % (self.id)
81
    
88
    
82
    @property
89
    @property
Line 100... Line 107...
100
class ItemInfo(Entity):
107
class ItemInfo(Entity):
101
    id = Field(Integer, primary_key=True, autoincrement=True)
108
    id = Field(Integer, primary_key=True, autoincrement=True)
102
    key = Field(String(30))
109
    key = Field(String(30))
103
    value = Field(String(100))
110
    value = Field(String(100))
104
    item = ManyToOne("Item")
111
    item = ManyToOne("Item")
-
 
112
    using_options(shortnames=True)
-
 
113
    using_table_options(mysql_engine="InnoDB")
105
    
114
    
106
    def __repr__(self):
115
    def __repr__(self):
107
        return "<ItemInfo><key>%s</key><value>%s</value></ItemInfo>" % (self.key, self.value)
116
        return "<ItemInfo><key>%s</key><value>%s</value></ItemInfo>" % (self.key, self.value)
108
    
117
    
109
 
118
 
Line 111... Line 120...
111
    #id = Field(Integer, primary_key=True)
120
    #id = Field(Integer, primary_key=True)
112
    #checkedOn = Field(DateTime, default=datetime.datetime.now())
121
    #checkedOn = Field(DateTime, default=datetime.datetime.now())
113
    availibility = Field(Integer)
122
    availibility = Field(Integer)
114
    item = ManyToOne("Item")
123
    item = ManyToOne("Item")
115
    warehouse = ManyToOne("Warehouse")
124
    warehouse = ManyToOne("Warehouse")
-
 
125
    using_options(shortnames=True)
-
 
126
    using_table_options(mysql_engine="InnoDB")
116
    
127
    
117
    def __repr__(self):
128
    def __repr__(self):
118
        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)
129
        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)
119
 
130
 
120
class ItemInventoryHistory(Entity):
131
class ItemInventoryHistory(Entity):
121
    id = Field(Integer, primary_key=True, autoincrement = True)    
132
    id = Field(Integer, primary_key=True, autoincrement = True)    
122
    timestamp = Field(DateTime, default=datetime.datetime.now())
133
    timestamp = Field(DateTime, default=datetime.datetime.now())
123
    availibility = Field(Integer)
134
    availibility = Field(Integer)
124
    item = ManyToOne("Item")
135
    item = ManyToOne("Item")
125
    warehouse = ManyToOne("Warehouse")
136
    warehouse = ManyToOne("Warehouse")
-
 
137
    using_options(shortnames=True)
-
 
138
    using_table_options(mysql_engine="InnoDB")
126
    
139
    
127
    def __repr__(self):
140
    def __repr__(self):
128
        pass
141
        pass
129
 
142
 
130
class ItemChangeLog(Entity):
143
class ItemChangeLog(Entity):
131
    id = Field(Integer, primary_key=True, autoincrement=True)
144
    id = Field(Integer, primary_key=True, autoincrement=True)
132
    old_status = Field(Integer)
145
    old_status = Field(Integer)
133
    new_status = Field(Integer)
146
    new_status = Field(Integer)
134
    timestamp = Field(DateTime, default=datetime.datetime.now())
147
    timestamp = Field(DateTime, default=datetime.datetime.now())
135
    item = ManyToOne("Item")
148
    item = ManyToOne("Item")
-
 
149
    using_options(shortnames=True)
-
 
150
    using_table_options(mysql_engine="InnoDB")
136
    
151
    
137
    def __repr__(self):
152
    def __repr__(self):
138
        return "<Log><id>%d</id><item>%d</item><old_status>%d</old_status><new_status>%d</new_status></Log>" %(self.id,self.item.id, self.old_status, self.new_status)    
153
        return "<Log><id>%d</id><item>%d</item><old_status>%d</old_status><new_status>%d</new_status></Log>" %(self.id,self.item.id, self.old_status, self.new_status)    
139
 
154
 
140
class Category(Entity):
155
class Category(Entity):
141
    id = Field(Integer, primary_key=True, autoincrement=True)
156
    id = Field(Integer, primary_key=True, autoincrement=True)
142
    object = Field(Binary)
157
    object = Field(Binary)
-
 
158
    using_options(shortnames=True)
-
 
159
    using_table_options(mysql_engine="InnoDB")
143
 
160
    
144
def initialize():
161
def initialize():
145
    metadata.bind = "sqlite:///inventory-new.sqlite" #need to read it from configserver.
162
    #metadata.bind = "sqlite:///inventory-new.sqlite" #need to read it from configserver.
-
 
163
    metadata.bind = 'mysql://root:shop2020@localhost/catalog'
146
    metadata.bind.echo = True
164
    metadata.bind.echo = True
147
    setup_all(True)
165
    setup_all(True)
148
 
166
 
149
if __name__=="__main__":
167
if __name__=="__main__":
150
    initialize()
168
    initialize()
151
169