Subversion Repositories SmartDukaan

Rev

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