Subversion Repositories SmartDukaan

Rev

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