Subversion Repositories SmartDukaan

Rev

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

Rev 103 Rev 115
Line 14... Line 14...
14
 
14
 
15
class Category(Entity):
15
class Category(Entity):
16
    '''
16
    '''
17
    This class represents the catalog. 
17
    This class represents the catalog. 
18
    '''
18
    '''
19
    id = Field(Integer, primary_key=True)
19
    #id = Field(Integer, primary_key=True)
20
    name = Field(String(30))
20
    name = Field(String(30))
21
    isRoot = Field(Integer)
21
    isRoot = Field(Integer)
22
    addedOn = Field(DateTime)
22
    addedOn = Field(DateTime)
23
    status = Field(Integer)
23
    status = Field(Integer)
24
    items = ManyToMany('Item')
24
    items = ManyToMany('Item')
25
    children = OneToMany('Category', inverse='parent')
25
    children = OneToMany('Category', inverse='parent')
26
    parent = ManyToOne('Category', inverse='children')
26
    parent = ManyToOne('Category', inverse='children')
27
 
-
 
28
   
-
 
29
    def __repr__(self):
27
    def __repr__(self):
30
        return "<id>%id </id>"%(self.id)
28
        return "<id>%id </id>"%(self.id)
31
 
29
 
32
 
30
 
33
class Vendor(Entity):
31
class Vendor(Entity):
34
    id = Field(Integer, primary_key=True)
32
    #id = Field(Integer, primary_key=True)
35
    name = Field(String(30))
33
    name = Field(String(30))
36
    status = Field(Integer)
34
    status = Field(Integer)
37
    addedOn = Field(datetime)
35
    addedOn = Field(datetime)
38
    warehouses = ManyToMany('Warehouse')
36
    warehouses = ManyToMany('Warehouse')
39
    def __repr__(self):
37
    def __repr__(self):
40
        return "<Vendor>%s</Vendor>" %(self.name)
38
        return "<Vendor>%s</Vendor>" %(self.name)
41
 
39
 
42
    
40
    
43
class Warehouse(Entity):
41
class Warehouse(Entity):
44
    id = Field(Integer, primary_key=True)
42
    #id = Field(Integer, primary_key=True)
45
    location = Field(String(20))
43
    location = Field(String(20))
46
    status = Field(Integer)
44
    status = Field(Integer)
47
    addedOn = Field(datetime)
45
    addedOn = Field(datetime)
48
    vendors = ManyToMany('Vendor')
46
    vendors = ManyToMany('Vendor')
49
    inventory = OneToMany('CurrentInventorySnapshot')
47
    inventory = OneToMany('CurrentInventorySnapshot')
Line 52... Line 50...
52
    def __repr__(self):
50
    def __repr__(self):
53
        return "<warehouse>%s</warehouse>" %(self.location)
51
        return "<warehouse>%s</warehouse>" %(self.location)
54
 
52
 
55
 
53
 
56
class Item(Entity):
54
class Item(Entity):
57
    id = Field(Integer, primary_key=True)
55
    #id = Field(Integer, primary_key=True)
58
    name = Field(String(20))
56
    name = Field(String(20))
59
    price = Field(Float)
57
    price = Field(Float)
60
    addedOn = Field(datetime)
58
    addedOn = Field(datetime)
61
    status = Field(Integer)
59
    status = Field(Integer)
62
    startDate = Field(datetime)
60
    startDate = Field(datetime)
Line 68... Line 66...
68
    statusChangeLog = OneToMany("ItemChangeLog")
66
    statusChangeLog = OneToMany("ItemChangeLog")
69
    
67
    
70
    def __repr__(self):
68
    def __repr__(self):
71
        return "<Item>%s</item>" % (self.name)
69
        return "<Item>%s</item>" % (self.name)
72
    
70
    
73
    @property
71
    #@property
74
    def get_total_inventory(self):
72
    def get_total_inventory(self):
75
        if self.currentInventory:
73
        if self.currentInventory:
76
            i = 0
74
            i = 0
77
            for entry in self.currentInventory:
75
            for entry in self.currentInventory:
78
                i += entry.availability
76
                i += entry.availability
79
            return i
77
            return i
80
        
78
        
81
        else:
79
        else:
82
            return 0;
80
            return 0;
83
    
81
    
84
    @property    
82
    #@property
85
    def get_all_warehouses(self):
83
    def get_all_warehouses(self):
86
        warehouses = []
84
        warehouses = []
87
        for warehouse in self.currentInventory.warehouse:
85
        for warehouse in self.currentInventory.warehouse:
88
            warehouses.append(warehouse)
86
            warehouses.append(warehouse)
89
        return warehouses
87
        return warehouses
90
    
88
    
-
 
89
    
91
class ItemInfo(Entity):
90
class ItemInfo(Entity):
-
 
91
    #id = Field(Integer, primary_key=True)
92
    key = Field(String(30))
92
    key = Field(String(30))
93
    value = Field(String(100))
93
    value = Field(String(100))
94
    item = ManyToOne("Item")
94
    item = ManyToOne("Item")
95
    
95
    
96
    def __repr__(self):
96
    def __repr__(self):
97
        return "<ItemInfo><key>%s</key><value>%s</value></ItemInfo>" % (self.key, self.value)
97
        return "<ItemInfo><key>%s</key><value>%s</value></ItemInfo>" % (self.key, self.value)
-
 
98
    
98
 
99
 
99
class CurrentInventorySnapshot(Entity):
100
class CurrentInventorySnapshot(Entity):
100
    id = Field(Integer, primary_key=True)
101
    #id = Field(Integer, primary_key=True)
101
    checkedOn = Field(DateTime, default=datetime.datetime)
102
    checkedOn = Field(DateTime, default=datetime.datetime)
102
    availibility = Field(Integer)
103
    availibility = Field(Integer)
103
    item = ManyToOne("Item")
104
    item = ManyToOne("Item")
104
    warehouse = ManyToOne("Warehouse")
105
    warehouse = ManyToOne("Warehouse")
105
    
106
    
Line 109... Line 110...
109
#===============================================================================
110
#===============================================================================
110
# This is just a placeholder, will be using naveen's code for this.
111
# This is just a placeholder, will be using naveen's code for this.
111
#===============================================================================
112
#===============================================================================
112
    
113
    
113
class ItemInventoryHistory(Entity):
114
class ItemInventoryHistory(Entity):
114
    id = Field(Integer, primary_key=True)    
115
    #id = Field(Integer, primary_key=True)    
115
    timestamp = Field(DateTime, default=datetime.datetime.now())
116
    timestamp = Field(DateTime, default=datetime.datetime.now())
116
    availibility = Field(Integer)
117
    availibility = Field(Integer)
117
    item = ManyToOne("Item")
118
    item = ManyToOne("Item")
118
    warehouse = ManyToOne("Warehouse")
119
    warehouse = ManyToOne("Warehouse")
119
    
120
    
120
    def __repr__(self):
121
    def __repr__(self):
121
        pass
122
        pass
122
 
123
 
123
class ItemChangeLog(Entity):
124
class ItemChangeLog(Entity):
124
    id = Field(Integer, primary_key=True)
125
    #id = Field(Integer, primary_key=True)
125
    old_status = Field(Integer)
126
    old_status = Field(Integer)
126
    new_status = Field(Integer)
127
    new_status = Field(Integer)
127
    timestamp = Field(datetime)
128
    timestamp = Field(datetime)
128
    item = ManyToOne("Item")
129
    item = ManyToOne("Item")
129
    
130
    
130
    def __repr__(self):
131
    def __repr__(self):
131
        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)    
132
        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)    
132
 
133
 
133
 
134
 
134
def initialize():
135
def initialize():
135
    metadata.bind = "sqlite:///catalog.sqlite"
136
    metadata.bind = "sqlite:///catalog1.sqlite"
136
    metadata.bind.echo = True
137
    metadata.bind.echo = True
137
    setup_all(True)
138
    setup_all(True)
-
 
139
 
-
 
140
if __name__=="__main__":
-
 
141
    initialize()
138
142