Subversion Repositories SmartDukaan

Rev

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