Subversion Repositories SmartDukaan

Rev

Rev 7281 | Rev 7306 | Go to most recent revision | Details | Compare with Previous | 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
'''
5110 mandeep.dh 6
from shop2020.config.client.ConfigClient import ConfigClient
6511 kshitij.so 7
from shop2020.model.v1.catalog.impl.Convertors import to_t_item, to_t_category, \
8
    to_t_source_item_pricing, to_t_product_notification_request, \
6848 kshitij.so 9
    to_t_product_notification_request_count, to_t_voucher_item_mapping, to_t_insurer, \
6850 kshitij.so 10
    to_t_banner,to_t_banner_map, \
7281 kshitij.so 11
    to_t_product_notification_request_count, to_t_voucher_item_mapping, to_t_insurer,to_t_Amazonlisted
6511 kshitij.so 12
from shop2020.model.v1.catalog.impl.DataAcessors import add_item, retire_item, \
13
    change_item_status, get_item, get_all_items, get_all_items_by_status, \
5944 mandeep.dh 14
    update_item, start_item_on, close_session, retire_item_on, \
5110 mandeep.dh 15
    get_items_by_catalog_id, get_best_deals, get_best_deals_catalog_ids, \
16
    get_best_deals_count, get_best_sellers, get_latest_arrivals, \
17
    get_latest_arrivals_catalog_ids, get_latest_arrivals_count, is_active, \
18
    get_best_sellers_catalog_ids, get_best_sellers_count, put_category_object, \
5944 mandeep.dh 19
    get_category_object, mark_item_as_content_complete, generate_new_entity_id, \
20
    get_category, get_all_categories, add_category, get_item_status_description, \
6511 kshitij.so 21
    check_similar_item, change_risky_flag, get_items_for_mastersheet, \
22
    get_risky_items, get_similar_items_catalog_ids, add_product_notification, \
23
    send_product_notifications, get_all_brands_by_category, is_alive, \
24
    get_item_pricing_by_source, add_source_item_pricing, get_all_sources, \
25
    get_item_for_source, get_all_source_pricing, get_item_count_by_status, \
26
    search_items, get_search_result_count, get_product_notifications, \
27
    get_product_notification_request_count, get_all_similar_items_catalog_ids, \
28
    add_similar_item_catalog_id, delete_similar_item_catalog_id, \
29
    add_authorization_log_for_item, get_thrift_item_list, get_all_brands, \
30
    get_coming_soon, get_coming_soon_catalog_ids, get_coming_soon_count, initialize, \
7256 rajveer 31
    add_update_voucher_for_item, \
6511 kshitij.so 32
    delete_voucher_for_item, get_voucher_amount, get_all_vouchers_for_item, \
33
    is_valid_catalog_id, check_risky_item, get_vat_percentage_for_item, \
6532 amit.gupta 34
    get_vat_amount_for_item, add_tag, get_all_tags, get_all_entities_by_tag_name, \
6848 kshitij.so 35
    delete_tag, delete_entity_tag, get_all_ignored_inventoryupdate_items_list,add_banner,get_all_banners, \
36
    delete_banner,get_banner_details,get_active_banners,add_banner_map,delete_banner_map,get_banner_map_details, \
6962 rajveer 37
    get_insurance_amount, get_insurer, get_all_alive_items,get_all_insurers, get_all_entity_tags,\
7291 vikram.rag 38
    update_insurance_declared_amount, get_freebie_for_item, add_or_update_freebie_for_item, get_all_amazon_listed_items, \
7281 kshitij.so 39
    get_store_pricing, update_store_pricing,\
7291 vikram.rag 40
    get_amazon_item_details,update_amazon_item_details,add_amazon_item,get_asin_items,get_all_fba_listed_items,get_all_nonfba_listed_items
5944 mandeep.dh 41
from shop2020.thriftpy.model.v1.catalog.ttypes import status
42
from shop2020.utils.Utils import log_entry, to_py_date
5110 mandeep.dh 43
import datetime
122 ashish 44
 
5944 mandeep.dh 45
class CatalogServiceHandler:
122 ashish 46
    '''
47
    classdocs
48
    '''
599 chandransh 49
 
3187 rajveer 50
    def __init__(self, dbname='catalog', db_hostname='localhost'):
122 ashish 51
        '''
52
        Constructor
53
        '''
5295 rajveer 54
        initialize(dbname, db_hostname)
599 chandransh 55
        try:
621 chandransh 56
            config_client = ConfigClient()
57
            self.latest_arrivals_limit = int(config_client.get_property("LATEST_ARRIVALS_LIMIT"));
58
            self.best_sellers_limit = int(config_client.get_property("BEST_SELLERS_LIMIT"))
599 chandransh 59
        except:
621 chandransh 60
            self.latest_arrivals_limit = 50
61
            self.best_sellers_limit = 50
122 ashish 62
 
63
    #DONE
64
    def addItem(self, item):
65
        """
66
        Availability and inventory attributes
67
 
68
        Parameters:
69
         - item
70
        """
71
        log_entry(self, "addItem called")
785 rajveer 72
        try:
73
            return add_item(item)
74
        finally:
75
            close_session()
6511 kshitij.so 76
 
77
 
78
    def addTag(self, displayName, catalogId):
79
        result = False
80
        try:
81
            return add_tag(displayName, catalogId)
82
        except:
83
            result = True
84
        finally:
85
            close_session()
86
            return result
6848 kshitij.so 87
 
88
    def addBanner(self, bannerName, imageName,link, priority, isActive, hasMap):
89
        result = False
90
        try:
91
            return add_banner(bannerName, imageName, link, priority, isActive, hasMap)
92
        except:
93
            result = True
94
        finally:
95
            close_session()
96
            return result
97
 
98
    def getAllBanners(self):
99
        result = []
100
        try:
101
            result = get_all_banners()
102
        except:
103
            result = False
104
        finally:
105
            close_session()
106
            return result
107
 
108
    def deleteBanner(self,name):
109
        result = True
110
        try:
111
            return delete_banner(name)
112
        except:
113
            result = False
114
        finally:
115
            close_session()
116
            return result
117
 
118
    def getBannerDetails(self, name):
119
        print "I am called"
120
        result = None
121
        try:
122
            result = get_banner_details(name)
123
            print 'result is',
124
            print result
125
            if result is not None:
126
                result = to_t_banner(result)
127
        except:
128
            print "Some error"
129
            return None
130
        finally:
131
            print "Finally here"
132
            print result
133
            close_session()
134
            return result
135
 
136
    def getActiveBanners(self):
137
        result =None
138
        banners=[]
139
        try:
140
            print "Handler"
141
            results = get_active_banners()
142
            for result in results:
143
                if result is not None:
144
                    result = to_t_banner(result)
145
                    print "After conversion",
146
                    banners.append(result)
147
 
148
        except:
149
            return None
150
        finally:
151
            print "Banners list",
152
            print banners
153
            close_session()
154
            return banners
155
 
156
    def addBannerMap(self, bannerName, mapLink, coordinates):
157
        result = True
158
        try:
159
            return add_banner_map(bannerName, mapLink, coordinates)
160
        except:
161
            result = False
162
        finally:
163
            close_session()
164
            return result
165
 
166
    def deleteBannerMap(self, name):
167
        result = True
168
        try:
169
            return delete_banner_map(name)
170
        except:
171
            result = False
172
        finally:
173
            close_session()
174
            return result
175
 
176
    def getBannerMapDetails(self,name):
177
        result =None
178
        banners=[]
179
        try:
180
            results = get_banner_map_details(name)
181
            for result in results:
182
                if result is not None:
183
                    result = to_t_banner_map(result)
184
                    banners.append(result)
185
        except:
186
            return None
187
        finally:
188
            close_session()
189
            return banners
190
 
191
 
6511 kshitij.so 192
 
193
    def getAllTags(self):
194
        result = []
195
        try:
196
            result = get_all_tags()
197
        except:
198
            result = True
199
        finally:
200
            close_session()
201
            return result
202
 
203
    def getAllEntitiesByTagName(self,displayName):
204
        result = []
205
        try:
206
            result = get_all_entities_by_tag_name(displayName)
207
        except:
208
            result = True
209
        finally:
210
            close_session()
211
            return result
212
 
213
    def deleteTag(self,displayName):
214
        result = False
215
        try:
216
            return delete_tag(displayName)
217
        except:
218
            result = True
219
        finally:
220
            close_session()
221
            return result
222
 
6518 kshitij.so 223
    def deleteEntityTag(self,displayName,catalogId):
224
        result = False
225
        try:
226
            return delete_entity_tag(displayName,catalogId)
227
        except:
228
            result = True
229
        finally:
230
            close_session()
231
            return result
232
 
635 rajveer 233
    def isActive(self, item_id):
563 chandransh 234
        """
235
        Parameters:
635 rajveer 236
         - item_id
563 chandransh 237
        """
785 rajveer 238
        try:
239
            return is_active(item_id)
240
        finally:
241
            close_session()
122 ashish 242
 
2035 rajveer 243
    def getItemStatusDescription(self, itemId):
244
        """
245
        Parameters:
246
         - itemId
247
        """
248
        try:
249
            return get_item_status_description(itemId)
250
        finally:
251
            close_session()
122 ashish 252
 
253
    def retireItem(self, item_id):
254
        """
255
        Parameters:
256
        - item_id
257
        """
258
        log_entry(self, "retire item called")
785 rajveer 259
        try:
260
            return retire_item(item_id)
261
        finally:
262
            close_session()
122 ashish 263
 
264
    def startItemOn(self, item_id, timestamp):
265
        """
266
        Parameters:
267
         - item_id
268
         - timestamp
269
        """
785 rajveer 270
        try:
271
            start_item_on(item_id, timestamp)
272
        finally:
273
            close_session()
122 ashish 274
 
275
    def retireItemOn(self, item_id, timestamp):
276
        """
277
        Parameters:
278
         - item_id
279
         - timestamp
280
        """
785 rajveer 281
        try:
282
            retire_item_on(item_id, timestamp)
283
        finally:
284
            close_session()
122 ashish 285
 
286
    def changeItemStatus(self, item_id, timestamp, newstatus):
287
        """
288
        Parameters:
289
         - item_id
290
         - timestamp
291
         - newstatus
292
        """
293
        log_entry(self, "change item status called")
785 rajveer 294
        try:
295
            return change_item_status(item_id, newstatus)
296
        finally:
297
            close_session()
122 ashish 298
 
785 rajveer 299
 
122 ashish 300
    def getItem(self, item_id):
301
        """
302
        Parameters:
303
         - item_id
304
        """
305
        log_entry(self, "item requested")
785 rajveer 306
        try:
2065 ankur.sing 307
            item = to_t_item( get_item(item_id))
308
            return item
785 rajveer 309
        finally:
310
            close_session()
379 ashish 311
 
635 rajveer 312
    def getItemsByCatalogId(self, catalog_item_id):
379 ashish 313
        """
314
        Parameters:
315
        - catalog_item_id
316
        """
386 ashish 317
        log_entry(self, "item requested")
766 rajveer 318
        try:
4934 amit.gupta 319
            return get_thrift_item_list(get_items_by_catalog_id(catalog_item_id))
766 rajveer 320
        finally:
321
            close_session()
122 ashish 322
 
4934 amit.gupta 323
    def getValidItemsByCatalogId(self, catalog_item_id):
324
        """
325
        Parameters:
326
         - catalog_item_id
327
        """
328
        log_entry(self, "items requested for CatalogItem")
329
        try:
330
            return get_thrift_item_list(filter(is_valid, get_items_by_catalog_id(catalog_item_id)))
331
        finally:
332
            close_session()
333
 
5586 phani.kuma 334
    def isValidCatalogItemId(self, catalog_item_id):
335
        """
336
        Parameters:
337
         - catalog_item_id
338
        """
339
        try:
340
            return is_valid_catalog_id(catalog_item_id)
341
        finally:
342
            close_session()
343
 
122 ashish 344
    def getAllItems(self, isActive):
345
        """
346
        Parameters:
347
         - isActive
348
        """
349
        log_entry(self, "all items requested")
766 rajveer 350
        try:
351
            items = get_all_items(isActive)
352
            ret_items = []
353
            for item in items:
354
                if item:
355
                    ret_items.append(to_t_item(item))
356
            return ret_items
357
        finally:
358
            close_session()
359
 
122 ashish 360
    def getAllItemsByStatus(self, itemStatus):
361
        """
362
        Parameters:
363
         - itemStatus
364
        """
365
        log_entry(self, "all items requested")
766 rajveer 366
        try:
367
            items = get_all_items_by_status(itemStatus)
368
            ret_items = []
369
            for item in items:
370
                if item:
371
                    ret_items.append(to_t_item(item))
372
            return ret_items
373
        finally:
374
            close_session()
6821 amar.kumar 375
 
376
    def getAllAliveItems(self):
377
        """
378
        Parameters:
379
         - itemStatus
380
        """
381
        log_entry(self, "all non phased non deleted items requested")
382
        try:
383
            items = get_all_alive_items()
384
            ret_items = []
385
            for item in items:
386
                if item:
387
                    ret_items.append(to_t_item(item))
388
            return ret_items
389
        finally:
390
            close_session()
391
 
122 ashish 392
 
3348 varun.gupt 393
    def getAllBrandsByCategory(self, categoryId):
394
        """
395
        Parameters:
396
         - categoryId
397
        """
398
        try:
399
            return get_all_brands_by_category(categoryId)
400
        finally:
401
            close_session()
402
 
4957 phani.kuma 403
    def getAllBrands(self):
404
        try:
405
            return get_all_brands()
406
        finally:
407
            close_session()
5944 mandeep.dh 408
 
3849 chandransh 409
    def getAllItemsInRange(self, offset, limit):
410
        """
411
        Gets at most 'limit' items starting at the given offset. Returns an empty list if there are no more items at the given offset.
412
 
413
        Parameters:
414
         - offset
415
         - limit
416
        """
417
        try:
418
            items = get_all_items(False, offset, limit)
419
            return [to_t_item(item) for item in items]
420
        finally:
421
            close_session()
379 ashish 422
 
3849 chandransh 423
    def getAllItemsByStatusInRange(self, itemStatus, offset, limit):
424
        """
425
        Gets at most 'limit' items starting at the given offset in the given status. Returns an empty list if there are no more items at the given offset.
426
 
427
        Parameters:
428
         - itemStatus
429
         - offset
430
         - limit
431
        """
432
        log_entry(self, "all items requested")
433
        try:
434
            items = get_all_items_by_status(itemStatus, offset, limit)
435
            return [to_t_item(item) for item in items]
436
        finally:
437
            close_session()
438
 
439
    def getItemCountByStatus(self, useStatus, itemStatus):
440
        """
441
        Gets a count of all items by status
442
 
443
        Parameters:
444
         - useStatus
445
         - itemStatus
446
        """
447
        try:
448
            return get_item_count_by_status(useStatus, itemStatus)
449
        finally:
450
            close_session()
451
 
2080 rajveer 452
    def markItemAsContentComplete(self, entityId, category, brand, modelName, modelNumber):
453
        """
454
        Parameters:
455
         - entityId
456
         - category
457
         - brand
458
         - modelName
459
         - modelNumber
460
        """
461
        try:
462
            return mark_item_as_content_complete(entityId, category, brand, modelName, modelNumber)
463
        finally:
464
            close_session()
766 rajveer 465
 
122 ashish 466
    def updateItem(self, item):
467
        """
468
        Parameters:
469
         - item
470
        """
471
        log_entry(self, "addItem called")
766 rajveer 472
        try:
473
            return update_item(item)
474
        finally:
475
            close_session()
476
 
626 chandransh 477
    def getBestSellers(self, start_index=0, total_items=None, category=-1):
766 rajveer 478
        try:
479
            if total_items is None:
480
                total_items = self.best_sellers_limit
481
            stop_index = start_index + total_items
482
            return get_best_sellers(start_index, stop_index, category)
483
        finally:
484
            close_session()
485
 
1926 rajveer 486
    def getBestSellersCatalogIds(self, start_index, total_items, brand, category=-1):
548 rajveer 487
        """
488
        Parameters:
489
         - beginIndex
490
         - totalItems
491
        """
766 rajveer 492
        try:
493
            if total_items is None:
494
                total_items = self.best_sellers_limit
495
            stop_index = start_index + total_items
1926 rajveer 496
            return get_best_sellers_catalog_ids(start_index, stop_index, brand, category)
766 rajveer 497
        finally:
498
            close_session()
499
 
591 chandransh 500
    def getBestSellersCount(self, ):
766 rajveer 501
        try:
2093 chandransh 502
            return get_best_sellers_count()
766 rajveer 503
        finally:
504
            close_session()
505
 
591 chandransh 506
    def getBestDeals(self,):
766 rajveer 507
        try:
508
            return get_best_deals()
509
        finally:
510
            close_session()
511
 
1926 rajveer 512
    def getBestDealsCatalogIds(self, start_index, total_items, brand,category=-1):
548 rajveer 513
        """
514
        Parameters:
515
         - beginIndex
516
         - totalItems
517
        """
766 rajveer 518
        try:
519
            stop_index = start_index + total_items
1926 rajveer 520
            return get_best_deals_catalog_ids(start_index, stop_index, brand, category)
766 rajveer 521
        finally:
522
            close_session()
523
 
591 chandransh 524
    def getBestDealsCount(self, ):
766 rajveer 525
        try:
526
            return get_best_deals_count()
527
        finally:
528
            close_session()
529
 
5217 amit.gupta 530
    def getComingSoon(self,):
531
        try:
532
            return get_coming_soon()
533
        finally:
534
            close_session()
535
 
536
    def getComingSoonCatalogIds(self, start_index, total_items, brand,category=-1):
537
        """
538
        Parameters:
539
         - beginIndex
540
         - totalItems
541
        """
542
        try:
543
            stop_index = start_index + total_items
544
            return get_coming_soon_catalog_ids(start_index, stop_index, brand, category)
545
        finally:
546
            close_session()
547
 
548
    def getComingSoonCount(self, ):
549
        try:
550
            return get_coming_soon_count()
551
        finally:
552
            close_session()
553
 
591 chandransh 554
    def getLatestArrivals(self,):
766 rajveer 555
        try:
556
            return get_latest_arrivals(self.latest_arrivals_limit)
557
        finally:
558
            close_session()
2975 chandransh 559
 
560
    def getLatestArrivalsCatalogIds(self, beginIndex, totalItems, brand, categories):
548 rajveer 561
        """
2975 chandransh 562
        Returns the list of catalog ids of latest arrivals in the given categories of the given brand.
563
        To ignore the categories, pass the list as empty. To ignore brand, pass it as null.
564
 
548 rajveer 565
        Parameters:
566
         - beginIndex
567
         - totalItems
2975 chandransh 568
         - brand
569
         - categories
548 rajveer 570
        """
766 rajveer 571
        try:
2975 chandransh 572
            if beginIndex > self.latest_arrivals_limit:
766 rajveer 573
                return []
2975 chandransh 574
            stopIndex = beginIndex + totalItems
575
            if stopIndex > self.latest_arrivals_limit:
576
                stopIndex = self.latest_arrivals_limit
577
            return get_latest_arrivals_catalog_ids(beginIndex, stopIndex, brand, categories)
766 rajveer 578
        finally:
579
            close_session()
580
 
591 chandransh 581
    def getLatestArrivalsCount(self, ):
766 rajveer 582
        try:
583
            return get_latest_arrivals_count(self.latest_arrivals_limit)
584
        finally:
585
            close_session()
591 chandransh 586
 
1155 rajveer 587
    def generateNewEntityID(self, ):
588
        try:
589
            return generate_new_entity_id()
590
        finally:
591
            close_session()
592
 
635 rajveer 593
    def putCategoryObject(self, object):
594
        """
595
        Parameters:
596
         - object
597
        """
766 rajveer 598
        try:
599
            return put_category_object(object)
600
        finally:
601
            close_session()
602
 
635 rajveer 603
    def getCategoryObject(self, ):
766 rajveer 604
        try:
605
            return get_category_object()
606
        finally:
607
            close_session()
1970 rajveer 608
 
609
    def addCategory(self, category):
610
        """
611
        Parameters:
612
         - category
613
        """
614
        try:
615
            return add_category(category)
616
        finally:
617
            close_session()
618
 
619
    def getCategory(self, id):
620
        """
621
        Parameters:
622
         - id
623
        """
624
        try:
625
            return to_t_category(get_category(id))
626
        finally:
627
            close_session()
628
 
629
    def getAllCategories(self, ):
630
        try:
631
            categories = get_all_categories()
632
            return [to_t_category(category) for category in categories]
633
        finally:
634
            close_session()
4432 rajveer 635
 
4423 phani.kuma 636
    def getAllSimilarItems(self, itemId):
637
        """
638
        Returns list of similar items.
639
 
640
        Parameters:
641
         - itemId
642
        """
4432 rajveer 643
        try:
644
            return get_all_similar_items_catalog_ids(itemId)
645
        finally:
646
            close_session()
647
 
4423 phani.kuma 648
    def addSimilarItem(self, itemId, catalogItemId):
649
        """
650
        add similar item.
651
 
652
        Parameters:
653
         - itemId, catalogItemId
654
        """
655
        try:
656
            return add_similar_item_catalog_id(itemId, catalogItemId)
657
        finally:
658
            close_session()
659
 
660
    def deleteSimilarItem(self, itemId, catalogItemId):
661
        """
662
        delete similar items.
663
 
664
        Parameters:
665
         - itemId, catalogItemIds
666
        """
667
        try:
668
            return delete_similar_item_catalog_id(itemId, catalogItemId)
669
        finally:
670
            close_session()
4762 phani.kuma 671
 
5504 phani.kuma 672
    def getAllItemVouchers(self, itemId):
673
        """
674
        Returns list of vouchers.
675
 
676
        Parameters:
677
         - itemId
678
        """
679
        try:
680
            vouchers = get_all_vouchers_for_item(itemId)
681
            return [to_t_voucher_item_mapping(voucher) for voucher in vouchers]
682
        finally:
683
            close_session()
684
 
685
    def getVoucherAmount(self, itemId, voucherType):
686
        """
687
        Returns voucher amount.
688
 
689
        Parameters:
690
         - itemId, voucherType
691
        """
692
        try:
693
            return get_voucher_amount(itemId, voucherType)
694
        finally:
695
            close_session()
696
 
697
    def addupdateVoucherForItem(self, catalogItemId, voucherType, voucherAmount):
698
        """
699
        add or update voucher for item.
700
 
701
        Parameters:
702
         - catalogItemId, voucherType, voucherAmount
703
        """
704
        try:
705
            return add_update_voucher_for_item(catalogItemId, voucherType, voucherAmount)
706
        finally:
707
            close_session()
708
 
709
    def deleteVoucherForItem(self, catalogItemId, voucherType):
710
        """
711
        delete voucher for item.
712
 
713
        Parameters:
714
         - catalogItemId, voucherType
715
        """
716
        try:
717
            return delete_voucher_for_item(catalogItemId, voucherType)
718
        finally:
719
            close_session()
2116 ankur.sing 720
 
4725 phani.kuma 721
    def checkSimilarItem(self, brand, modelNumber, modelName, color):
2116 ankur.sing 722
        """
4725 phani.kuma 723
        Checks if similar item exists (with same Brand, ModelNumber, ModelName, Color)
2116 ankur.sing 724
        If yes, returns the itemId else returns 0
725
 
726
        Parameters:
727
         - brand
728
         - modelNumber
4725 phani.kuma 729
         - modelName
2116 ankur.sing 730
         - color
731
        """
732
        try:
4725 phani.kuma 733
            return check_similar_item(brand, modelNumber, modelName, color)
2116 ankur.sing 734
        finally:
735
            close_session()
736
 
2286 ankur.sing 737
    def changeItemRiskyFlag(self, itemId, risky):
738
        """
739
        Marks/Unmarks an item as risky. This flag is used for automatic marking of an item as INACTIVE in case of zero inventory.
740
 
741
        Parameters:
742
         - itemId
743
         - risky
744
        """
745
        try:
746
            change_risky_flag(itemId, risky)
747
        finally:
748
            close_session()
2116 ankur.sing 749
 
4957 phani.kuma 750
    def getItemsForMasterSheet(self, category, brand):
2358 ankur.sing 751
        """
4957 phani.kuma 752
        Returns list of items with any status except PHASED_OUT and filtered by category, brand.
2358 ankur.sing 753
 
754
        Parameters:
4762 phani.kuma 755
         - category
4957 phani.kuma 756
         - vendor
757
         - brand
2358 ankur.sing 758
        """
759
        try:
4957 phani.kuma 760
            return [to_t_item(item) for item in get_items_for_mastersheet(category, brand)]
2358 ankur.sing 761
        finally:
762
            close_session()
763
 
764
    def getItemsByRiskyFlag(self, ):
765
        """
766
        Returns list of items marked as risky.
767
        """
768
        try:
769
            return [to_t_item(item) for item in get_risky_items()]
770
        finally:
771
            close_session()
2809 rajveer 772
 
773
    def getSimilarItemsCatalogIds(self, beginIndex, totalItems, itemId):
774
        """
775
        Returns list of catalog ids of items with same similarity index as of the given itemId
776
 
777
        Parameters:
778
         - beginIndex
779
         - totalItems
780
         - itemId
781
        """
782
        try:
783
            return get_similar_items_catalog_ids(beginIndex, beginIndex+totalItems, itemId)
784
        finally:
785
            close_session()
3079 rajveer 786
 
787
    def addProductNotification(self, itemId, email):
788
        """
789
        Add user requests for out of stock items. Once user will ask for notify me an entry will
790
 
791
        Parameters:
792
        - itemId
793
        - email
794
        """
795
        try:
796
            return add_product_notification(itemId, email)
797
        finally:
798
            close_session()
2358 ankur.sing 799
 
3086 rajveer 800
    def sendProductNotifications(self, ):
801
        """
802
        Send the product notifications to the users for items which has stock.
803
        """
804
        try:
805
            return send_product_notifications()
806
        finally:
807
            close_session()
3557 rajveer 808
 
809
 
810
    def getAllSources(self, ):
811
        """
812
        Return list of all sources
813
        """
814
        try:
815
            return get_all_sources()
816
        finally:
817
            close_session()
818
 
819
    def getItemPricingBySource(self, itemId, sourceId):
820
        """
821
        Returns the pricing information of an item. If no information is found, exception will be thrown.
3376 rajveer 822
 
3557 rajveer 823
        Parameters:
824
         - itemId
825
         - sourceId
826
        """
827
        try:
828
            return to_t_source_item_pricing(get_item_pricing_by_source(itemId, sourceId))
829
        finally:
830
            close_session()
831
 
832
    def addSourceItemPricing(self, sourceItemPricing):
833
        """
834
        Adds prices to be displayed corresponding to the item if user comes from a source.
835
 
836
        Parameters:
837
         - sourceItemPricing
838
        """
839
        try:
840
            add_source_item_pricing(sourceItemPricing)
841
        finally:
842
            close_session()
843
 
844
    def getAllSourcePricing(self, itemId):
845
        """
846
        Returns the list of source pricing information of an item.
847
        Raises an exception if item not found corresponding to itemId
848
 
849
        Parameters:
850
         - itemId
851
        """
852
        try:
853
            return [to_t_source_item_pricing(source_item_pricing) for source_item_pricing in get_all_source_pricing(itemId)]
854
#        return [to_t_item(item) for item in get_risky_items()]
855
        finally:
856
            close_session()
857
 
858
    def getItemForSource(self, item_id, sourceId):
859
        """
860
        Parameters:
861
         - item_id
862
         - sourceId
863
        """
864
        try:
865
            return to_t_item(get_item_for_source(item_id, sourceId))
866
        finally:
867
            close_session()
3872 chandransh 868
 
869
    def searchItemsInRange(self, searchTerms, offset, limit):
870
        """
871
        Searches items matching the the given terms in the catalog
3557 rajveer 872
 
3872 chandransh 873
        Parameters:
874
         - searchTerms
875
        """
876
        try:
877
            return [to_t_item(item) for item in search_items(searchTerms, offset, limit)]
878
        finally:
879
            close_session()
880
 
881
    def getSearchResultCount(self, searchTerms):
882
        """
883
        Gets the count of search results for the given search terms so that the user can go through all the pages.
884
 
885
        Parameters:
886
         - searchTerms
887
        """
888
        try:
889
            return get_search_result_count(searchTerms)
890
        finally:
891
            close_session()
892
 
4295 varun.gupt 893
    def getProductNotifications(self, startDateTime):
894
        '''
895
        Returns a list of Product Notification objects each representing user requests for notification
896
        '''
897
        try:
898
            return [to_t_product_notification_request(notification) for notification in get_product_notifications(to_py_date(startDateTime))]
899
        finally:
900
            close_session()
901
 
902
    def getProductNotificationRequestCount(self, startDateTime):
903
        '''
904
        Returns list of items and the counts of product notification requests
905
        '''
906
        try:
907
            notification_request_counts = [(notification.item, count) for notification, count in get_product_notification_request_count(to_py_date(startDateTime))]
908
 
909
            return [to_t_product_notification_request_count(count) for count in notification_request_counts]
910
 
911
        finally:
912
            close_session()
913
 
3376 rajveer 914
    def isAlive(self, ):
915
        """
916
        For checking weather service is active alive or not. It also checks connectivity with database
917
        """
918
        try:
919
            return is_alive()
920
        finally:
921
            close_session()
922
 
766 rajveer 923
    def closeSession(self, ):
3376 rajveer 924
        """
925
        For closing the open session in sqlalchemy
926
        """
4332 anupam.sin 927
        close_session()
928
 
4649 phani.kuma 929
    def addAuthorizationLog(self, itemId, username, reason):
930
        """
931
        add a log to authorize table.
932
 
933
        Parameters:
934
         - itemId, username, reason
935
        """
936
        try:
937
            return add_authorization_log_for_item(itemId, username, reason)
938
        finally:
4934 amit.gupta 939
            close_session()
5110 mandeep.dh 940
 
6039 amit.gupta 941
    def getVatPercentageForItem(self, itemId, price):
942
        """
943
        get Vat percentage for item for item
944
        """
945
        try:
946
            return get_vat_percentage_for_item(itemId, price)
947
        finally:
948
            close_session()
949
 
950
    def getVatAmountForItem(self, itemId, price):
951
        """
952
        get Vat amount for item
953
        """
954
        try:
955
            return get_vat_amount_for_item(itemId,price)
956
        finally:
957
            close_session()
958
 
5944 mandeep.dh 959
    def validateRiskyStatus(self, itemId):
5712 mandeep.dh 960
        """
5944 mandeep.dh 961
        Check wether item is risky and change status if inventory is not available for risky items
5712 mandeep.dh 962
        """
963
        try:
5944 mandeep.dh 964
            return check_risky_item(itemId)
5712 mandeep.dh 965
        finally:
966
            close_session()
6532 amit.gupta 967
 
968
    def getAllIgnoredInventoryUpdateItemsList(self,offset, limit):
969
        try:
970
            return get_all_ignored_inventoryupdate_items_list(offset,limit)
971
        finally:
6921 anupam.sin 972
            close_session()
6805 anupam.sin 973
 
6921 anupam.sin 974
    def getInsuranceAmount(self, itemId, price, insurerId, quantity):
6805 anupam.sin 975
        try:
6921 anupam.sin 976
            return get_insurance_amount(itemId, price, insurerId, quantity)
6805 anupam.sin 977
        finally:
6921 anupam.sin 978
            close_session()
6805 anupam.sin 979
 
980
    def getInsurer(self, insurerId):
981
        try:
982
            return to_t_insurer(get_insurer(insurerId))
983
        finally:
6838 vikram.rag 984
            close_session()
985
 
986
    def getAllInsurers(self):
987
        try:
988
            insurers = []
989
            all_insurers = get_all_insurers()
990
            for insurer in all_insurers:
991
                insurers.append(to_t_insurer(insurer))
6921 anupam.sin 992
            return insurers
6838 vikram.rag 993
        finally:
994
            close_session()
6962 rajveer 995
 
996
    def updateInsuranceDeclaredAmount(self, insurerId, amount):
997
        try:
998
            update_insurance_declared_amount(insurerId, amount)
999
        finally:
1000
            close_session()
5944 mandeep.dh 1001
 
6845 amit.gupta 1002
    def getAllEntityTags(self):
1003
        try:
1004
            return get_all_entity_tags()
1005
        finally:
1006
            close_session()
1007
 
7190 amar.kumar 1008
    def getFreebieForItem(self, itemId):
1009
        try:
1010
            return get_freebie_for_item(itemId)
1011
        finally:
1012
            close_session()
1013
 
1014
    def addOrUpdateFreebieForItem(self, freebieItem):
1015
        try:
1016
            return add_or_update_freebie_for_item(freebieItem)
1017
        finally:
1018
            close_session()
7291 vikram.rag 1019
 
7272 amit.gupta 1020
    def addOrUpdateBrandInfo(self, brandInfo):
1021
        try:
1022
            return add_or_update_brand_info(brandInfo)
1023
        finally:
1024
            close_session()
1025
 
1026
    def getBrandInfo(self):
1027
        try:
1028
            return get_brand_info()
1029
        finally:
1030
            close_session()
1031
 
7256 rajveer 1032
    def getStorePricing(self, itemId):
1033
        try:
1034
            return get_store_pricing(itemId)
1035
        finally:
1036
            close_session()
1037
 
7265 rajveer 1038
    def updateStorePricing(self, sp):
1039
        try:
1040
            return update_store_pricing(sp)
1041
        finally:
1042
            close_session()
7291 vikram.rag 1043
 
7190 amar.kumar 1044
 
7281 kshitij.so 1045
 
7291 vikram.rag 1046
 
1047
 
7281 kshitij.so 1048
    def getAmazonItemDetails(self, amazonItemId):
7291 vikram.rag 1049
        print "I am called"
7281 kshitij.so 1050
        result = None
1051
        try:
1052
            result = get_amazon_item_details(amazonItemId)
7291 vikram.rag 1053
            print 'result is',
1054
            print result
7281 kshitij.so 1055
            if result is not None:
1056
                result = to_t_Amazonlisted(result)
1057
        except:
7291 vikram.rag 1058
            print "Some error"
7281 kshitij.so 1059
            return None
1060
        finally:
7291 vikram.rag 1061
            print "Finally here"
1062
            print result
7281 kshitij.so 1063
            close_session()
1064
            return result
1065
 
1066
    def updateAmazonItemDetails(self,amazonItemId,fbaPrice,sellingPrice,isFba,isNonFba,isInventoryOverride):
1067
        try:
1068
            update_amazon_item_details(amazonItemId,fbaPrice,sellingPrice,isFba,isNonFba,isInventoryOverride)
1069
        finally:
1070
            close_session()
1071
 
1072
    def addAmazonItem(self,amazonlisted):
1073
        try:
1074
            print amazonlisted
1075
            add_amazon_item(amazonlisted)
1076
        finally:
1077
            close_session()
1078
 
7291 vikram.rag 1079
    def getAsinItems(self):
1080
        try:
1081
            items = get_asin_items()
1082
            ret_items = []
1083
            for item in items:
1084
                if item:
1085
                    ret_items.append(to_t_item(item))
1086
            return ret_items
1087
        finally:
1088
            close_session()
7281 kshitij.so 1089
 
7291 vikram.rag 1090
    def getAllFbaListedItems(self):
1091
        try:
1092
            items = get_all_fba_listed_items()
1093
            ret_items = []
1094
            for item in items:
1095
                if item:
1096
                    ret_items.append(to_t_Amazonlisted(item))
1097
            return ret_items
1098
        finally:
1099
            close_session()
1100
 
1101
    def getAllNonFbaListedItems(self):
1102
        try:
1103
            items = get_all_nonfba_listed_items()
1104
            ret_items = []
1105
            for item in items:
1106
                if item:
1107
                    ret_items.append(to_t_Amazonlisted(item))
1108
            return ret_items
1109
        finally:
1110
            close_session()
1111
 
1112
 
1113
    def getAllAmazonListedItems(self):      
1114
        try:
1115
            amazonlisteditems = []
1116
            all_listed = get_all_amazon_listed_items()
1117
            for amazonlisteditem in all_listed:
1118
                amazonlisteditems.append(to_t_Amazonlisted(amazonlisteditem))
1119
            return amazonlisteditems
1120
        finally:
1121
            close_session()             
1122
 
1123
 
4934 amit.gupta 1124
def is_valid(item):
1125
    if item.status in [status.ACTIVE, status.PAUSED, status.PAUSED_BY_RISK]:
4936 amit.gupta 1126
        if item.startDate:
1127
            return not(datetime.datetime.now() < item.startDate or item.sellingPrice == 0)
1128
        else:
1129
            return True
6256 rajveer 1130
    elif item.status == status.COMING_SOON:
1131
        return True
1132
    else:
7190 amar.kumar 1133
        return False
1134
 
1135
if __name__ == '__main__':
1136
    items = get_all_alive_items()
1137
    ret_items = []
1138
    for item in items:
1139
        if item:
1140
            ret_items.append(to_t_item(item))
1141
    print ret_items