Subversion Repositories SmartDukaan

Rev

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