Subversion Repositories SmartDukaan

Rev

Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
122 ashish 1
'''
2
Created on 27-Apr-2010
3
 
4
@author: ashish
5
'''
6
from shop2020.model.v1.catalog.impl import DataService
7
from shop2020.utils.Utils import log_entry
8
from shop2020.model.v1.catalog.impl.DataAcessors import add_item, add_warehouse,\
9
    update_inventory, retire_warehouse, retire_item, change_item_status,\
10
    get_Item, get_all_items, get_all_items_by_status, get_item_inventoy,\
11
    get_item_availability_for_warehouse, get_all_warehouses_by_status,\
12
    get_Warehouse, get_all_warehouses_for_item, get_all_items_for_warehouse,\
13
    update_item, update_price, update_price_for_warehouse, start_item_on,\
386 ashish 14
    retire_item_on, get_item_inventory_by_catalog_id, get_item_by_catalog_id
122 ashish 15
from shop2020.model.v1.catalog.impl.Convertors import to_t_item,\
16
    to_t_item_inventory, to_t_warehouse
17
from shop2020.thriftpy.model.v1.catalog.ttypes import status,\
18
    InventoryServiceException
19
 
20
 
21
class InventoryServiceHandler:
22
    '''
23
    classdocs
24
    '''
25
    def __init__(self):
26
        '''
27
        Constructor
28
        '''
29
        DataService.initialize()
30
 
31
    #DONE
32
    def addItem(self, item):
33
        """
34
        Availability and inventory attributes
35
 
36
        Parameters:
37
         - item
38
        """
39
        log_entry(self, "addItem called")
40
        return add_item(item)
41
        pass
42
 
43
    def addWarehouse(self, warehouse):
44
        """
45
        Parameters:
46
         - warehouse
47
        """
48
        log_entry(self, "addWarehouse called")
49
        return add_warehouse(warehouse)
50
        pass
51
 
52
    def updateInventory(self, item_id, warehouse_id, quantity, timestamp):
53
        """
54
        Parameters:
55
         - item_id
56
         - warehouse_id
57
         - quantity
58
         - timestamp
59
        """
60
        log_entry(self, "update Inventory called")
61
        return update_inventory(item_id, warehouse_id, quantity, timestamp)
62
 
63
 
64
    def retireWarehouse(self, warehouse_id):
65
        """
66
        Parameters:
67
         - warehouse_id
68
        """
69
        log_entry(self, "retire warehouse called")
70
        return retire_warehouse(warehouse_id)
71
 
72
 
73
    def retireItem(self, item_id):
74
        """
75
        Parameters:
76
        - item_id
77
        """
78
        log_entry(self, "retire item called")
79
        return retire_item(item_id)
80
 
81
    def startItemOn(self, item_id, timestamp):
82
        """
83
        Parameters:
84
         - item_id
85
         - timestamp
86
        """
87
        start_item_on(item_id, timestamp)
88
 
89
    def retireItemOn(self, item_id, timestamp):
90
        """
91
        Parameters:
92
         - item_id
93
         - timestamp
94
        """
95
        retire_item_on(item_id, timestamp)
96
 
97
    def changeItemStatus(self, item_id, timestamp, newstatus):
98
        """
99
        Parameters:
100
         - item_id
101
         - timestamp
102
         - newstatus
103
        """
104
        log_entry(self, "change item status called")
105
        return change_item_status(item_id, newstatus)
106
 
107
 
108
    def getItem(self, item_id):
109
        """
110
        Parameters:
111
         - item_id
112
        """
113
        log_entry(self, "item requested")
114
        return to_t_item( get_Item(item_id))
115
        pass
379 ashish 116
 
117
    def getItemByCatalogId(self, catalog_item_id):
118
        """
119
        Parameters:
120
        - catalog_item_id
121
        """
386 ashish 122
        log_entry(self, "item requested")
123
        return to_t_item( get_item_by_catalog_id(catalog_item_id))
379 ashish 124
        pass
122 ashish 125
 
379 ashish 126
 
122 ashish 127
    def getAllItems(self, isActive):
128
        """
129
        Parameters:
130
         - isActive
131
        """
132
        log_entry(self, "all items requested")
133
 
134
        items = get_all_items(isActive)
135
        ret_items = []
136
        for item in items:
137
            if item:
138
                ret_items.append(to_t_item(item))
139
        return ret_items
140
 
141
    def getAllItemsByStatus(self, itemStatus):
142
        """
143
        Parameters:
144
         - itemStatus
145
        """
146
        log_entry(self, "all items requested")
147
 
148
        items = get_all_items_by_status(itemStatus)
149
        ret_items = []
150
        for item in items:
151
            if item:
152
                ret_items.append(to_t_item(item))
153
        return ret_items
154
 
155
    def getItemInventory(self, item_id):
156
        """
157
        Parameters:
158
        - item_id
159
        """
160
        log_entry(self, "item inventory requested")
161
        inventory = get_item_inventoy(item_id)
162
        return to_t_item_inventory(inventory, item_id)
163
 
379 ashish 164
    def getItemInventoryByCatalogId(self, item_id):
165
        """
166
        Parameters:
167
         - item_id
168
        """
383 ashish 169
        log_entry(self, "item inventory requested")
170
        inventory = get_item_inventory_by_catalog_id(item_id)
171
        return to_t_item_inventory(inventory, item_id)
379 ashish 172
 
173
 
122 ashish 174
    def getItemAvailibilityAtWarehouse(self, warehouse_id, item_id):
175
        """
176
        Parameters:
177
         - warehouse_id
178
         - item_id
179
        """
180
        log_entry(self, "item availability at warehouse requested")
181
        return get_item_availability_for_warehouse(warehouse_id, item_id)
182
 
183
    def getItemInventoryHistory(self, id, item_id, warehouse_id, from_date, to_date):
184
        """
185
        Parameters:
186
         - id
187
         - item_id
188
         - warehouse_id
189
         - from_date
190
         - to_date
191
        """
192
        pass
193
 
194
    def getAllWarehouses(self, isActive):
195
        """
196
        Parameters:
197
        - isActive
198
        """
199
        if isActive:
200
            warehouses = get_all_warehouses_by_status(status.ACTIVE)
201
 
202
        else:
203
            warehouses = get_all_warehouses_by_status(None)
204
 
205
        ret_warehouses = []
206
 
207
        for warehouse in warehouses:
208
            ret_warehouses.append(to_t_warehouse(warehouse))
209
        return ret_warehouses
210
 
211
    def getWarehouse(self, warehouse_id):
212
        """
213
        Parameters:
214
         - warehouse_id
215
        """
216
        log_entry(self, "get warehouse call")
217
        warehouse = get_Warehouse(warehouse_id)
218
        if warehouse:
219
            return to_t_warehouse(warehouse)
220
        else:
221
            raise InventoryServiceException(101, "no such warehouse")
222
 
223
    def getAllWarehousesForItem(self, item_id):
224
        """
225
        Parameters:
226
         - item_id
227
        """
228
        log_entry(self, "getting all warehouses for item")
229
        all_warehouses = get_all_warehouses_for_item(item_id)
230
        t_warehouses = []
231
        for warehouse in all_warehouses:
232
            t_warehouses.append(to_t_warehouse(warehouse))
233
        return t_warehouses
234
 
235
    def getAllItemsForWarehouse(self, warehouse_id):
236
        """
237
        Parameters:
238
         - warehouse_id
239
        """
240
        log_entry(self, "getting all items for warehouse")
241
        all_items = get_all_items_for_warehouse(warehouse_id)
242
        t_items = []
243
        for item in all_items:
244
            t_items.append(to_t_item(item))
245
        return t_items
246
    def updateItem(self, item):
247
        """
248
        Parameters:
249
         - item
250
        """
251
        log_entry(self, "addItem called")
252
        return update_item(item)
253
 
254
    def updatePrice(self, item_id, warehouse_id, price):
255
        """
256
        Parameters:
257
         - item_id
258
         - warehouse_id
259
         - price
260
        """
261
        log_entry(self, "updatePrice")
262
        update_price_for_warehouse(item_id, warehouse_id, price)
263
        pass
264