Subversion Repositories SmartDukaan

Rev

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