Subversion Repositories SmartDukaan

Rev

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