Subversion Repositories SmartDukaan

Rev

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