Subversion Repositories SmartDukaan

Rev

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

Rev Author Line No. Line
13829 kshitij.so 1
import urllib2
2
import simplejson as json
3
import pymongo
4
from dtr.utils.utils import to_java_date
13918 kshitij.so 5
from datetime import datetime, timedelta
13829 kshitij.so 6
from operator import itemgetter
7
from dtr.utils.AmazonPriceOnlyScraper import AmazonScraper
14309 kshitij.so 8
from dtr.utils import AmazonDealScraper
14121 kshitij.so 9
from dtr.utils import FlipkartScraper,NewFlipkartScraper
14324 kshitij.so 10
from dtr.storage.MemCache import MemCache
14334 kshitij.so 11
from functools import partial
12
import threading
14760 kshitij.so 13
from dtr.utils.utils import getCashBack
14794 kshitij.so 14
import traceback
15174 kshitij.so 15
from shop2020.config.client.ConfigClient import ConfigClient
13829 kshitij.so 16
 
15174 kshitij.so 17
config_client = ConfigClient()
18
host_memCache = config_client.get_property('mem_cache_host_dtr')
19
host = config_client.get_property('mongo_dtr_host')
14324 kshitij.so 20
 
15174 kshitij.so 21
mc = MemCache(host_memCache)
22
 
23
 
13829 kshitij.so 24
con = None
14205 kshitij.so 25
SOURCE_MAP = {'AMAZON':1,'FLIPKART':2,'SNAPDEAL':3,'SAHOLIC':4}
13829 kshitij.so 26
 
27
headers = { 
28
           'User-agent':'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.56 Safari/535.11',
29
            'Accept' : 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',      
30
            'Accept-Language' : 'en-US,en;q=0.8',                     
31
            'Accept-Charset' : 'ISO-8859-1,utf-8;q=0.7,*;q=0.3'
32
        }
33
 
15174 kshitij.so 34
def get_mongo_connection(port=27017):
13829 kshitij.so 35
    global con
36
    if con is None:
37
        print "Establishing connection %s host and port %d" %(host,port)
38
        try:
39
            con = pymongo.MongoClient(host, port)
40
        except Exception, e:
41
            print e
42
            return None
43
    return con
44
 
14828 kshitij.so 45
def returnLatestPrice(data, source_id, ignoreLastUpdated = True):
13918 kshitij.so 46
    now = datetime.now()
13829 kshitij.so 47
    if source_id == 1:
48
        try:
13918 kshitij.so 49
            if data['identifier'] is None or len(data['identifier'].strip())==0:
13829 kshitij.so 50
                return {}
13918 kshitij.so 51
 
14577 kshitij.so 52
            if data['dealFlag'] ==1 and data['dealType'] ==1:
53
                data['marketPlaceUrl'] = "http://www.amazon.in/dp/%s"%(data['identifier'].strip())
54
 
13918 kshitij.so 55
            try:
14828 kshitij.so 56
                if ignoreLastUpdated and data['priceUpdatedOn'] > to_java_date(now - timedelta(minutes=5)):
13918 kshitij.so 57
                    print "sku id is already updated",data['_id'] 
13920 kshitij.so 58
                    return {'_id':data['_id'],'available_price':data['available_price'],'in_stock':data['in_stock'],'source_id':1,'source_product_name':data['source_product_name'],'marketPlaceUrl':data['marketPlaceUrl'],'thumbnail':data['thumbnail']}
13918 kshitij.so 59
            except:
60
                pass
61
 
62
 
13829 kshitij.so 63
            url = "http://www.amazon.in/gp/offer-listing/%s/ref=olp_sort_ps"%(data['identifier'])
64
            lowestPrice = 0.0
14309 kshitij.so 65
            try:
66
                if data['dealFlag'] ==1 and data['dealType'] ==1:
67
                    print "Inside deal"
68
                    deal_url = "http://www.amazon.in/dp/%s"%(data['identifier'].strip())
69
                    print deal_url
70
                    dealScraperAmazon = AmazonDealScraper.AmazonScraper()
71
                    lowestPrice = dealScraperAmazon.read(deal_url)
72
                    print lowestPrice
73
                    if lowestPrice == 0:
74
                        raise
75
                else:    
76
                    scraperAmazon = AmazonScraper()
77
                    lowestPrice = scraperAmazon.read(url)
78
            except Exception as e:
79
                print e
80
                scraperAmazon = AmazonScraper()
81
                lowestPrice = scraperAmazon.read(url)
13929 kshitij.so 82
            print "LowestPrice ",lowestPrice
13829 kshitij.so 83
            inStock = 0
84
            if lowestPrice > 0:
85
                inStock = 1
86
            if lowestPrice > 0:
13971 kshitij.so 87
                get_mongo_connection().Catalog.MasterData.update({'_id':data['_id']}, {'$set' : {'available_price':lowestPrice,'updatedOn':to_java_date(now),'priceUpdatedOn':to_java_date(now),'in_stock':inStock}}, multi=True)
14309 kshitij.so 88
                get_mongo_connection().Catalog.Deals.update({'_id':data['_id']}, {'$set' : {'available_price':lowestPrice , 'in_stock':inStock,'dealType':data['dealType']}}, multi=True)
13829 kshitij.so 89
            else:
13929 kshitij.so 90
                lowestPrice = data['available_price']
13977 kshitij.so 91
                get_mongo_connection().Catalog.MasterData.update({'_id':data['_id']}, {'$set' : {'updatedOn':to_java_date(now),'in_stock':0,'priceUpdatedOn':to_java_date(now)}}, multi=True)
14309 kshitij.so 92
                get_mongo_connection().Catalog.Deals.update({'_id':data['_id']}, {'$set' : {'in_stock':0,'dealType':data['dealType']}}, multi=True)
13918 kshitij.so 93
 
13829 kshitij.so 94
            return {'_id':data['_id'],'available_price':lowestPrice,'in_stock':inStock,'source_id':1,'source_product_name':data['source_product_name'],'marketPlaceUrl':data['marketPlaceUrl'],'thumbnail':data['thumbnail']}
14834 kshitij.so 95
        except Exception as e:
96
            print "Exception for _id %d and source %s"%(data['_id'], source_id)
97
            print e
13920 kshitij.so 98
            return {'_id':data['_id'],'available_price':data['available_price'],'in_stock':data['in_stock'],'source_id':1,'source_product_name':data['source_product_name'],'marketPlaceUrl':data['marketPlaceUrl'],'thumbnail':data['thumbnail']}
13829 kshitij.so 99
 
14203 kshitij.so 100
    elif source_id ==4:
14207 kshitij.so 101
 
14203 kshitij.so 102
        try:
14212 kshitij.so 103
            if data['identifier'] is None or len(data['identifier'].strip())==0:
104
                return {}
105
 
106
            try:
14828 kshitij.so 107
                if ignoreLastUpdated and data['priceUpdatedOn'] > to_java_date(now - timedelta(minutes=5)):
14212 kshitij.so 108
                    print "sku id is already updated",data['_id'] 
109
                    return {'_id':data['_id'],'available_price':data['available_price'],'in_stock':data['in_stock'],'source_id':4,'source_product_name':data['source_product_name'],'marketPlaceUrl':data['marketPlaceUrl'],'thumbnail':data['thumbnail']}
110
            except:
111
                pass
112
 
14840 kshitij.so 113
            url = "http://50.116.3.101:8080/mobileapi/dtr-pricing?id=%s"%(data['identifier'])
14212 kshitij.so 114
            lowestPrice = 0.0
115
            instock = 0
116
            req = urllib2.Request(url,headers=headers)
117
            response = urllib2.urlopen(req)
118
            json_input = response.read()
119
            response.close()
120
            priceInfo = json.loads(json_input)
121
            lowestPrice = priceInfo['response']['sellingPrice']
122
            if lowestPrice > 0:
123
                instock = 1
124
            if instock  == 1:
125
                get_mongo_connection().Catalog.MasterData.update({'_id':data['_id']}, {'$set' : {'available_price':lowestPrice,'updatedOn':to_java_date(now),'priceUpdatedOn':to_java_date(now),'in_stock':instock}}, multi=True)
126
                get_mongo_connection().Catalog.Deals.update({'_id':data['_id']}, {'$set' : {'available_price':lowestPrice , 'in_stock':instock}}, multi=True)
127
            else:
128
                lowestPrice = data['available_price']
129
                get_mongo_connection().Catalog.MasterData.update({'_id':data['_id']}, {'$set' : {'updatedOn':to_java_date(now),'in_stock':instock,'priceUpdatedOn':to_java_date(now)}}, multi=True)
130
                get_mongo_connection().Catalog.Deals.update({'_id':data['_id']}, {'$set' : {'in_stock':instock}}, multi=True)
131
 
132
            return {'_id':data['_id'],'available_price':lowestPrice,'in_stock':instock,'source_id':4,'source_product_name':data['source_product_name'],'marketPlaceUrl':data['marketPlaceUrl'],'thumbnail':data['thumbnail']}
14834 kshitij.so 133
 
134
        except Exception as e:
135
            print "Exception for _id %d and source %s"%(data['_id'], source_id)
136
            print e
14212 kshitij.so 137
            return {'_id':data['_id'],'available_price':data['available_price'],'in_stock':data['in_stock'],'source_id':4,'source_product_name':data['source_product_name'],'marketPlaceUrl':data['marketPlaceUrl'],'thumbnail':data['thumbnail']}
14203 kshitij.so 138
 
14207 kshitij.so 139
 
13829 kshitij.so 140
    elif source_id ==3:
141
        try:
13918 kshitij.so 142
            if data['identifier'] is None or len(data['identifier'].strip())==0:
13829 kshitij.so 143
                return {}
13918 kshitij.so 144
 
145
            try:
14828 kshitij.so 146
                if ignoreLastUpdated and data['priceUpdatedOn'] > to_java_date(now - timedelta(minutes=5)):
13920 kshitij.so 147
                    print "sku id is already updated",data['_id']
148
                    return {'_id':data['_id'],'available_price':data['available_price'],'in_stock':data['in_stock'],'source_id':3,'source_product_name':data['source_product_name'],'marketPlaceUrl':data['marketPlaceUrl'],'thumbnail':data['thumbnail']}
13919 kshitij.so 149
 
150
            except Exception as e:
13920 kshitij.so 151
                print "Exception snapdeal"
13919 kshitij.so 152
                print e
13918 kshitij.so 153
                pass
154
 
155
 
13829 kshitij.so 156
            url="http://www.snapdeal.com/acors/json/gvbps?supc=%s&catId=175&sort=sellingPrice"%(data['identifier'])
157
            req = urllib2.Request(url,headers=headers)
158
            response = urllib2.urlopen(req)
14210 kshitij.so 159
            json_input = response.read()
14188 kshitij.so 160
            response.close()
13829 kshitij.so 161
            vendorInfo = json.loads(json_input)
162
            lowestOfferPrice = 0
163
            inStock = 0
164
            for vendor in vendorInfo:
165
                lowestOfferPrice = float(vendor['sellingPrice'])
166
                stock = vendor['buyableInventory']
167
                if stock > 0 and lowestOfferPrice > 0:
168
                    inStock = 1
169
                    break
170
 
171
            print lowestOfferPrice
172
            print inStock
173
            print "*************"
174
            if inStock  == 1:
13971 kshitij.so 175
                get_mongo_connection().Catalog.MasterData.update({'_id':data['_id']}, {'$set' : {'available_price':lowestOfferPrice,'updatedOn':to_java_date(now),'priceUpdatedOn':to_java_date(now),'in_stock':inStock}}, multi=True)
13918 kshitij.so 176
                get_mongo_connection().Catalog.Deals.update({'_id':data['_id']}, {'$set' : {'available_price':lowestOfferPrice , 'in_stock':inStock}}, multi=True)
13829 kshitij.so 177
            else:
13929 kshitij.so 178
                lowestOfferPrice = data['available_price']
13977 kshitij.so 179
                get_mongo_connection().Catalog.MasterData.update({'_id':data['_id']}, {'$set' : {'updatedOn':to_java_date(now),'in_stock':inStock,'priceUpdatedOn':to_java_date(now)}}, multi=True)
13918 kshitij.so 180
                get_mongo_connection().Catalog.Deals.update({'_id':data['_id']}, {'$set' : {'in_stock':inStock}}, multi=True)
181
 
13829 kshitij.so 182
            return {'_id':data['_id'],'available_price':lowestOfferPrice,'in_stock':inStock,'source_id':3,'source_product_name':data['source_product_name'],'marketPlaceUrl':data['marketPlaceUrl'],'thumbnail':data['thumbnail']}
14834 kshitij.so 183
        except Exception as e:
184
            print "Exception for _id %d and source %s"%(data['_id'], source_id)
185
            print e
13920 kshitij.so 186
            return {'_id':data['_id'],'available_price':data['available_price'],'in_stock':data['in_stock'],'source_id':3,'source_product_name':data['source_product_name'],'marketPlaceUrl':data['marketPlaceUrl'],'thumbnail':data['thumbnail']}
13829 kshitij.so 187
 
188
    elif source_id == 2:
189
        try:
13918 kshitij.so 190
            if data['identifier'] is None or len(data['identifier'].strip())==0:
13829 kshitij.so 191
                return {}
13918 kshitij.so 192
 
193
            try:
14828 kshitij.so 194
                if ignoreLastUpdated and data['priceUpdatedOn'] > to_java_date(now - timedelta(minutes=5)):
13918 kshitij.so 195
                    print "sku id is already updated",data['_id']
13920 kshitij.so 196
                    return {'_id':data['_id'],'available_price':data['available_price'],'in_stock':data['in_stock'],'source_id':2,'source_product_name':data['source_product_name'],'marketPlaceUrl':data['marketPlaceUrl'],'thumbnail':data['thumbnail']} 
13918 kshitij.so 197
            except:
198
                pass
199
 
200
            lowestSp = 0
201
            inStock = 0
14189 kshitij.so 202
            scraperProductPage = NewFlipkartScraper.FlipkartProductPageScraper()
14121 kshitij.so 203
            try:
204
                if data['marketPlaceUrl']!="" or data['marketPlaceUrl'] !="http://www.flipkart.com/ps/%s"%(data['identifier']):
205
                    result = scraperProductPage.read(data['marketPlaceUrl'])
14124 kshitij.so 206
                    print result
14125 kshitij.so 207
                    if result.get('lowestSp')!=0:
208
                        lowestSp = result.get('lowestSp')
14121 kshitij.so 209
                        inStock = result.get('inStock')
210
            except:
211
                print "Unable to scrape product page ",data['identifier']
212
            if lowestSp ==0:
213
                url = "http://www.flipkart.com/ps/%s"%(data['identifier'])
14189 kshitij.so 214
                scraperFk = FlipkartScraper.FlipkartScraper()
14121 kshitij.so 215
                vendorsData = scraperFk.read(url)
216
                sortedVendorsData = []
217
                sortedVendorsData = sorted(vendorsData, key=itemgetter('sellingPrice'))
218
                print "data",sortedVendorsData
219
                for vData in sortedVendorsData:
220
                    lowestSp = vData['sellingPrice']
221
                    break
222
                if lowestSp > 0:
223
                    inStock = 1
13829 kshitij.so 224
            print lowestSp
225
            print inStock
226
            if lowestSp > 0:
13971 kshitij.so 227
                get_mongo_connection().Catalog.MasterData.update({'_id':data['_id']}, {'$set' : {'available_price':lowestSp,'updatedOn':to_java_date(now),'priceUpdatedOn':to_java_date(now),'in_stock':inStock}}, multi=True)
13918 kshitij.so 228
                get_mongo_connection().Catalog.Deals.update({'_id':data['_id']}, {'$set' : {'available_price':lowestSp , 'in_stock':inStock}}, multi=True)
13829 kshitij.so 229
            else:
13929 kshitij.so 230
                lowestSp = data['available_price']
13977 kshitij.so 231
                get_mongo_connection().Catalog.MasterData.update({'_id':data['_id']}, {'$set' : {'updatedOn':to_java_date(now),'in_stock':inStock,'priceUpdatedOn':to_java_date(now)}}, multi=True)
13918 kshitij.so 232
                get_mongo_connection().Catalog.Deals.update({'_id':data['_id']}, {'$set' : {'in_stock':inStock}}, multi=True)
233
 
13829 kshitij.so 234
            return {'_id':data['_id'],'available_price':lowestSp,'in_stock':inStock,'source_id':2,'source_product_name':data['source_product_name'],'marketPlaceUrl':data['marketPlaceUrl'],'thumbnail':data['thumbnail']}
14342 kshitij.so 235
 
14834 kshitij.so 236
        except Exception as e:
237
            print "Exception for _id %d and source %s"%(data['_id'], source_id)
238
            print e
13920 kshitij.so 239
            return {'_id':data['_id'],'available_price':data['available_price'],'in_stock':data['in_stock'],'source_id':2,'source_product_name':data['source_product_name'],'marketPlaceUrl':data['marketPlaceUrl'],'thumbnail':data['thumbnail']}
13829 kshitij.so 240
    else:
241
        return {}
13918 kshitij.so 242
 
14324 kshitij.so 243
 
244
def populateNegativeDeals():
245
    negativeDeals = get_mongo_connection().Catalog.NegativeDeals.find().distinct('sku')
246
    mc.set("negative_deals", negativeDeals, 600)
247
 
13918 kshitij.so 248
def recomputeDeal(skuBundleId):
249
    """Lets recompute deal for this bundle"""
250
    print "Recomputing for bundleId",skuBundleId
13829 kshitij.so 251
 
13918 kshitij.so 252
    similarItems = list(get_mongo_connection().Catalog.Deals.find({'skuBundleId':skuBundleId}).sort([('available_price',pymongo.ASCENDING)]))
253
    bestPrice = float("inf")
254
    bestOne = None
255
    bestSellerPoints = 0
256
    toUpdate = []
257
    for similarItem in similarItems:
14332 kshitij.so 258
        if mc.get("negative_deals") is None:
14324 kshitij.so 259
            populateNegativeDeals()
14332 kshitij.so 260
        if similarItem['in_stock'] == 0 or similarItem['maxprice'] is None or similarItem['maxprice'] < similarItem['available_price'] or similarItem['_id'] in mc.get("negative_deals"):
13918 kshitij.so 261
            get_mongo_connection().Catalog.Deals.update({ '_id' : similarItem['_id'] }, {'$set':{'showDeal':0 }})
262
            continue
263
        if similarItem['available_price'] < bestPrice:
264
            bestOne = similarItem
265
            bestPrice = similarItem['available_price']
266
            bestSellerPoints = similarItem['bestSellerPoints']
267
        elif similarItem['available_price'] == bestPrice and bestSellerPoints < similarItem['bestSellerPoints']:
268
            bestOne = similarItem
269
            bestPrice = similarItem['available_price']
270
            bestSellerPoints = similarItem['bestSellerPoints']
271
        else:
272
            pass
273
    if bestOne is not None:
274
        for similarItem in similarItems:
275
            toUpdate.append(similarItem['_id'])
276
        toUpdate.remove(bestOne['_id'])
277
        get_mongo_connection().Catalog.Deals.update({ '_id' : bestOne['_id'] }, {'$set':{'showDeal':1 }})
278
    if len(toUpdate) > 0:
279
        get_mongo_connection().Catalog.Deals.update({ '_id' : { "$in": toUpdate } }, {'$set':{'showDeal':0 }},upsert=False, multi=True)
14342 kshitij.so 280
 
281
    print "Done with recomputing"
13829 kshitij.so 282
 
283
def getLatestPrice(skuBundleId, source_id):
284
    temp = []
285
    itemIds = list(get_mongo_connection().Catalog.MasterData.find({'skuBundleId':skuBundleId,'source_id' : source_id}))
286
    for item in itemIds:
14309 kshitij.so 287
        item['dealFlag'] = 0
288
        item['dealType'] = 0
289
        manualDeals = list(get_mongo_connection().Catalog.ManualDeals.find({'startDate':{'$lte':to_java_date(datetime.now())},'endDate':{'$gte':to_java_date(datetime.now())},'source_id':source_id, 'sku':item['_id']}))
290
        if len(manualDeals) > 0:
291
            item['dealFlag'] = 1
14760 kshitij.so 292
            item['dealType'] =manualDeals[0]['dealType']
293
        info = returnLatestPrice(item, source_id)
14794 kshitij.so 294
        print info
14760 kshitij.so 295
        try:
296
            cashBack = getCashBack(item['_id'], item['source_id'], item['category_id'], mc, 'localhost')
14794 kshitij.so 297
            print "CashBack is ",cashBack
14760 kshitij.so 298
            if not cashBack or cashBack.get('cash_back_status')!=1:
14801 kshitij.so 299
                info['cash_back_type'] = 0
300
                info['cash_back'] = 0
14760 kshitij.so 301
            else:
302
                if cashBack['cash_back_type'] in (1,2):
303
                    info['cash_back_type'] = cashBack['cash_back_type']
304
                    info['cash_back'] = float(cashBack['cash_back'])
305
                else:
14801 kshitij.so 306
                    info['cash_back_type'] = 0
307
                    info['cash_back'] = 0
14760 kshitij.so 308
        except Exception as cashBackEx:
14794 kshitij.so 309
            traceback.print_exc()
14760 kshitij.so 310
            print "Error calculating cashback."
311
            info['cash_back_type'] = 0
312
            info['cash_back'] = 0
14794 kshitij.so 313
        print "info is ",info
14760 kshitij.so 314
        temp.append(info)
14367 kshitij.so 315
    try:
316
        thread = threading.Thread(target=recomputeDeal, args = (skuBundleId,))
317
        thread.daemon = True
318
        thread.start()    
319
    except:
320
        print "Unable to compute deal for ",skuBundleId
13829 kshitij.so 321
    return temp
322
 
13864 kshitij.so 323
def getLatestPriceById(id):
324
    item = list(get_mongo_connection().Catalog.MasterData.find({'_id':id}))
14309 kshitij.so 325
    item[0]['dealFlag'] = 0
326
    item[0]['dealType'] = 0
327
    manualDeals = list(get_mongo_connection().Catalog.ManualDeals.find({'startDate':{'$lte':to_java_date(datetime.now())},'endDate':{'$gte':to_java_date(datetime.now())},'source_id':item[0]['source_id'], 'sku':item[0]['_id']}))
328
    if len(manualDeals) > 0:
329
        item[0]['dealFlag'] = 1
330
        item[0]['dealType'] =manualDeals[0]['dealType'] 
14367 kshitij.so 331
 
14431 kshitij.so 332
    info = returnLatestPrice(item[0], item[0]['source_id'])
14794 kshitij.so 333
    print info
14367 kshitij.so 334
    try:
14794 kshitij.so 335
        cashBack = getCashBack(item[0]['_id'], item[0]['source_id'], item[0]['category_id'], mc, 'localhost')
336
        print "CashBack is ",cashBack
14760 kshitij.so 337
        if not cashBack or cashBack.get('cash_back_status')!=1:
14801 kshitij.so 338
            info['cash_back_type'] = 0
339
            info['cash_back'] = 0
14760 kshitij.so 340
        else:
341
            if cashBack['cash_back_type'] in (1,2):
342
                info['cash_back_type'] = cashBack['cash_back_type']
343
                info['cash_back'] = float(cashBack['cash_back'])
344
            else:
14801 kshitij.so 345
                info['cash_back_type'] = 0
346
                info['cash_back'] = 0
14760 kshitij.so 347
    except Exception as cashBackEx:
14794 kshitij.so 348
        traceback.print_exc()
14760 kshitij.so 349
        print cashBackEx
350
        print "Error calculating cashback."
351
        info['cash_back_type'] = 0
352
        info['cash_back'] = 0
353
    try:
14367 kshitij.so 354
        thread = threading.Thread(target=recomputeDeal, args = (item[0]['skuBundleId'],))
355
        thread.daemon = True
356
        thread.start()    
357
    except:
358
        print "Unable to compute deal for ",item[0]['skuBundleId']
14431 kshitij.so 359
    return info
13829 kshitij.so 360
 
14828 kshitij.so 361
def updatePriceForNotificationBundles(skuBundleId):
14833 kshitij.so 362
    itemIds = list(get_mongo_connection().Catalog.MasterData.find({'skuBundleId':skuBundleId,'priceUpdatedOn':{'$lte':to_java_date(datetime.now() - timedelta(minutes=3))},'source_id':{"$in":SOURCE_MAP.values()}}))
14828 kshitij.so 363
    for item in itemIds:
14833 kshitij.so 364
        print item['_id']
14828 kshitij.so 365
        item['dealFlag'] = 0
366
        item['dealType'] = 0
367
        manualDeals = list(get_mongo_connection().Catalog.ManualDeals.find({'startDate':{'$lte':to_java_date(datetime.now())},'endDate':{'$gte':to_java_date(datetime.now())},'source_id':item['source_id'], 'sku':item['_id']}))
368
        if len(manualDeals) > 0:
369
            item['dealFlag'] = 1
370
            item['dealType'] =manualDeals[0]['dealType']
371
        info = returnLatestPrice(item, item['source_id'],False)
372
        print info
373
 
13829 kshitij.so 374
def main():
14834 kshitij.so 375
    print "retuned %s"%(str(getLatestPrice(2313, 4)))
13829 kshitij.so 376
 
377
if __name__=='__main__':
13971 kshitij.so 378
    main()
379