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,\
635 rajveer 10
    get_item, get_all_items, get_all_items_by_status, get_item_inventoy,\
643 chandransh 11
    get_item_availability_for_warehouse, get_item_availability_for_location, get_all_warehouses_by_status,\
122 ashish 12
    get_Warehouse, get_all_warehouses_for_item, get_all_items_for_warehouse,\
766 rajveer 13
    update_item, start_item_on, close_session, \
635 rajveer 14
    retire_item_on, get_item_inventory_by_item_id, get_items_by_catalog_id,\
609 chandransh 15
    get_item_by_vendor_id, get_best_deals, get_best_deals_catalog_ids, get_best_deals_count, get_best_sellers, get_latest_arrivals, get_latest_arrivals_catalog_ids, get_latest_arrivals_count,\
635 rajveer 16
    is_active, get_best_sellers_catalog_ids, get_best_sellers_count, put_category_object,\
723 chandransh 17
    get_category_object, mark_item_as_content_complete
122 ashish 18
from shop2020.model.v1.catalog.impl.Convertors import to_t_item,\
19
    to_t_item_inventory, to_t_warehouse
20
from shop2020.thriftpy.model.v1.catalog.ttypes import status,\
21
    InventoryServiceException
599 chandransh 22
from shop2020.config.client.ConfigClient import ConfigClient
122 ashish 23
 
24
 
25
class InventoryServiceHandler:
26
    '''
27
    classdocs
28
    '''
599 chandransh 29
 
122 ashish 30
    def __init__(self):
31
        '''
32
        Constructor
33
        '''
34
        DataService.initialize()
599 chandransh 35
        try:
621 chandransh 36
            config_client = ConfigClient()
37
            self.latest_arrivals_limit = int(config_client.get_property("LATEST_ARRIVALS_LIMIT"));
38
            self.best_sellers_limit = int(config_client.get_property("BEST_SELLERS_LIMIT"))
599 chandransh 39
        except:
621 chandransh 40
            self.latest_arrivals_limit = 50
41
            self.best_sellers_limit = 50
122 ashish 42
 
43
    #DONE
44
    def addItem(self, item):
45
        """
46
        Availability and inventory attributes
47
 
48
        Parameters:
49
         - item
50
        """
51
        log_entry(self, "addItem called")
785 rajveer 52
        try:
53
            return add_item(item)
54
        finally:
55
            close_session()
122 ashish 56
 
57
    def addWarehouse(self, warehouse):
58
        """
59
        Parameters:
60
         - warehouse
61
        """
62
        log_entry(self, "addWarehouse called")
785 rajveer 63
        try:
64
            return add_warehouse(warehouse)
65
        finally:
66
            close_session()
122 ashish 67
 
483 rajveer 68
 
69
    def updateInventory(self, warehouse_id, timestamp, availability):
122 ashish 70
        """
71
        Parameters:
72
         - warehouse_id
73
         - timestamp
483 rajveer 74
         - availability
122 ashish 75
        """
76
        log_entry(self, "update Inventory called")
785 rajveer 77
        try:
78
            return update_inventory(warehouse_id, timestamp, availability)
79
        finally:
80
            close_session()
81
 
82
 
635 rajveer 83
    def isActive(self, item_id):
563 chandransh 84
        """
85
        Parameters:
635 rajveer 86
         - item_id
563 chandransh 87
        """
785 rajveer 88
        try:
89
            return is_active(item_id)
90
        finally:
91
            close_session()
122 ashish 92
 
93
    def retireWarehouse(self, warehouse_id):
94
        """
95
        Parameters:
96
         - warehouse_id
97
        """
98
        log_entry(self, "retire warehouse called")
785 rajveer 99
        try:
100
            return retire_warehouse(warehouse_id)
101
        finally:
102
            close_session()
103
 
122 ashish 104
 
105
    def retireItem(self, item_id):
106
        """
107
        Parameters:
108
        - item_id
109
        """
110
        log_entry(self, "retire item called")
785 rajveer 111
        try:
112
            return retire_item(item_id)
113
        finally:
114
            close_session()
122 ashish 115
 
116
    def startItemOn(self, item_id, timestamp):
117
        """
118
        Parameters:
119
         - item_id
120
         - timestamp
121
        """
785 rajveer 122
        try:
123
            start_item_on(item_id, timestamp)
124
        finally:
125
            close_session()
122 ashish 126
 
127
    def retireItemOn(self, item_id, timestamp):
128
        """
129
        Parameters:
130
         - item_id
131
         - timestamp
132
        """
785 rajveer 133
        try:
134
            retire_item_on(item_id, timestamp)
135
        finally:
136
            close_session()
122 ashish 137
 
138
    def changeItemStatus(self, item_id, timestamp, newstatus):
139
        """
140
        Parameters:
141
         - item_id
142
         - timestamp
143
         - newstatus
144
        """
145
        log_entry(self, "change item status called")
785 rajveer 146
        try:
147
            return change_item_status(item_id, newstatus)
148
        finally:
149
            close_session()
122 ashish 150
 
785 rajveer 151
 
122 ashish 152
    def getItem(self, item_id):
153
        """
154
        Parameters:
155
         - item_id
156
        """
157
        log_entry(self, "item requested")
785 rajveer 158
        try:
159
            return to_t_item( get_item(item_id))
160
        finally:
161
            close_session()
379 ashish 162
 
635 rajveer 163
    def getItemsByCatalogId(self, catalog_item_id):
379 ashish 164
        """
165
        Parameters:
166
        - catalog_item_id
167
        """
386 ashish 168
        log_entry(self, "item requested")
766 rajveer 169
        try:
170
            return get_items_by_catalog_id(catalog_item_id)
171
        finally:
172
            close_session()
122 ashish 173
 
483 rajveer 174
    def getItemByVendorId(self, vendor_item_id):
175
        """
176
        Parameters:
177
        - catalog_item_id
178
        """
179
        log_entry(self, "item requested")
766 rajveer 180
        try:
181
            return to_t_item( get_item_by_vendor_id(vendor_item_id))
182
        finally:
183
            close_session()
483 rajveer 184
 
185
 
122 ashish 186
    def getAllItems(self, isActive):
187
        """
188
        Parameters:
189
         - isActive
190
        """
191
        log_entry(self, "all items requested")
766 rajveer 192
        try:
193
            items = get_all_items(isActive)
194
            ret_items = []
195
            for item in items:
196
                if item:
197
                    ret_items.append(to_t_item(item))
198
            return ret_items
199
        finally:
200
            close_session()
201
 
122 ashish 202
    def getAllItemsByStatus(self, itemStatus):
203
        """
204
        Parameters:
205
         - itemStatus
206
        """
207
        log_entry(self, "all items requested")
766 rajveer 208
        try:
209
            items = get_all_items_by_status(itemStatus)
210
            ret_items = []
211
            for item in items:
212
                if item:
213
                    ret_items.append(to_t_item(item))
214
            return ret_items
215
        finally:
216
            close_session()
122 ashish 217
 
218
    def getItemInventory(self, item_id):
219
        """
220
        Parameters:
221
        - item_id
222
        """
223
        log_entry(self, "item inventory requested")
766 rajveer 224
        try:
225
            inventory = get_item_inventoy(item_id)
226
            return to_t_item_inventory(inventory, item_id)
227
        finally:
228
            close_session()
122 ashish 229
 
635 rajveer 230
    def getItemInventoryByItemId(self, item_id):
231
        """
232
        Parameters:
233
         - item_id
234
        """
235
        log_entry(self, "item inventory requested")
766 rajveer 236
        try:
237
            inventory = get_item_inventory_by_item_id(item_id)
238
            return to_t_item_inventory(inventory, item_id)
239
        finally:
240
            close_session()
635 rajveer 241
 
242
    '''
379 ashish 243
    def getItemInventoryByCatalogId(self, item_id):
244
        """
245
        Parameters:
246
         - item_id
247
        """
383 ashish 248
        log_entry(self, "item inventory requested")
249
        inventory = get_item_inventory_by_catalog_id(item_id)
250
        return to_t_item_inventory(inventory, item_id)
635 rajveer 251
    '''
252
 
379 ashish 253
 
643 chandransh 254
    def getItemAvailabilityAtLocation(self, warehouse_loc, item_id):
255
        """
256
        Returns the id of the warehouse with the largest inventory of the item and the inventory size. The size of list will always be 2.
257
 
258
        Parameters:
259
         - warehouse_loc
260
         - item_id
261
        """
766 rajveer 262
        try:
263
            return get_item_availability_for_location(warehouse_loc, item_id)
264
        finally:
265
            close_session()
266
 
122 ashish 267
    def getItemAvailibilityAtWarehouse(self, warehouse_id, item_id):
268
        """
269
        Parameters:
270
         - warehouse_id
271
         - item_id
272
        """
273
        log_entry(self, "item availability at warehouse requested")
766 rajveer 274
        try:
275
            return get_item_availability_for_warehouse(warehouse_id, item_id)
276
        finally:
277
            close_session()
278
 
723 chandransh 279
    def markItemAsContentComplete(self, entityId):
280
        """
281
        Parameters:
282
         - entityId
283
        """
766 rajveer 284
        try:
285
            return mark_item_as_content_complete(entityId)
286
        finally:
287
            close_session()
288
 
122 ashish 289
    def getItemInventoryHistory(self, id, item_id, warehouse_id, from_date, to_date):
290
        """
291
        Parameters:
292
         - id
293
         - item_id
294
         - warehouse_id
295
         - from_date
296
         - to_date
297
        """
298
        pass
299
 
300
    def getAllWarehouses(self, isActive):
301
        """
302
        Parameters:
303
        - isActive
304
        """
766 rajveer 305
        try:
306
            if isActive:
307
                warehouses = get_all_warehouses_by_status(status.ACTIVE)
308
 
309
            else:
310
                warehouses = get_all_warehouses_by_status(None)
311
 
312
            ret_warehouses = []
313
 
314
            for warehouse in warehouses:
315
                ret_warehouses.append(to_t_warehouse(warehouse))
316
            return ret_warehouses
317
        finally:
318
            close_session()
319
 
122 ashish 320
    def getWarehouse(self, warehouse_id):
321
        """
322
        Parameters:
323
         - warehouse_id
324
        """
325
        log_entry(self, "get warehouse call")
766 rajveer 326
        try:
327
            warehouse = get_Warehouse(warehouse_id)
328
            if warehouse:
329
                return to_t_warehouse(warehouse)
330
            else:
331
                raise InventoryServiceException(101, "no such warehouse")
332
        finally:
333
            close_session()
334
 
122 ashish 335
    def getAllWarehousesForItem(self, item_id):
336
        """
337
        Parameters:
338
         - item_id
339
        """
340
        log_entry(self, "getting all warehouses for item")
766 rajveer 341
        try:
342
            all_warehouses = get_all_warehouses_for_item(item_id)
343
            t_warehouses = []
344
            for warehouse in all_warehouses:
345
                t_warehouses.append(to_t_warehouse(warehouse))
346
            return t_warehouses
347
        finally:
348
            close_session()
349
 
122 ashish 350
    def getAllItemsForWarehouse(self, warehouse_id):
351
        """
352
        Parameters:
353
         - warehouse_id
354
        """
355
        log_entry(self, "getting all items for warehouse")
766 rajveer 356
        try:
357
            all_items = get_all_items_for_warehouse(warehouse_id)
358
            t_items = []
359
            for item in all_items:
360
                t_items.append(to_t_item(item))
361
            return t_items
362
        finally:
363
            close_session()
364
 
122 ashish 365
    def updateItem(self, item):
366
        """
367
        Parameters:
368
         - item
369
        """
370
        log_entry(self, "addItem called")
766 rajveer 371
        try:
372
            return update_item(item)
373
        finally:
374
            close_session()
375
 
626 chandransh 376
    def getBestSellers(self, start_index=0, total_items=None, category=-1):
766 rajveer 377
        try:
378
            if total_items is None:
379
                total_items = self.best_sellers_limit
380
            stop_index = start_index + total_items
381
            return get_best_sellers(start_index, stop_index, category)
382
        finally:
383
            close_session()
384
 
626 chandransh 385
    def getBestSellersCatalogIds(self, start_index, total_items, category=-1):
548 rajveer 386
        """
387
        Parameters:
388
         - beginIndex
389
         - totalItems
390
        """
766 rajveer 391
        try:
392
            if total_items is None:
393
                total_items = self.best_sellers_limit
394
            stop_index = start_index + total_items
395
            return get_best_sellers_catalog_ids(start_index, stop_index,category)
396
        finally:
397
            close_session()
398
 
591 chandransh 399
    def getBestSellersCount(self, ):
766 rajveer 400
        try:
401
            return get_best_sellers_count(None)
402
        finally:
403
            close_session()
404
 
591 chandransh 405
    def getBestDeals(self,):
766 rajveer 406
        try:
407
            return get_best_deals()
408
        finally:
409
            close_session()
410
 
626 chandransh 411
    def getBestDealsCatalogIds(self, start_index, total_items, category=-1):
548 rajveer 412
        """
413
        Parameters:
414
         - beginIndex
415
         - totalItems
416
        """
766 rajveer 417
        try:
418
            stop_index = start_index + total_items
419
            return get_best_deals_catalog_ids(start_index, stop_index, category)
420
        finally:
421
            close_session()
422
 
591 chandransh 423
    def getBestDealsCount(self, ):
766 rajveer 424
        try:
425
            return get_best_deals_count()
426
        finally:
427
            close_session()
428
 
591 chandransh 429
    def getLatestArrivals(self,):
766 rajveer 430
        try:
431
            return get_latest_arrivals(self.latest_arrivals_limit)
432
        finally:
433
            close_session()
434
 
626 chandransh 435
    def getLatestArrivalsCatalogIds(self, start_index, total_items, category=-1):
548 rajveer 436
        """
437
        Parameters:
438
         - beginIndex
439
         - totalItems
440
        """
766 rajveer 441
        try:
442
            if start_index > self.latest_arrivals_limit:
443
                return []
444
            stop_index = start_index + total_items
445
            if stop_index > self.latest_arrivals_limit:
446
                stop_index = self.latest_arrivals_limit
787 vikas 447
            return get_latest_arrivals_catalog_ids(start_index, stop_index, category)
766 rajveer 448
        finally:
449
            close_session()
450
 
591 chandransh 451
    def getLatestArrivalsCount(self, ):
766 rajveer 452
        try:
453
            return get_latest_arrivals_count(self.latest_arrivals_limit)
454
        finally:
455
            close_session()
591 chandransh 456
 
635 rajveer 457
    def putCategoryObject(self, object):
458
        """
459
        Parameters:
460
         - object
461
        """
766 rajveer 462
        try:
463
            return put_category_object(object)
464
        finally:
465
            close_session()
466
 
635 rajveer 467
    def getCategoryObject(self, ):
766 rajveer 468
        try:
469
            return get_category_object()
470
        finally:
471
            close_session()
472
 
473
    def closeSession(self, ):
474
        close_session()