Subversion Repositories SmartDukaan

Rev

Rev 8362 | Rev 8579 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

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