Subversion Repositories SmartDukaan

Rev

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