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
            else:
309
                warehouses = get_all_warehouses_by_status(None)
310
 
311
            ret_warehouses = []
312
 
313
            for warehouse in warehouses:
314
                ret_warehouses.append(to_t_warehouse(warehouse))
315
            return ret_warehouses
316
        finally:
317
            close_session()
318
 
122 ashish 319
    def getWarehouse(self, warehouse_id):
320
        """
321
        Parameters:
322
         - warehouse_id
323
        """
324
        log_entry(self, "get warehouse call")
766 rajveer 325
        try:
326
            warehouse = get_Warehouse(warehouse_id)
327
            if warehouse:
328
                return to_t_warehouse(warehouse)
329
            else:
330
                raise InventoryServiceException(101, "no such warehouse")
331
        finally:
332
            close_session()
333
 
122 ashish 334
    def getAllWarehousesForItem(self, item_id):
335
        """
336
        Parameters:
337
         - item_id
338
        """
339
        log_entry(self, "getting all warehouses for item")
766 rajveer 340
        try:
341
            all_warehouses = get_all_warehouses_for_item(item_id)
342
            t_warehouses = []
343
            for warehouse in all_warehouses:
344
                t_warehouses.append(to_t_warehouse(warehouse))
345
            return t_warehouses
346
        finally:
347
            close_session()
348
 
122 ashish 349
    def getAllItemsForWarehouse(self, warehouse_id):
350
        """
351
        Parameters:
352
         - warehouse_id
353
        """
354
        log_entry(self, "getting all items for warehouse")
766 rajveer 355
        try:
356
            all_items = get_all_items_for_warehouse(warehouse_id)
357
            t_items = []
358
            for item in all_items:
359
                t_items.append(to_t_item(item))
360
            return t_items
361
        finally:
362
            close_session()
363
 
122 ashish 364
    def updateItem(self, item):
365
        """
366
        Parameters:
367
         - item
368
        """
369
        log_entry(self, "addItem called")
766 rajveer 370
        try:
371
            return update_item(item)
372
        finally:
373
            close_session()
374
 
626 chandransh 375
    def getBestSellers(self, start_index=0, total_items=None, category=-1):
766 rajveer 376
        try:
377
            if total_items is None:
378
                total_items = self.best_sellers_limit
379
            stop_index = start_index + total_items
380
            return get_best_sellers(start_index, stop_index, category)
381
        finally:
382
            close_session()
383
 
626 chandransh 384
    def getBestSellersCatalogIds(self, start_index, total_items, category=-1):
548 rajveer 385
        """
386
        Parameters:
387
         - beginIndex
388
         - totalItems
389
        """
766 rajveer 390
        try:
391
            if total_items is None:
392
                total_items = self.best_sellers_limit
393
            stop_index = start_index + total_items
394
            return get_best_sellers_catalog_ids(start_index, stop_index,category)
395
        finally:
396
            close_session()
397
 
591 chandransh 398
    def getBestSellersCount(self, ):
766 rajveer 399
        try:
400
            return get_best_sellers_count(None)
401
        finally:
402
            close_session()
403
 
591 chandransh 404
    def getBestDeals(self,):
766 rajveer 405
        try:
406
            return get_best_deals()
407
        finally:
408
            close_session()
409
 
626 chandransh 410
    def getBestDealsCatalogIds(self, start_index, total_items, category=-1):
548 rajveer 411
        """
412
        Parameters:
413
         - beginIndex
414
         - totalItems
415
        """
766 rajveer 416
        try:
417
            stop_index = start_index + total_items
418
            return get_best_deals_catalog_ids(start_index, stop_index, category)
419
        finally:
420
            close_session()
421
 
591 chandransh 422
    def getBestDealsCount(self, ):
766 rajveer 423
        try:
424
            return get_best_deals_count()
425
        finally:
426
            close_session()
427
 
591 chandransh 428
    def getLatestArrivals(self,):
766 rajveer 429
        try:
430
            return get_latest_arrivals(self.latest_arrivals_limit)
431
        finally:
432
            close_session()
433
 
626 chandransh 434
    def getLatestArrivalsCatalogIds(self, start_index, total_items, category=-1):
548 rajveer 435
        """
436
        Parameters:
437
         - beginIndex
438
         - totalItems
439
        """
766 rajveer 440
        try:
441
            if start_index > self.latest_arrivals_limit:
442
                return []
443
            stop_index = start_index + total_items
444
            if stop_index > self.latest_arrivals_limit:
445
                stop_index = self.latest_arrivals_limit
787 vikas 446
            return get_latest_arrivals_catalog_ids(start_index, stop_index, category)
766 rajveer 447
        finally:
448
            close_session()
449
 
591 chandransh 450
    def getLatestArrivalsCount(self, ):
766 rajveer 451
        try:
452
            return get_latest_arrivals_count(self.latest_arrivals_limit)
453
        finally:
454
            close_session()
591 chandransh 455
 
635 rajveer 456
    def putCategoryObject(self, object):
457
        """
458
        Parameters:
459
         - object
460
        """
766 rajveer 461
        try:
462
            return put_category_object(object)
463
        finally:
464
            close_session()
465
 
635 rajveer 466
    def getCategoryObject(self, ):
766 rajveer 467
        try:
468
            return get_category_object()
469
        finally:
470
            close_session()
471
 
472
    def closeSession(self, ):
473
        close_session()