Subversion Repositories SmartDukaan

Rev

Rev 12888 | Rev 13136 | 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, \
11592 amit.gupta 8
    to_t_source_item_pricing, to_t_product_notification_request, to_t_banner, \
9
    to_t_banner_map, to_t_product_notification_request_count, \
8579 kshitij.so 10
    to_t_voucher_item_mapping, to_t_insurer, to_t_Amazonlisted, to_t_ebay_item, \
11592 amit.gupta 11
    to_t_uri_mapping, to_t_banner_list, to_t_campaign, to_t_snapdeal_item, \
12
    to_t_snapdeal_item_details, to_t_product_feed_submit, to_t_marketplace_items, \
13
    to_t_marketplace_itemprice, to_t_marketplacepercentage, to_t_flipkart_item, \
12567 amit.gupta 14
    to_t_flipkart_item_details, to_t_market_place_history, to_t_private_deal, \
15
    to_t_amazonoutofsync, to_t_private_deals_comparison, \
16
    to_t_snapdeal_marketplace_item, to_t_flipkart_marketplace_item, \
17
    to_t_competitor_pricing, to_t_amazon_promotion, to_t_Amazonlisted_promo
6511 kshitij.so 18
from shop2020.model.v1.catalog.impl.DataAcessors import add_item, retire_item, \
19
    change_item_status, get_item, get_all_items, get_all_items_by_status, \
5944 mandeep.dh 20
    update_item, start_item_on, close_session, retire_item_on, \
5110 mandeep.dh 21
    get_items_by_catalog_id, get_best_deals, get_best_deals_catalog_ids, \
22
    get_best_deals_count, get_best_sellers, get_latest_arrivals, \
23
    get_latest_arrivals_catalog_ids, get_latest_arrivals_count, is_active, \
24
    get_best_sellers_catalog_ids, get_best_sellers_count, put_category_object, \
5944 mandeep.dh 25
    get_category_object, mark_item_as_content_complete, generate_new_entity_id, \
26
    get_category, get_all_categories, add_category, get_item_status_description, \
6511 kshitij.so 27
    check_similar_item, change_risky_flag, get_items_for_mastersheet, \
28
    get_risky_items, get_similar_items_catalog_ids, add_product_notification, \
29
    send_product_notifications, get_all_brands_by_category, is_alive, \
30
    get_item_pricing_by_source, add_source_item_pricing, get_all_sources, \
31
    get_item_for_source, get_all_source_pricing, get_item_count_by_status, \
32
    search_items, get_search_result_count, get_product_notifications, \
33
    get_product_notification_request_count, get_all_similar_items_catalog_ids, \
34
    add_similar_item_catalog_id, delete_similar_item_catalog_id, \
35
    add_authorization_log_for_item, get_thrift_item_list, get_all_brands, \
36
    get_coming_soon, get_coming_soon_catalog_ids, get_coming_soon_count, initialize, \
7438 amit.gupta 37
    add_update_voucher_for_item, delete_voucher_for_item, get_voucher_amount, \
38
    get_all_vouchers_for_item, is_valid_catalog_id, check_risky_item, \
39
    get_vat_percentage_for_item, get_vat_amount_for_item, add_tag, get_all_tags, \
40
    get_all_entities_by_tag_name, delete_tag, delete_entity_tag, \
41
    get_all_ignored_inventoryupdate_items_list, add_banner, get_all_banners, \
42
    delete_banner, get_banner_details, get_active_banners, add_banner_map, \
43
    delete_banner_map, get_banner_map_details, get_insurance_amount, get_insurer, \
44
    get_all_alive_items, get_all_insurers, get_all_entity_tags, \
45
    update_insurance_declared_amount, get_freebie_for_item, \
46
    add_or_update_freebie_for_item, get_all_amazon_listed_items, get_store_pricing, \
47
    update_store_pricing, get_amazon_item_details, update_amazon_item_details, \
48
    add_amazon_item, get_asin_items, get_all_fba_listed_items, \
49
    get_all_nonfba_listed_items, add_or_update_brand_info, get_brand_info, \
7897 amar.kumar 50
    get_items_status, update_item_inventory, update_timestamp_for_amazon_feeds, \
11592 amit.gupta 51
    get_all_parent_categories, add_page_view_event, add_cart_event, insert_ebay_item, \
52
    get_ebay_item, update_ebay_item, update_amazon_attributes_in_bulk, \
53
    get_all_items_to_list_on_fba, get_all_items_to_list_on_nonfba, update_banner, \
54
    add_banner_uri, get_uri_mapping, add_campaign, get_campaigns, delete_campaign, \
55
    get_all_campaigns, get_amazon_listed_items, search_amazon_items, \
56
    get_count_for_amazonlisted_items, get_amazon_search_result_count, update_asin, \
57
    add_or_update_snapdeal_item, get_snapdeal_item, get_all_snapdeal_items, \
58
    get_snapdeal_items, search_snapdeal_items, get_count_for_snapdeal_items, \
59
    get_snapdeal_search_result_count, get_active_banners_for_mobile_site, \
60
    get_preffered_insurer_for_item, get_snapdealitem_by_skuatsnapdeal, \
9621 manish.sha 61
    get_product_feed_submit, add_product_feed_submit, update_product_feed_submit, \
11592 amit.gupta 62
    delete_product_feed_submit, get_all_product_feed_submit, \
63
    get_snapdeal_item_detail, get_marketplace_details_for_item, \
64
    update_marketplace_attributes_for_item, get_costing_for_marketplace, \
65
    get_all_marketplace_items_for_priceupdate, update_marketplace_priceupdate_status, \
66
    update_item_hold_inventory, update_nlc_at_marketplaces, get_all_flipkart_items, \
67
    get_flipkart_item, add_or_update_flipkart_item, get_flipkart_item_detail, \
68
    get_flipkart_items, search_flipkart_items, get_count_for_flipkart_items, \
69
    get_flipkart_search_result_count, get_all_fk_items, \
70
    get_flipkart_item_by_sku_at_flipkart, get_marketplace_history, \
71
    get_all_fbb_listed_items, get_count_for_marketplaceHistory, \
72
    get_marketplace_history_by_date, get_all_fbb_pricing_items, \
73
    get_private_deal_details, get_private_deal_items, add_or_update_private_deal, \
11645 amit.gupta 74
    get_all_active_private_deals, get_private_deals_catalog_ids, \
12567 amit.gupta 75
    get_private_deals_count, get_amazon_out_of_sync, \
76
    get_all_private_deals_comparison, get_all_snapdeal_marketplaceItem, \
77
    get_all_flipkart_marketplaceItem, add_competitor_scraping, \
78
    get_previous_competitor_scraping, get_upload_result_by_id, add_amazon_promotion, \
79
    get_amazon_promotion, update_amazon_promotion, get_vat_rates, \
12888 kshitij.so 80
    update_item_state_vat, mark_partially_active, get_ex_affiliate_item_info, \
81
    get_all_items_to_list_on_fbg, get_all_fbg_listed_items
12947 kshitij.so 82
from shop2020.thriftpy.model.v1.catalog.ttypes import status, CatalogServiceException
5944 mandeep.dh 83
from shop2020.utils.Utils import log_entry, to_py_date
5110 mandeep.dh 84
import datetime
122 ashish 85
 
5944 mandeep.dh 86
class CatalogServiceHandler:
122 ashish 87
    '''
88
    classdocs
89
    '''
599 chandransh 90
 
3187 rajveer 91
    def __init__(self, dbname='catalog', db_hostname='localhost'):
122 ashish 92
        '''
93
        Constructor
94
        '''
5295 rajveer 95
        initialize(dbname, db_hostname)
599 chandransh 96
        try:
621 chandransh 97
            config_client = ConfigClient()
98
            self.latest_arrivals_limit = int(config_client.get_property("LATEST_ARRIVALS_LIMIT"));
99
            self.best_sellers_limit = int(config_client.get_property("BEST_SELLERS_LIMIT"))
599 chandransh 100
        except:
621 chandransh 101
            self.latest_arrivals_limit = 50
102
            self.best_sellers_limit = 50
122 ashish 103
 
104
    #DONE
105
    def addItem(self, item):
106
        """
107
        Availability and inventory attributes
108
 
109
        Parameters:
110
         - item
111
        """
112
        log_entry(self, "addItem called")
785 rajveer 113
        try:
114
            return add_item(item)
115
        finally:
116
            close_session()
6511 kshitij.so 117
 
118
 
119
    def addTag(self, displayName, catalogId):
120
        result = False
121
        try:
122
            return add_tag(displayName, catalogId)
123
        except:
124
            result = True
125
        finally:
126
            close_session()
127
            return result
6848 kshitij.so 128
 
8590 kshitij.so 129
    def addBanner(self, bannerCongregate):
6848 kshitij.so 130
        try:
10097 kshitij.so 131
            return add_banner(bannerCongregate)
6848 kshitij.so 132
        finally:
133
            close_session()
134
 
135
    def getAllBanners(self):
8579 kshitij.so 136
        bannerList=[]
6848 kshitij.so 137
        try:
8579 kshitij.so 138
            for banner in get_all_banners():
139
                bannerList.append(to_t_banner(banner))
6848 kshitij.so 140
        finally:
141
            close_session()
8579 kshitij.so 142
            return bannerList
6848 kshitij.so 143
 
9155 kshitij.so 144
    def deleteBanner(self,name,bannerType):
6848 kshitij.so 145
        try:
9155 kshitij.so 146
            return delete_banner(name,bannerType)
6848 kshitij.so 147
        finally:
148
            close_session()
149
 
9155 kshitij.so 150
    def getBannerDetails(self,name,bannerType):
6848 kshitij.so 151
        result = None
152
        try:
9155 kshitij.so 153
            result = get_banner_details(name,bannerType)
6848 kshitij.so 154
            if result is not None:
155
                result = to_t_banner(result)
156
        finally:
157
            close_session()
158
            return result
159
 
160
    def getActiveBanners(self):
10097 kshitij.so 161
        active_banners = {}
6848 kshitij.so 162
        try:
8579 kshitij.so 163
            active_banners = get_active_banners()
6848 kshitij.so 164
        finally:
165
            close_session()
8579 kshitij.so 166
            return active_banners
167
 
168
    def addBannerMap(self, bannerMaps):
6848 kshitij.so 169
        try:
8579 kshitij.so 170
            return add_banner_map(bannerMaps)
6848 kshitij.so 171
        finally:
172
            close_session()
173
 
174
    def deleteBannerMap(self, name):
175
        try:
176
            return delete_banner_map(name)
177
        finally:
178
            close_session()
179
 
9155 kshitij.so 180
    def getBannerMapDetails(self,name,bannerType):
6848 kshitij.so 181
        banners=[]
182
        try:
9155 kshitij.so 183
            for result in get_banner_map_details(name,bannerType):
6848 kshitij.so 184
                if result is not None:
8579 kshitij.so 185
                    banners.append(to_t_banner_map(result))
6848 kshitij.so 186
        finally:
187
            close_session()
188
            return banners
8579 kshitij.so 189
    def updateBanner(self,banner):
190
        try:
191
            return update_banner(banner)
192
        finally:
193
            close_session()
194
 
195
    def addBannerUri(self,bannerUriMappings):
196
        try:
197
            add_banner_uri(bannerUriMappings)
198
        finally:
199
            close_session()
200
 
9155 kshitij.so 201
    def getUriMapping(self,bannerName,bannerType):
8579 kshitij.so 202
        uriMapping=[]
203
        try:
9155 kshitij.so 204
            for uri in get_uri_mapping(bannerName,bannerType):
8579 kshitij.so 205
                uriMapping.append(to_t_uri_mapping(uri))
206
        finally:
207
            close_session()
208
            return uriMapping
209
 
210
    def addCampaign(self,campaign):
211
        try:
212
            add_campaign(campaign)
213
        finally:
214
            close_session()
215
 
216
    def getCampaigns(self,campaignName):
217
        campaigns = []
218
        try:
219
            for campaign in get_campaigns(campaignName):
220
                campaigns.append(to_t_campaign(campaign))
221
        finally:
222
            close_session()
223
            return campaigns
224
 
225
    def deleteCampaign(self,campaignId):
226
        try:
227
            delete_campaign(campaignId)
228
        finally:
229
            close_session()
6848 kshitij.so 230
 
8579 kshitij.so 231
    def getAllCampaigns(self):
232
        campaigns = []
233
        try:
234
            for campaign in get_all_campaigns():
235
                campaigns.append(campaign[0])
236
        finally:
237
            close_session()
238
            return campaigns
6848 kshitij.so 239
 
9155 kshitij.so 240
    def getActiveBannersForMobileSite(self):
10097 kshitij.so 241
        active_banners = {}
9155 kshitij.so 242
        try:
243
            active_banners = get_active_banners_for_mobile_site()
244
            for bannerName,banners in active_banners.iteritems():
245
                active_banners[bannerName] = to_t_banner_list(banners)
246
        finally:
247
            close_session()
248
            return active_banners
249
 
6511 kshitij.so 250
 
251
    def getAllTags(self):
252
        result = []
253
        try:
254
            result = get_all_tags()
255
        except:
256
            result = True
257
        finally:
258
            close_session()
259
            return result
260
 
261
    def getAllEntitiesByTagName(self,displayName):
262
        result = []
263
        try:
264
            result = get_all_entities_by_tag_name(displayName)
265
        except:
266
            result = True
267
        finally:
268
            close_session()
269
            return result
270
 
271
    def deleteTag(self,displayName):
272
        result = False
273
        try:
274
            return delete_tag(displayName)
275
        except:
276
            result = True
277
        finally:
278
            close_session()
279
            return result
280
 
6518 kshitij.so 281
    def deleteEntityTag(self,displayName,catalogId):
282
        result = False
283
        try:
284
            return delete_entity_tag(displayName,catalogId)
285
        except:
286
            result = True
287
        finally:
288
            close_session()
289
            return result
290
 
635 rajveer 291
    def isActive(self, item_id):
563 chandransh 292
        """
293
        Parameters:
635 rajveer 294
         - item_id
563 chandransh 295
        """
785 rajveer 296
        try:
297
            return is_active(item_id)
298
        finally:
299
            close_session()
7438 amit.gupta 300
 
301
    def getItemsStatus(self, item_ids):
302
        """
303
        Parameters:
304
         - item_id
305
        """
306
        try:
307
            return get_items_status(item_ids)
308
        finally:
309
            close_session()
122 ashish 310
 
2035 rajveer 311
    def getItemStatusDescription(self, itemId):
312
        """
313
        Parameters:
314
         - itemId
315
        """
316
        try:
317
            return get_item_status_description(itemId)
318
        finally:
319
            close_session()
122 ashish 320
 
321
    def retireItem(self, item_id):
322
        """
323
        Parameters:
324
        - item_id
325
        """
326
        log_entry(self, "retire item called")
785 rajveer 327
        try:
328
            return retire_item(item_id)
329
        finally:
330
            close_session()
122 ashish 331
 
332
    def startItemOn(self, item_id, timestamp):
333
        """
334
        Parameters:
335
         - item_id
336
         - timestamp
337
        """
785 rajveer 338
        try:
339
            start_item_on(item_id, timestamp)
340
        finally:
341
            close_session()
122 ashish 342
 
343
    def retireItemOn(self, item_id, timestamp):
344
        """
345
        Parameters:
346
         - item_id
347
         - timestamp
348
        """
785 rajveer 349
        try:
350
            retire_item_on(item_id, timestamp)
351
        finally:
352
            close_session()
122 ashish 353
 
354
    def changeItemStatus(self, item_id, timestamp, newstatus):
355
        """
356
        Parameters:
357
         - item_id
358
         - timestamp
359
         - newstatus
360
        """
361
        log_entry(self, "change item status called")
785 rajveer 362
        try:
363
            return change_item_status(item_id, newstatus)
364
        finally:
365
            close_session()
122 ashish 366
 
785 rajveer 367
 
122 ashish 368
    def getItem(self, item_id):
369
        """
370
        Parameters:
371
         - item_id
372
        """
373
        log_entry(self, "item requested")
785 rajveer 374
        try:
2065 ankur.sing 375
            item = to_t_item( get_item(item_id))
376
            return item
785 rajveer 377
        finally:
378
            close_session()
379 ashish 379
 
635 rajveer 380
    def getItemsByCatalogId(self, catalog_item_id):
379 ashish 381
        """
382
        Parameters:
383
        - catalog_item_id
384
        """
386 ashish 385
        log_entry(self, "item requested")
766 rajveer 386
        try:
4934 amit.gupta 387
            return get_thrift_item_list(get_items_by_catalog_id(catalog_item_id))
766 rajveer 388
        finally:
389
            close_session()
122 ashish 390
 
4934 amit.gupta 391
    def getValidItemsByCatalogId(self, catalog_item_id):
392
        """
393
        Parameters:
394
         - catalog_item_id
395
        """
396
        log_entry(self, "items requested for CatalogItem")
397
        try:
398
            return get_thrift_item_list(filter(is_valid, get_items_by_catalog_id(catalog_item_id)))
399
        finally:
400
            close_session()
401
 
5586 phani.kuma 402
    def isValidCatalogItemId(self, catalog_item_id):
403
        """
404
        Parameters:
405
         - catalog_item_id
406
        """
407
        try:
408
            return is_valid_catalog_id(catalog_item_id)
409
        finally:
410
            close_session()
411
 
122 ashish 412
    def getAllItems(self, isActive):
413
        """
414
        Parameters:
415
         - isActive
416
        """
417
        log_entry(self, "all items requested")
766 rajveer 418
        try:
419
            items = get_all_items(isActive)
420
            ret_items = []
421
            for item in items:
422
                if item:
423
                    ret_items.append(to_t_item(item))
424
            return ret_items
425
        finally:
426
            close_session()
427
 
122 ashish 428
    def getAllItemsByStatus(self, itemStatus):
429
        """
430
        Parameters:
431
         - itemStatus
432
        """
433
        log_entry(self, "all items requested")
766 rajveer 434
        try:
435
            items = get_all_items_by_status(itemStatus)
436
            ret_items = []
437
            for item in items:
438
                if item:
439
                    ret_items.append(to_t_item(item))
440
            return ret_items
441
        finally:
442
            close_session()
6821 amar.kumar 443
 
444
    def getAllAliveItems(self):
445
        """
446
        Parameters:
447
         - itemStatus
448
        """
449
        log_entry(self, "all non phased non deleted items requested")
450
        try:
451
            items = get_all_alive_items()
452
            ret_items = []
453
            for item in items:
454
                if item:
455
                    ret_items.append(to_t_item(item))
456
            return ret_items
457
        finally:
458
            close_session()
459
 
122 ashish 460
 
3348 varun.gupt 461
    def getAllBrandsByCategory(self, categoryId):
462
        """
463
        Parameters:
464
         - categoryId
465
        """
466
        try:
467
            return get_all_brands_by_category(categoryId)
468
        finally:
469
            close_session()
470
 
4957 phani.kuma 471
    def getAllBrands(self):
472
        try:
473
            return get_all_brands()
474
        finally:
475
            close_session()
5944 mandeep.dh 476
 
3849 chandransh 477
    def getAllItemsInRange(self, offset, limit):
478
        """
479
        Gets at most 'limit' items starting at the given offset. Returns an empty list if there are no more items at the given offset.
480
 
481
        Parameters:
482
         - offset
483
         - limit
484
        """
485
        try:
486
            items = get_all_items(False, offset, limit)
487
            return [to_t_item(item) for item in items]
488
        finally:
489
            close_session()
379 ashish 490
 
3849 chandransh 491
    def getAllItemsByStatusInRange(self, itemStatus, offset, limit):
492
        """
493
        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.
494
 
495
        Parameters:
496
         - itemStatus
497
         - offset
498
         - limit
499
        """
500
        log_entry(self, "all items requested")
501
        try:
502
            items = get_all_items_by_status(itemStatus, offset, limit)
503
            return [to_t_item(item) for item in items]
504
        finally:
505
            close_session()
506
 
507
    def getItemCountByStatus(self, useStatus, itemStatus):
508
        """
509
        Gets a count of all items by status
510
 
511
        Parameters:
512
         - useStatus
513
         - itemStatus
514
        """
515
        try:
516
            return get_item_count_by_status(useStatus, itemStatus)
517
        finally:
518
            close_session()
519
 
9253 rajveer 520
    def markItemAsContentComplete(self, entityId, category, brand, modelName, modelNumber, isAndroid):
2080 rajveer 521
        """
522
        Parameters:
523
         - entityId
524
         - category
525
         - brand
526
         - modelName
527
         - modelNumber
9253 rajveer 528
         - isAndroid
2080 rajveer 529
        """
530
        try:
9253 rajveer 531
            return mark_item_as_content_complete(entityId, category, brand, modelName, modelNumber, isAndroid)
2080 rajveer 532
        finally:
533
            close_session()
766 rajveer 534
 
122 ashish 535
    def updateItem(self, item):
536
        """
537
        Parameters:
538
         - item
539
        """
540
        log_entry(self, "addItem called")
766 rajveer 541
        try:
542
            return update_item(item)
543
        finally:
544
            close_session()
545
 
626 chandransh 546
    def getBestSellers(self, start_index=0, total_items=None, category=-1):
766 rajveer 547
        try:
548
            if total_items is None:
549
                total_items = self.best_sellers_limit
550
            stop_index = start_index + total_items
551
            return get_best_sellers(start_index, stop_index, category)
552
        finally:
553
            close_session()
554
 
1926 rajveer 555
    def getBestSellersCatalogIds(self, start_index, total_items, brand, category=-1):
548 rajveer 556
        """
557
        Parameters:
558
         - beginIndex
559
         - totalItems
560
        """
766 rajveer 561
        try:
562
            if total_items is None:
563
                total_items = self.best_sellers_limit
564
            stop_index = start_index + total_items
1926 rajveer 565
            return get_best_sellers_catalog_ids(start_index, stop_index, brand, category)
766 rajveer 566
        finally:
567
            close_session()
568
 
591 chandransh 569
    def getBestSellersCount(self, ):
766 rajveer 570
        try:
2093 chandransh 571
            return get_best_sellers_count()
766 rajveer 572
        finally:
573
            close_session()
574
 
591 chandransh 575
    def getBestDeals(self,):
766 rajveer 576
        try:
577
            return get_best_deals()
578
        finally:
579
            close_session()
580
 
1926 rajveer 581
    def getBestDealsCatalogIds(self, start_index, total_items, brand,category=-1):
548 rajveer 582
        """
583
        Parameters:
584
         - beginIndex
585
         - totalItems
586
        """
766 rajveer 587
        try:
588
            stop_index = start_index + total_items
1926 rajveer 589
            return get_best_deals_catalog_ids(start_index, stop_index, brand, category)
766 rajveer 590
        finally:
591
            close_session()
592
 
591 chandransh 593
    def getBestDealsCount(self, ):
766 rajveer 594
        try:
595
            return get_best_deals_count()
596
        finally:
597
            close_session()
598
 
5217 amit.gupta 599
    def getComingSoon(self,):
600
        try:
601
            return get_coming_soon()
602
        finally:
603
            close_session()
604
 
605
    def getComingSoonCatalogIds(self, start_index, total_items, brand,category=-1):
606
        """
607
        Parameters:
608
         - beginIndex
609
         - totalItems
610
        """
611
        try:
612
            stop_index = start_index + total_items
613
            return get_coming_soon_catalog_ids(start_index, stop_index, brand, category)
614
        finally:
615
            close_session()
616
 
617
    def getComingSoonCount(self, ):
618
        try:
619
            return get_coming_soon_count()
620
        finally:
621
            close_session()
622
 
591 chandransh 623
    def getLatestArrivals(self,):
766 rajveer 624
        try:
625
            return get_latest_arrivals(self.latest_arrivals_limit)
626
        finally:
627
            close_session()
2975 chandransh 628
 
629
    def getLatestArrivalsCatalogIds(self, beginIndex, totalItems, brand, categories):
548 rajveer 630
        """
2975 chandransh 631
        Returns the list of catalog ids of latest arrivals in the given categories of the given brand.
632
        To ignore the categories, pass the list as empty. To ignore brand, pass it as null.
633
 
548 rajveer 634
        Parameters:
635
         - beginIndex
636
         - totalItems
2975 chandransh 637
         - brand
638
         - categories
548 rajveer 639
        """
766 rajveer 640
        try:
2975 chandransh 641
            if beginIndex > self.latest_arrivals_limit:
766 rajveer 642
                return []
2975 chandransh 643
            stopIndex = beginIndex + totalItems
644
            if stopIndex > self.latest_arrivals_limit:
645
                stopIndex = self.latest_arrivals_limit
646
            return get_latest_arrivals_catalog_ids(beginIndex, stopIndex, brand, categories)
766 rajveer 647
        finally:
648
            close_session()
649
 
591 chandransh 650
    def getLatestArrivalsCount(self, ):
766 rajveer 651
        try:
652
            return get_latest_arrivals_count(self.latest_arrivals_limit)
653
        finally:
654
            close_session()
591 chandransh 655
 
1155 rajveer 656
    def generateNewEntityID(self, ):
657
        try:
658
            return generate_new_entity_id()
659
        finally:
660
            close_session()
661
 
635 rajveer 662
    def putCategoryObject(self, object):
663
        """
664
        Parameters:
665
         - object
666
        """
766 rajveer 667
        try:
668
            return put_category_object(object)
669
        finally:
670
            close_session()
671
 
635 rajveer 672
    def getCategoryObject(self, ):
766 rajveer 673
        try:
674
            return get_category_object()
675
        finally:
676
            close_session()
1970 rajveer 677
 
678
    def addCategory(self, category):
679
        """
680
        Parameters:
681
         - category
682
        """
683
        try:
684
            return add_category(category)
685
        finally:
686
            close_session()
687
 
688
    def getCategory(self, id):
689
        """
690
        Parameters:
691
         - id
692
        """
693
        try:
694
            return to_t_category(get_category(id))
695
        finally:
696
            close_session()
697
 
698
    def getAllCategories(self, ):
699
        try:
700
            categories = get_all_categories()
701
            return [to_t_category(category) for category in categories]
702
        finally:
703
            close_session()
4432 rajveer 704
 
4423 phani.kuma 705
    def getAllSimilarItems(self, itemId):
706
        """
707
        Returns list of similar items.
708
 
709
        Parameters:
710
         - itemId
711
        """
4432 rajveer 712
        try:
713
            return get_all_similar_items_catalog_ids(itemId)
714
        finally:
715
            close_session()
716
 
4423 phani.kuma 717
    def addSimilarItem(self, itemId, catalogItemId):
718
        """
719
        add similar item.
720
 
721
        Parameters:
722
         - itemId, catalogItemId
723
        """
724
        try:
725
            return add_similar_item_catalog_id(itemId, catalogItemId)
726
        finally:
727
            close_session()
728
 
729
    def deleteSimilarItem(self, itemId, catalogItemId):
730
        """
731
        delete similar items.
732
 
733
        Parameters:
734
         - itemId, catalogItemIds
735
        """
736
        try:
737
            return delete_similar_item_catalog_id(itemId, catalogItemId)
738
        finally:
739
            close_session()
4762 phani.kuma 740
 
5504 phani.kuma 741
    def getAllItemVouchers(self, itemId):
742
        """
743
        Returns list of vouchers.
744
 
745
        Parameters:
746
         - itemId
747
        """
748
        try:
749
            vouchers = get_all_vouchers_for_item(itemId)
750
            return [to_t_voucher_item_mapping(voucher) for voucher in vouchers]
751
        finally:
752
            close_session()
753
 
754
    def getVoucherAmount(self, itemId, voucherType):
755
        """
756
        Returns voucher amount.
757
 
758
        Parameters:
759
         - itemId, voucherType
760
        """
761
        try:
762
            return get_voucher_amount(itemId, voucherType)
763
        finally:
764
            close_session()
765
 
766
    def addupdateVoucherForItem(self, catalogItemId, voucherType, voucherAmount):
767
        """
768
        add or update voucher for item.
769
 
770
        Parameters:
771
         - catalogItemId, voucherType, voucherAmount
772
        """
773
        try:
774
            return add_update_voucher_for_item(catalogItemId, voucherType, voucherAmount)
775
        finally:
776
            close_session()
777
 
778
    def deleteVoucherForItem(self, catalogItemId, voucherType):
779
        """
780
        delete voucher for item.
781
 
782
        Parameters:
783
         - catalogItemId, voucherType
784
        """
785
        try:
786
            return delete_voucher_for_item(catalogItemId, voucherType)
787
        finally:
788
            close_session()
2116 ankur.sing 789
 
4725 phani.kuma 790
    def checkSimilarItem(self, brand, modelNumber, modelName, color):
2116 ankur.sing 791
        """
4725 phani.kuma 792
        Checks if similar item exists (with same Brand, ModelNumber, ModelName, Color)
2116 ankur.sing 793
        If yes, returns the itemId else returns 0
794
 
795
        Parameters:
796
         - brand
797
         - modelNumber
4725 phani.kuma 798
         - modelName
2116 ankur.sing 799
         - color
800
        """
801
        try:
4725 phani.kuma 802
            return check_similar_item(brand, modelNumber, modelName, color)
2116 ankur.sing 803
        finally:
804
            close_session()
805
 
2286 ankur.sing 806
    def changeItemRiskyFlag(self, itemId, risky):
807
        """
808
        Marks/Unmarks an item as risky. This flag is used for automatic marking of an item as INACTIVE in case of zero inventory.
809
 
810
        Parameters:
811
         - itemId
812
         - risky
813
        """
814
        try:
815
            change_risky_flag(itemId, risky)
816
        finally:
817
            close_session()
2116 ankur.sing 818
 
4957 phani.kuma 819
    def getItemsForMasterSheet(self, category, brand):
2358 ankur.sing 820
        """
4957 phani.kuma 821
        Returns list of items with any status except PHASED_OUT and filtered by category, brand.
2358 ankur.sing 822
 
823
        Parameters:
4762 phani.kuma 824
         - category
4957 phani.kuma 825
         - vendor
826
         - brand
2358 ankur.sing 827
        """
828
        try:
4957 phani.kuma 829
            return [to_t_item(item) for item in get_items_for_mastersheet(category, brand)]
2358 ankur.sing 830
        finally:
831
            close_session()
832
 
833
    def getItemsByRiskyFlag(self, ):
834
        """
835
        Returns list of items marked as risky.
836
        """
837
        try:
838
            return [to_t_item(item) for item in get_risky_items()]
839
        finally:
840
            close_session()
2809 rajveer 841
 
842
    def getSimilarItemsCatalogIds(self, beginIndex, totalItems, itemId):
843
        """
844
        Returns list of catalog ids of items with same similarity index as of the given itemId
845
 
846
        Parameters:
847
         - beginIndex
848
         - totalItems
849
         - itemId
850
        """
851
        try:
852
            return get_similar_items_catalog_ids(beginIndex, beginIndex+totalItems, itemId)
853
        finally:
854
            close_session()
3079 rajveer 855
 
856
    def addProductNotification(self, itemId, email):
857
        """
858
        Add user requests for out of stock items. Once user will ask for notify me an entry will
859
 
860
        Parameters:
861
        - itemId
862
        - email
863
        """
864
        try:
865
            return add_product_notification(itemId, email)
866
        finally:
867
            close_session()
2358 ankur.sing 868
 
3086 rajveer 869
    def sendProductNotifications(self, ):
870
        """
871
        Send the product notifications to the users for items which has stock.
872
        """
873
        try:
874
            return send_product_notifications()
875
        finally:
876
            close_session()
3557 rajveer 877
 
878
 
879
    def getAllSources(self, ):
880
        """
881
        Return list of all sources
882
        """
883
        try:
884
            return get_all_sources()
885
        finally:
886
            close_session()
887
 
888
    def getItemPricingBySource(self, itemId, sourceId):
889
        """
890
        Returns the pricing information of an item. If no information is found, exception will be thrown.
3376 rajveer 891
 
3557 rajveer 892
        Parameters:
893
         - itemId
894
         - sourceId
895
        """
896
        try:
897
            return to_t_source_item_pricing(get_item_pricing_by_source(itemId, sourceId))
898
        finally:
899
            close_session()
900
 
901
    def addSourceItemPricing(self, sourceItemPricing):
902
        """
903
        Adds prices to be displayed corresponding to the item if user comes from a source.
904
 
905
        Parameters:
906
         - sourceItemPricing
907
        """
908
        try:
909
            add_source_item_pricing(sourceItemPricing)
910
        finally:
911
            close_session()
912
 
913
    def getAllSourcePricing(self, itemId):
914
        """
915
        Returns the list of source pricing information of an item.
916
        Raises an exception if item not found corresponding to itemId
917
 
918
        Parameters:
919
         - itemId
920
        """
921
        try:
922
            return [to_t_source_item_pricing(source_item_pricing) for source_item_pricing in get_all_source_pricing(itemId)]
923
#        return [to_t_item(item) for item in get_risky_items()]
924
        finally:
925
            close_session()
926
 
927
    def getItemForSource(self, item_id, sourceId):
928
        """
929
        Parameters:
930
         - item_id
931
         - sourceId
932
        """
933
        try:
934
            return to_t_item(get_item_for_source(item_id, sourceId))
935
        finally:
936
            close_session()
3872 chandransh 937
 
938
    def searchItemsInRange(self, searchTerms, offset, limit):
939
        """
940
        Searches items matching the the given terms in the catalog
3557 rajveer 941
 
3872 chandransh 942
        Parameters:
943
         - searchTerms
944
        """
945
        try:
946
            return [to_t_item(item) for item in search_items(searchTerms, offset, limit)]
947
        finally:
948
            close_session()
949
 
950
    def getSearchResultCount(self, searchTerms):
951
        """
952
        Gets the count of search results for the given search terms so that the user can go through all the pages.
953
 
954
        Parameters:
955
         - searchTerms
956
        """
957
        try:
958
            return get_search_result_count(searchTerms)
959
        finally:
960
            close_session()
961
 
4295 varun.gupt 962
    def getProductNotifications(self, startDateTime):
963
        '''
964
        Returns a list of Product Notification objects each representing user requests for notification
965
        '''
966
        try:
967
            return [to_t_product_notification_request(notification) for notification in get_product_notifications(to_py_date(startDateTime))]
968
        finally:
969
            close_session()
970
 
7897 amar.kumar 971
    def getProductNotificationRequestCount(self, startDateTime,  categoryId):
4295 varun.gupt 972
        '''
973
        Returns list of items and the counts of product notification requests
974
        '''
975
        try:
7897 amar.kumar 976
            notification_request_counts = [(notification.item, count) for notification, count in get_product_notification_request_count(to_py_date(startDateTime), categoryId)]
4295 varun.gupt 977
 
978
            return [to_t_product_notification_request_count(count) for count in notification_request_counts]
979
 
980
        finally:
981
            close_session()
982
 
3376 rajveer 983
    def isAlive(self, ):
984
        """
985
        For checking weather service is active alive or not. It also checks connectivity with database
986
        """
987
        try:
988
            return is_alive()
989
        finally:
990
            close_session()
991
 
766 rajveer 992
    def closeSession(self, ):
3376 rajveer 993
        """
994
        For closing the open session in sqlalchemy
995
        """
4332 anupam.sin 996
        close_session()
997
 
4649 phani.kuma 998
    def addAuthorizationLog(self, itemId, username, reason):
999
        """
1000
        add a log to authorize table.
1001
 
1002
        Parameters:
1003
         - itemId, username, reason
1004
        """
1005
        try:
1006
            return add_authorization_log_for_item(itemId, username, reason)
1007
        finally:
4934 amit.gupta 1008
            close_session()
5110 mandeep.dh 1009
 
7330 amit.gupta 1010
    def getVatPercentageForItem(self, itemId, stateId, price):
6039 amit.gupta 1011
        """
1012
        get Vat percentage for item for item
1013
        """
1014
        try:
7340 amit.gupta 1015
            return get_vat_percentage_for_item(itemId, stateId, price)
6039 amit.gupta 1016
        finally:
1017
            close_session()
1018
 
1019
    def getVatAmountForItem(self, itemId, price):
1020
        """
1021
        get Vat amount for item
1022
        """
1023
        try:
1024
            return get_vat_amount_for_item(itemId,price)
1025
        finally:
1026
            close_session()
1027
 
5944 mandeep.dh 1028
    def validateRiskyStatus(self, itemId):
5712 mandeep.dh 1029
        """
5944 mandeep.dh 1030
        Check wether item is risky and change status if inventory is not available for risky items
5712 mandeep.dh 1031
        """
1032
        try:
5944 mandeep.dh 1033
            return check_risky_item(itemId)
5712 mandeep.dh 1034
        finally:
1035
            close_session()
6532 amit.gupta 1036
 
1037
    def getAllIgnoredInventoryUpdateItemsList(self,offset, limit):
1038
        try:
1039
            return get_all_ignored_inventoryupdate_items_list(offset,limit)
1040
        finally:
6921 anupam.sin 1041
            close_session()
6805 anupam.sin 1042
 
6921 anupam.sin 1043
    def getInsuranceAmount(self, itemId, price, insurerId, quantity):
6805 anupam.sin 1044
        try:
6921 anupam.sin 1045
            return get_insurance_amount(itemId, price, insurerId, quantity)
6805 anupam.sin 1046
        finally:
6921 anupam.sin 1047
            close_session()
6805 anupam.sin 1048
 
1049
    def getInsurer(self, insurerId):
1050
        try:
1051
            return to_t_insurer(get_insurer(insurerId))
1052
        finally:
6838 vikram.rag 1053
            close_session()
1054
 
1055
    def getAllInsurers(self):
1056
        try:
1057
            insurers = []
1058
            all_insurers = get_all_insurers()
1059
            for insurer in all_insurers:
1060
                insurers.append(to_t_insurer(insurer))
6921 anupam.sin 1061
            return insurers
6838 vikram.rag 1062
        finally:
1063
            close_session()
9299 kshitij.so 1064
 
1065
    def getPrefferedInsurerForItem(self, itemId, insurerType):
1066
        try:
1067
            return get_preffered_insurer_for_item(itemId, insurerType)
1068
        finally:
1069
            close_session()
6962 rajveer 1070
 
1071
    def updateInsuranceDeclaredAmount(self, insurerId, amount):
1072
        try:
1073
            update_insurance_declared_amount(insurerId, amount)
1074
        finally:
1075
            close_session()
5944 mandeep.dh 1076
 
6845 amit.gupta 1077
    def getAllEntityTags(self):
1078
        try:
1079
            return get_all_entity_tags()
1080
        finally:
1081
            close_session()
1082
 
7190 amar.kumar 1083
    def getFreebieForItem(self, itemId):
1084
        try:
1085
            return get_freebie_for_item(itemId)
1086
        finally:
1087
            close_session()
1088
 
1089
    def addOrUpdateFreebieForItem(self, freebieItem):
1090
        try:
1091
            return add_or_update_freebie_for_item(freebieItem)
1092
        finally:
1093
            close_session()
7291 vikram.rag 1094
 
7272 amit.gupta 1095
    def addOrUpdateBrandInfo(self, brandInfo):
1096
        try:
1097
            return add_or_update_brand_info(brandInfo)
1098
        finally:
1099
            close_session()
1100
 
1101
    def getBrandInfo(self):
1102
        try:
1103
            return get_brand_info()
1104
        finally:
1105
            close_session()
1106
 
7256 rajveer 1107
    def getStorePricing(self, itemId):
1108
        try:
1109
            return get_store_pricing(itemId)
1110
        finally:
1111
            close_session()
1112
 
7306 rajveer 1113
    def getStorePricings(self, itemIds):
1114
        try:
1115
            return [get_store_pricing(itemId) for itemId in itemIds]
1116
        finally:
1117
            close_session()
1118
 
7382 rajveer 1119
    def updateStorePricing(self, sp, allColors):
7265 rajveer 1120
        try:
7382 rajveer 1121
            return update_store_pricing(sp, allColors)
7265 rajveer 1122
        finally:
1123
            close_session()
7190 amar.kumar 1124
 
7281 kshitij.so 1125
    def getAmazonItemDetails(self, amazonItemId):
1126
        try:
12363 kshitij.so 1127
            return to_t_Amazonlisted_promo(get_amazon_item_details(amazonItemId))
7281 kshitij.so 1128
        finally:
1129
            close_session()
1130
 
8168 kshitij.so 1131
    def updateAmazonItemDetails(self,amazonlisted):
7281 kshitij.so 1132
        try:
8168 kshitij.so 1133
            update_amazon_item_details(amazonlisted)
7281 kshitij.so 1134
        finally:
1135
            close_session()
1136
 
1137
    def addAmazonItem(self,amazonlisted):
1138
        try:
1139
            add_amazon_item(amazonlisted)
1140
        finally:
1141
            close_session()
1142
 
7291 vikram.rag 1143
    def getAsinItems(self):
1144
        try:
1145
            items = get_asin_items()
1146
            ret_items = []
1147
            for item in items:
1148
                if item:
1149
                    ret_items.append(to_t_item(item))
1150
            return ret_items
1151
        finally:
1152
            close_session()
7281 kshitij.so 1153
 
7291 vikram.rag 1154
    def getAllFbaListedItems(self):
1155
        try:
1156
            items = get_all_fba_listed_items()
1157
            ret_items = []
1158
            for item in items:
1159
                if item:
1160
                    ret_items.append(to_t_Amazonlisted(item))
1161
            return ret_items
1162
        finally:
1163
            close_session()
1164
 
1165
    def getAllNonFbaListedItems(self):
1166
        try:
1167
            items = get_all_nonfba_listed_items()
1168
            ret_items = []
1169
            for item in items:
1170
                if item:
1171
                    ret_items.append(to_t_Amazonlisted(item))
1172
            return ret_items
1173
        finally:
1174
            close_session()
1175
 
1176
 
1177
    def getAllAmazonListedItems(self):      
1178
        try:
1179
            amazonlisteditems = []
1180
            all_listed = get_all_amazon_listed_items()
1181
            for amazonlisteditem in all_listed:
1182
                amazonlisteditems.append(to_t_Amazonlisted(amazonlisteditem))
1183
            return amazonlisteditems
1184
        finally:
8139 kshitij.so 1185
            close_session()           
7291 vikram.rag 1186
 
7460 kshitij.so 1187
    def updateItemInventory(self,itemId,holdInventory,defaultInventory):
1188
        try:
1189
            update_item_inventory(itemId,holdInventory,defaultInventory)
1190
            return True
1191
        finally:
1192
            close_session()
7291 vikram.rag 1193
 
7770 kshitij.so 1194
    def updateTimestampForAmazonFeeds(self,feedType,skuList,timestamp):
1195
        try:
1196
            return update_timestamp_for_amazon_feeds(feedType,skuList,timestamp)
1197
        finally:
1198
            close_session()
1199
 
7897 amar.kumar 1200
    def  getAllParentCategories(self):
1201
        try:
1202
            categories = get_all_parent_categories()
1203
            return [to_t_category(category) for category in categories]
1204
        finally:
1205
            close_session()
1206
 
7977 kshitij.so 1207
    def addPageViewEvent(self,pageEvent):
1208
        try:
1209
            add_page_view_event(pageEvent)
1210
        finally:
1211
            close_session()
1212
 
1213
    def addCartEvent(self,cartEvent):
1214
        try:
1215
            add_cart_event(cartEvent)
1216
        finally:
1217
            close_session()
8182 amar.kumar 1218
 
1219
    def addEbayItem(self, ebayItem):
1220
        try:
1221
            insert_ebay_item(ebayItem)
1222
        finally:
1223
            close_session()
1224
 
1225
    def getEbayItem(self, listingId):
1226
        try:
1227
            return to_t_ebay_item(get_ebay_item(listingId))
1228
        finally:
1229
            close_session()
7977 kshitij.so 1230
 
8182 amar.kumar 1231
    def updateEbayItem(self, ebayItem):
1232
        try:
1233
            update_ebay_item(ebayItem)
1234
        finally:
1235
            close_session()
1236
 
8168 kshitij.so 1237
    def updateAmazonAttributesInBulk(self,amazonlisted):
1238
        try:
1239
            return update_amazon_attributes_in_bulk(amazonlisted)
1240
        finally:
1241
            close_session()
8139 kshitij.so 1242
 
8379 vikram.rag 1243
    def getAllItemstoListOnFba(self):
1244
        try:
1245
            fba_items = []
1246
            for item in get_all_items_to_list_on_fba():
1247
                fba_items.append(to_t_Amazonlisted(item))
1248
            return fba_items
1249
        finally:
1250
            close_session()
1251
 
1252
    def getAllItemstoListOnNonFba(self):
1253
        try:
1254
            non_fba_items = []
1255
            for item in get_all_items_to_list_on_nonfba():
1256
                non_fba_items.append(to_t_Amazonlisted(item))
1257
            return non_fba_items
1258
        finally:
1259
            close_session()
8619 kshitij.so 1260
 
1261
    def getAmazonListedItems(self,offset,limit):
1262
        try:
1263
            amazonlisteditems = []
1264
            all_listed = get_amazon_listed_items(offset,limit)
1265
            for amazonlisteditem in all_listed:
1266
                amazonlisteditems.append(to_t_Amazonlisted(amazonlisteditem))
1267
        finally:
1268
            close_session()
1269
            return amazonlisteditems
1270
 
1271
    def searchAmazonItems(self,searchTerms,offset,limit):
1272
        try:
1273
            amazonlisteditems = []
1274
            search_result = search_amazon_items(searchTerms,offset,limit)
1275
            for amazonlisteditem in search_result:
1276
                amazonlisteditems.append(to_t_Amazonlisted(amazonlisteditem))
1277
        finally:
1278
            close_session()
1279
            return amazonlisteditems
1280
 
1281
    def getAmazonSearchResultCount(self,searchTerms):
1282
        try:
1283
            return get_amazon_search_result_count(searchTerms)
1284
        finally:
1285
            close_session()
1286
 
1287
    def getCountForAmazonlistedItems(self):
1288
        try:
1289
            return get_count_for_amazonlisted_items()
1290
        finally:
1291
            close_session()
1292
 
1293
    def updateAsin(self,amazonAsinMap):
1294
        try:
1295
            update_asin(amazonAsinMap)
1296
        finally:
1297
            close_session()
8168 kshitij.so 1298
 
8739 vikram.rag 1299
    def addOrUpdateSnapdealItem(self,snapdealitem):
1300
        try:
1301
            return add_or_update_snapdeal_item(snapdealitem)
1302
        finally:    
1303
            close_session()
1304
 
1305
    def getSnapdealItem(self,item_id):
1306
        try:
1307
            return to_t_snapdeal_item(get_snapdeal_item(item_id))
1308
        finally:
1309
            close_session()
9242 kshitij.so 1310
 
1311
    def getSnapdealItemDetails(self,item_id):
1312
        try:
9724 kshitij.so 1313
            snapdealItem, snapdealInventory = get_snapdeal_item_detail(item_id)
1314
            return to_t_snapdeal_item_details(snapdealItem, snapdealInventory)
9242 kshitij.so 1315
        finally:
1316
            close_session()
8739 vikram.rag 1317
 
1318
    def getAllSnapdealItems(self):
1319
        try:
1320
            items = get_all_snapdeal_items() 
9724 kshitij.so 1321
            return [to_t_snapdeal_item_details(item,None) for item in items]
8739 vikram.rag 1322
        finally:
9242 kshitij.so 1323
            close_session()
8739 vikram.rag 1324
 
9242 kshitij.so 1325
    def getSnapdealItems(self,offset,limit):
1326
        try:
1327
            items = get_snapdeal_items(offset,limit) 
9724 kshitij.so 1328
            return [to_t_snapdeal_item_details(item,None) for item in items]
9242 kshitij.so 1329
        finally:
1330
            close_session()
1331
 
1332
    def searchSnapdealItems(self,searchterm,offset,limit):
1333
        try:
1334
            snapdealitems = []
1335
            search_result = search_snapdeal_items(searchterm,offset,limit)
1336
            for snapdealitem in search_result:
9724 kshitij.so 1337
                snapdealitems.append(to_t_snapdeal_item_details(snapdealitem,None))
9242 kshitij.so 1338
        finally:
1339
            close_session()
1340
            return snapdealitems
1341
 
1342
    def getCountForSnapdealItems(self):
1343
        try:
1344
            return get_count_for_snapdeal_items()
1345
        finally:
1346
            close_session()
1347
 
1348
 
1349
    def getSnapdealSearchResultCount(self,searchterms):
1350
        try:
1351
            return get_snapdeal_search_result_count(searchterms)
1352
        finally:
1353
            close_session()
1354
 
9456 vikram.rag 1355
    def getSnapdealItembySkuAtSnapdeal(self,skuatsnapdeal):
1356
        try:
1357
            return to_t_snapdeal_item(get_snapdealitem_by_skuatsnapdeal(skuatsnapdeal))
1358
        finally:
9724 kshitij.so 1359
            close_session()
1360
 
1361
    def getMarketplacedetailsForItem(self,itemId,sourceId):
1362
        try:
1363
            return to_t_marketplace_items(get_marketplace_details_for_item(itemId,sourceId))
1364
        finally:
1365
            close_session()
1366
 
1367
    def updateMarketplaceAttributesForItem(self,marketplaceItem):
1368
        try:
1369
            return update_marketplace_attributes_for_item(marketplaceItem)
1370
        finally:
1371
            close_session() 
9456 vikram.rag 1372
 
9621 manish.sha 1373
    def getProductFeedSubmit(self, catalog_itemId):
1374
        try:
1375
            return to_t_product_feed_submit(get_product_feed_submit(catalog_itemId))
1376
        finally:
1377
            close_session()
1378
 
1379
    def addProductFeedSubmit(self, productFeedSubmit):
1380
        try:
1381
            return add_product_feed_submit(productFeedSubmit)
1382
        finally:
1383
            close_session()
1384
 
1385
    def updateProductFeedSubmit(self, productFeedSubmit):
1386
        try:
1387
            return update_product_feed_submit(productFeedSubmit)
1388
        finally:
1389
            close_session()
1390
 
1391
    def deleteProductFeedSubmit(self, catalog_itemId):
1392
        try:
1393
            return delete_product_feed_submit(catalog_itemId)
1394
        finally:
1395
            close_session()
9779 kshitij.so 1396
 
1397
    def getCostingForMarketplace(self, source, item_id):
1398
        try:
1399
            return to_t_marketplacepercentage(get_costing_for_marketplace(source, item_id))
1400
        finally:
1401
            close_session()
9621 manish.sha 1402
 
1403
    def getAllProductFeedSubmit(self):
1404
        try:
1405
            log_entry(self, "all ProductFeedSubmit requested")
1406
            feedSubmits = get_all_product_feed_submit()
1407
            ret_feedSubmits = []
1408
            for feedSubmit in feedSubmits:
1409
                if feedSubmit:
1410
                    ret_feedSubmits.append(to_t_product_feed_submit(feedSubmit))
1411
            return ret_feedSubmits
1412
        finally:
9776 vikram.rag 1413
            close_session()
1414
 
1415
    def getMarketPlaceItemsForPriceUpdate(self,source):
1416
        try:
1417
            items = get_all_marketplace_items_for_priceupdate(source) 
1418
            return [to_t_marketplace_itemprice(item) for item in items]
1419
        finally:
1420
            close_session()
9621 manish.sha 1421
 
9816 kshitij.so 1422
    def updateMarketPlacePriceUpdateStatus(self,skulist,timestamp,source):
9776 vikram.rag 1423
        try:
9816 kshitij.so 1424
            update_marketplace_priceupdate_status(skulist,timestamp,source)
9776 vikram.rag 1425
        finally:
1426
            close_session()
9895 vikram.rag 1427
 
9861 rajveer 1428
    def updateItemHoldInventory(self,itemHoldMap):
1429
        try:
1430
            update_item_hold_inventory(itemHoldMap)
1431
        finally:
9895 vikram.rag 1432
            close_session()        
1433
 
1434
    def updateNlcAtMarketplaces(self,item_id,vendor_id,nlc):
1435
        try:
1436
            update_nlc_at_marketplaces(item_id,vendor_id,nlc)
1437
        finally:
9861 rajveer 1438
            close_session()
9945 vikram.rag 1439
 
1440
    def getAllFlipkartItems(self):
1441
        try:
1442
            return [to_t_flipkart_item(item) for item in get_all_flipkart_items()]
1443
        finally:
1444
            close_session()
9895 vikram.rag 1445
 
10097 kshitij.so 1446
    def getFlipkartItem(self,item_id):
1447
        try:
1448
            return to_t_flipkart_item(get_flipkart_item(item_id))
1449
        finally:
1450
            close_session()
1451
 
1452
    def addOrUpdateFlipkartItem(self,flipkartitem):
1453
        try:
1454
            return add_or_update_flipkart_item(flipkartitem)
1455
        finally:    
1456
            close_session()
1457
 
1458
    def getFlipkartItemDetails(self,item_id):
1459
        try:
1460
            flipkartitem, flipkartInventory = get_flipkart_item_detail(item_id)
1461
            return to_t_flipkart_item_details(flipkartitem, flipkartInventory)
1462
        finally:
1463
            close_session()
1464
 
1465
    def getFlipkartItems(self,offset,limit):
1466
        try:
1467
            items = get_flipkart_items(offset,limit) 
1468
            return [to_t_flipkart_item_details(item,None) for item in items]
1469
        finally:
1470
            close_session()
1471
 
1472
    def searchFlipkartItems(self,searchterm,offset,limit):
11567 amit.gupta 1473
        flipkartitems = []
10097 kshitij.so 1474
        try:
1475
            search_result = search_flipkart_items(searchterm,offset,limit)
1476
            for flipkartitem in search_result:
1477
                flipkartitems.append(to_t_flipkart_item_details(flipkartitem,None))
1478
        finally:
1479
            close_session()
11592 amit.gupta 1480
        return flipkartitems
10097 kshitij.so 1481
 
1482
    def getCountForFlipkartItems(self):
1483
        try:
1484
            return get_count_for_flipkart_items()
1485
        finally:
1486
            close_session()
1487
 
1488
    def getFlipkartSearchResultCount(self,searchterms):
1489
        try:
1490
            return get_flipkart_search_result_count(searchterms)
1491
        finally:
1492
            close_session()
1493
 
1494
    def getAllFkItems(self):
1495
        try:
1496
            return [to_t_flipkart_item_details(item,None) for item in get_all_fk_items()]
1497
        finally:
1498
            close_session()
1499
 
10140 vikram.rag 1500
    def getFlipkartItemBySkyAtFlipkart(self,sku):
11567 amit.gupta 1501
        try:
1502
            return to_t_flipkart_item(get_flipkart_item_by_sku_at_flipkart(sku))
1503
        finally:
1504
            close_session()
10140 vikram.rag 1505
 
11015 kshitij.so 1506
    def getMarketplaceHistory(self,source, offset, itemId):
1507
        try:
1508
            return [to_t_market_place_history(item) for item in get_marketplace_history(source, offset, itemId)]
1509
        finally:
1510
            close_session()    
1511
 
11576 vikram.rag 1512
 
1513
    def getPrivateDealDetails(self,item_id):
1514
        try:
1515
            return to_t_private_deal(get_private_deal_details(item_id))
1516
        finally:
1517
            close_session()    
11592 amit.gupta 1518
 
11653 amit.gupta 1519
    def getAllActivePrivateDeals(self, itemIds=None, daysDelta=0):
11592 amit.gupta 1520
        try:
11653 amit.gupta 1521
            return get_all_active_private_deals(itemIds, daysDelta)
11592 amit.gupta 1522
        finally:
1523
            close_session()
11576 vikram.rag 1524
 
10909 vikram.rag 1525
    def getAllFbbListedItems(self):
10913 vikram.rag 1526
        try:
10909 vikram.rag 1527
            items = get_all_fbb_listed_items()
1528
            ret_items = []
1529
            for item in items:
1530
                if item:
1531
                    ret_items.append(to_t_Amazonlisted(item))
1532
            return ret_items
1533
        finally:
1534
            close_session()
10924 vikram.rag 1535
 
1536
    def getAllFbbPricingItems(self):
1537
        try:
1538
            items = get_all_fbb_pricing_items()
1539
            ret_items = []
1540
            for item in items:
1541
                if item:
1542
                    ret_items.append(to_t_Amazonlisted(item))
1543
            return ret_items
1544
        finally:
1545
            close_session()
11567 amit.gupta 1546
 
1547
 
11015 kshitij.so 1548
    def getMarketplaceHistoryByDate(self,source,startDate,endDate,offset,limit,itemId):
1549
        try:
1550
            return [to_t_market_place_history(item) for item in get_marketplace_history_by_date(source,startDate,endDate,offset,limit,itemId)]
1551
        finally:
1552
            close_session()
1553
 
1554
    def getCountForMarketplaceHistory(self,source,itemId):
1555
        try:
1556
            return get_count_for_marketplaceHistory(source,itemId)
1557
        finally:
12133 kshitij.so 1558
            close_session()         
11576 vikram.rag 1559
 
1560
    def getPrivateDealItems(self,offset,limit):
1561
        try:
1562
            items = []
1563
            for item in get_private_deal_items(offset,limit):
1564
                items.append(to_t_item(item))
1565
            return items 
1566
        finally:
1567
            close_session()
1568
 
1569
    def addOrUpdatePrivateDeal(self,privatedeal):                
1570
        try:
1571
            return add_or_update_private_deal(privatedeal)
1572
        finally:
11635 vikram.rag 1573
            close_session()
11015 kshitij.so 1574
 
11635 vikram.rag 1575
    def getPrivateDealsCatalogIds(self, start_index, total_items):
1576
        """
1577
        Parameters:
1578
         - beginIndex
1579
         - totalItems
1580
        """
1581
        try:
1582
            return get_private_deals_catalog_ids(start_index, total_items)
1583
        finally:
1584
            close_session()
11645 amit.gupta 1585
 
1586
    def getPrivateDealsCount(self,):
1587
        try:
1588
            return get_private_deals_count()
1589
        finally:
1590
            close_session()
11905 kshitij.so 1591
 
1592
    def getAmazonOutSyncItems(self,item_id):
1593
        try:
1594
            return to_t_amazonoutofsync(get_amazon_out_of_sync(item_id))
1595
        finally:
1596
            close_session()
1597
 
1598
    def getAllPrivateDealsComparison(self):
1599
        try:
1600
            return [to_t_private_deals_comparison(item) for item in get_all_private_deals_comparison()]
1601
        finally:
1602
            close_session()
12133 kshitij.so 1603
 
1604
    def getAllSnapdealMarketplaceItem(self):
1605
        try:
1606
            return [to_t_snapdeal_marketplace_item(item) for item in get_all_snapdeal_marketplaceItem()]
1607
        finally:
1608
            close_session()
1609
 
1610
    def getAllFlipkartMarketplaceItem(self):
1611
        try:
1612
            return [to_t_flipkart_marketplace_item(item) for item in get_all_flipkart_marketplaceItem()]
1613
        finally:
1614
            close_session()
12243 kshitij.so 1615
 
1616
    def addCompetitorScraping(self,competitorScrapingMap):
1617
        try:
1618
            add_competitor_scraping(competitorScrapingMap)
1619
        finally:
1620
            close_session()
1621
 
1622
    def getPreviousCompetitorScraping(self,delta):
1623
        try:
1624
            return get_previous_competitor_scraping(delta)
1625
        finally:
1626
            close_session()
12256 kshitij.so 1627
 
1628
    def getUploadResultById(self,uploadId):
1629
        try:
1630
            return [to_t_competitor_pricing(item) for item in get_upload_result_by_id(uploadId)]
1631
        finally:
1632
            close_session()
12363 kshitij.so 1633
 
1634
    def addAmazonPromotion(self,amazonPromotions):
1635
        try:
1636
            return add_amazon_promotion(amazonPromotions)
1637
        except:
12947 kshitij.so 1638
            raise CatalogServiceException(102, "Exception in adding amazon promotion") 
12363 kshitij.so 1639
        finally:
1640
            close_session()
1641
 
1642
    def getAmazonPromotion(self,startDate,endDate):
1643
        try:
1644
            return [to_t_amazon_promotion(amazonPromotion) for amazonPromotion in get_amazon_promotion(startDate,endDate)]
1645
        finally:
1646
            close_session()
1647
 
1648
    def updateAmazonPromotion(self,amazonPromotions):
1649
        try:
12667 kshitij.so 1650
            return update_amazon_promotion(amazonPromotions)
1651
        except:
1652
            return False
12363 kshitij.so 1653
        finally:
1654
            close_session()
12567 amit.gupta 1655
 
1656
    def getVatRates(self,itemId, categoryId):
1657
        try:
1658
            return get_vat_rates(itemId, categoryId)
1659
        finally:
1660
            close_session()
1661
 
1662
    def updateItemStateVat(self, itemId, stateVat):
1663
        try:
1664
            return update_item_state_vat(itemId, stateVat)
1665
        except:
1666
            return False
1667
        finally:
1668
            close_session()
1669
 
1670
    def markPartiallyActive(self, itemId, categoryId):
1671
        try:
1672
            mark_partially_active(itemId, categoryId)
1673
        finally:
1674
            close_session()
1675
            return False
12620 amit.gupta 1676
 
1677
    def getExAffiliateItemInfo(self, ):
12667 kshitij.so 1678
        return get_ex_affiliate_item_info()
11635 vikram.rag 1679
 
12888 kshitij.so 1680
    def getAllItemstoListOnFbg(self):
1681
        try:
1682
            fbg_items = []
1683
            for item in get_all_items_to_list_on_fbg():
1684
                fbg_items.append(to_t_Amazonlisted(item))
1685
            return fbg_items
1686
        finally:
1687
            close_session()
1688
 
1689
    def getAllFbgListedItems(self):
1690
        try:
1691
            items = get_all_fbg_listed_items()
1692
            ret_items = []
1693
            for item in items:
1694
                if item:
1695
                    ret_items.append(to_t_Amazonlisted(item))
1696
            return ret_items
1697
        finally:
1698
            close_session()
1699
 
1700
 
1701
 
9776 vikram.rag 1702
if __name__ == '__main__':
1703
    items = get_all_alive_items()
1704
    ret_items = []
1705
    for item in items:
1706
        if item:
1707
            ret_items.append(to_t_item(item))
1708
    print ret_items
1709
 
1710
 
4934 amit.gupta 1711
def is_valid(item):
1712
    if item.status in [status.ACTIVE, status.PAUSED, status.PAUSED_BY_RISK]:
4936 amit.gupta 1713
        if item.startDate:
1714
            return not(datetime.datetime.now() < item.startDate or item.sellingPrice == 0)
1715
        else:
1716
            return True
6256 rajveer 1717
    elif item.status == status.COMING_SOON:
1718
        return True
1719
    else:
11173 vikram.rag 1720
        return False