Subversion Repositories SmartDukaan

Rev

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