Subversion Repositories SmartDukaan

Rev

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