Subversion Repositories SmartDukaan

Rev

Rev 18764 | Rev 19686 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

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