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,\
483 rajveer 14
    retire_item_on, get_item_inventory_by_catalog_id, get_item_by_catalog_id,\
563 chandransh 15
    get_item_by_vendor_id, get_best_deals, get_best_sellers, get_latest_arrivals,\
16
    is_active
122 ashish 17
from shop2020.model.v1.catalog.impl.Convertors import to_t_item,\
18
    to_t_item_inventory, to_t_warehouse
19
from shop2020.thriftpy.model.v1.catalog.ttypes import status,\
20
    InventoryServiceException
21
 
22
 
23
class InventoryServiceHandler:
24
    '''
25
    classdocs
26
    '''
27
    def __init__(self):
28
        '''
29
        Constructor
30
        '''
31
        DataService.initialize()
32
 
33
    #DONE
34
    def addItem(self, item):
35
        """
36
        Availability and inventory attributes
37
 
38
        Parameters:
39
         - item
40
        """
41
        log_entry(self, "addItem called")
42
        return add_item(item)
43
        pass
44
 
45
    def addWarehouse(self, warehouse):
46
        """
47
        Parameters:
48
         - warehouse
49
        """
50
        log_entry(self, "addWarehouse called")
51
        return add_warehouse(warehouse)
52
        pass
53
 
483 rajveer 54
 
55
    def updateInventory(self, warehouse_id, timestamp, availability):
122 ashish 56
        """
57
        Parameters:
58
         - warehouse_id
59
         - timestamp
483 rajveer 60
         - availability
122 ashish 61
        """
62
        log_entry(self, "update Inventory called")
483 rajveer 63
        return update_inventory(warehouse_id, timestamp, availability)
122 ashish 64
 
563 chandransh 65
    def isActive(self, item_id):
66
        """
67
        Parameters:
68
         - item_id
69
        """
70
        return is_active(item_id)
122 ashish 71
 
72
    def retireWarehouse(self, warehouse_id):
73
        """
74
        Parameters:
75
         - warehouse_id
76
        """
77
        log_entry(self, "retire warehouse called")
78
        return retire_warehouse(warehouse_id)
79
 
80
 
81
    def retireItem(self, item_id):
82
        """
83
        Parameters:
84
        - item_id
85
        """
86
        log_entry(self, "retire item called")
87
        return retire_item(item_id)
88
 
89
    def startItemOn(self, item_id, timestamp):
90
        """
91
        Parameters:
92
         - item_id
93
         - timestamp
94
        """
95
        start_item_on(item_id, timestamp)
96
 
97
    def retireItemOn(self, item_id, timestamp):
98
        """
99
        Parameters:
100
         - item_id
101
         - timestamp
102
        """
103
        retire_item_on(item_id, timestamp)
104
 
105
    def changeItemStatus(self, item_id, timestamp, newstatus):
106
        """
107
        Parameters:
108
         - item_id
109
         - timestamp
110
         - newstatus
111
        """
112
        log_entry(self, "change item status called")
113
        return change_item_status(item_id, newstatus)
114
 
115
 
116
    def getItem(self, item_id):
117
        """
118
        Parameters:
119
         - item_id
120
        """
121
        log_entry(self, "item requested")
122
        return to_t_item( get_Item(item_id))
123
        pass
379 ashish 124
 
125
    def getItemByCatalogId(self, catalog_item_id):
126
        """
127
        Parameters:
128
        - catalog_item_id
129
        """
386 ashish 130
        log_entry(self, "item requested")
131
        return to_t_item( get_item_by_catalog_id(catalog_item_id))
379 ashish 132
        pass
122 ashish 133
 
379 ashish 134
 
483 rajveer 135
    def getItemByVendorId(self, vendor_item_id):
136
        """
137
        Parameters:
138
        - catalog_item_id
139
        """
140
        log_entry(self, "item requested")
141
        return to_t_item( get_item_by_vendor_id(vendor_item_id))
142
        pass
143
 
144
 
122 ashish 145
    def getAllItems(self, isActive):
146
        """
147
        Parameters:
148
         - isActive
149
        """
150
        log_entry(self, "all items requested")
151
 
152
        items = get_all_items(isActive)
153
        ret_items = []
154
        for item in items:
155
            if item:
156
                ret_items.append(to_t_item(item))
157
        return ret_items
158
 
159
    def getAllItemsByStatus(self, itemStatus):
160
        """
161
        Parameters:
162
         - itemStatus
163
        """
164
        log_entry(self, "all items requested")
165
 
166
        items = get_all_items_by_status(itemStatus)
167
        ret_items = []
168
        for item in items:
169
            if item:
170
                ret_items.append(to_t_item(item))
171
        return ret_items
172
 
173
    def getItemInventory(self, item_id):
174
        """
175
        Parameters:
176
        - item_id
177
        """
178
        log_entry(self, "item inventory requested")
179
        inventory = get_item_inventoy(item_id)
180
        return to_t_item_inventory(inventory, item_id)
181
 
379 ashish 182
    def getItemInventoryByCatalogId(self, item_id):
183
        """
184
        Parameters:
185
         - item_id
186
        """
383 ashish 187
        log_entry(self, "item inventory requested")
188
        inventory = get_item_inventory_by_catalog_id(item_id)
189
        return to_t_item_inventory(inventory, item_id)
379 ashish 190
 
191
 
122 ashish 192
    def getItemAvailibilityAtWarehouse(self, warehouse_id, item_id):
193
        """
194
        Parameters:
195
         - warehouse_id
196
         - item_id
197
        """
198
        log_entry(self, "item availability at warehouse requested")
199
        return get_item_availability_for_warehouse(warehouse_id, item_id)
200
 
201
    def getItemInventoryHistory(self, id, item_id, warehouse_id, from_date, to_date):
202
        """
203
        Parameters:
204
         - id
205
         - item_id
206
         - warehouse_id
207
         - from_date
208
         - to_date
209
        """
210
        pass
211
 
212
    def getAllWarehouses(self, isActive):
213
        """
214
        Parameters:
215
        - isActive
216
        """
217
        if isActive:
218
            warehouses = get_all_warehouses_by_status(status.ACTIVE)
219
 
220
        else:
221
            warehouses = get_all_warehouses_by_status(None)
222
 
223
        ret_warehouses = []
224
 
225
        for warehouse in warehouses:
226
            ret_warehouses.append(to_t_warehouse(warehouse))
227
        return ret_warehouses
228
 
229
    def getWarehouse(self, warehouse_id):
230
        """
231
        Parameters:
232
         - warehouse_id
233
        """
234
        log_entry(self, "get warehouse call")
235
        warehouse = get_Warehouse(warehouse_id)
236
        if warehouse:
237
            return to_t_warehouse(warehouse)
238
        else:
239
            raise InventoryServiceException(101, "no such warehouse")
240
 
241
    def getAllWarehousesForItem(self, item_id):
242
        """
243
        Parameters:
244
         - item_id
245
        """
246
        log_entry(self, "getting all warehouses for item")
247
        all_warehouses = get_all_warehouses_for_item(item_id)
248
        t_warehouses = []
249
        for warehouse in all_warehouses:
250
            t_warehouses.append(to_t_warehouse(warehouse))
251
        return t_warehouses
252
 
253
    def getAllItemsForWarehouse(self, warehouse_id):
254
        """
255
        Parameters:
256
         - warehouse_id
257
        """
258
        log_entry(self, "getting all items for warehouse")
259
        all_items = get_all_items_for_warehouse(warehouse_id)
260
        t_items = []
261
        for item in all_items:
262
            t_items.append(to_t_item(item))
263
        return t_items
264
    def updateItem(self, item):
265
        """
266
        Parameters:
267
         - item
268
        """
269
        log_entry(self, "addItem called")
270
        return update_item(item)
271
 
272
    def updatePrice(self, item_id, warehouse_id, price):
273
        """
274
        Parameters:
275
         - item_id
276
         - warehouse_id
277
         - price
278
        """
279
        log_entry(self, "updatePrice")
280
        update_price_for_warehouse(item_id, warehouse_id, price)
281
        pass
282
 
548 rajveer 283
    def getBestSellers1(self, ):
501 rajveer 284
        return get_best_sellers()
285
 
548 rajveer 286
    def getBestDeals1(self, ):
501 rajveer 287
        return get_best_deals()
288
 
548 rajveer 289
    def getLatestArrivals1(self, ):
290
        return get_latest_arrivals()
291
 
292
    def getBestSellers(self, beginIndex, totalItems):
293
        """
294
        Parameters:
295
         - beginIndex
296
         - totalItems
297
        """
298
        return get_best_sellers()
299
    pass
300
 
301
    def totalBestSellers(self, ):
302
        return 105
303
    pass
304
 
305
    def getBestDeals(self, beginIndex, totalItems):
306
        """
307
        Parameters:
308
         - beginIndex
309
         - totalItems
310
        """
311
        return get_best_deals()
312
    pass
313
 
314
    def totalBestDeals(self, ):
315
        return 89
316
    pass
317
 
318
    def getLatestArrivals(self, beginIndex, totalItems):
319
        """
320
        Parameters:
321
         - beginIndex
322
         - totalItems
323
        """
324
        return get_latest_arrivals()
325
    pass
326
 
327
    def totalLatestArrivals(self, ):
328
        return 4
329
    pass