Subversion Repositories SmartDukaan

Rev

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