Subversion Repositories SmartDukaan

Rev

Rev 16429 | Rev 16869 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 16429 Rev 16502
Line 32... Line 32...
32
            'Accept' : 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',      
32
            'Accept' : 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',      
33
            'Accept-Language' : 'en-US,en;q=0.8',                     
33
            'Accept-Language' : 'en-US,en;q=0.8',                     
34
            'Accept-Charset' : 'ISO-8859-1,utf-8;q=0.7,*;q=0.3'
34
            'Accept-Charset' : 'ISO-8859-1,utf-8;q=0.7,*;q=0.3'
35
        }
35
        }
36
 
36
 
37
ignoreItems = [24291, 24102, 24101]
-
 
38
 
37
 
39
def get_mongo_connection(host=options.mongoHost, port=27017):
38
def get_mongo_connection(host=options.mongoHost, port=27017):
40
    global con
39
    global con
41
    if con is None:
40
    if con is None:
42
        print "Establishing connection %s host and port %d" %(host,port)
41
        print "Establishing connection %s host and port %d" %(host,port)
Line 54... Line 53...
54
        snapdealBestSellers = list(get_mongo_connection().Catalog.MasterData.find({'skuBundleId':bestSeller['skuBundleId'],'source_id':3}))
53
        snapdealBestSellers = list(get_mongo_connection().Catalog.MasterData.find({'skuBundleId':bestSeller['skuBundleId'],'source_id':3}))
55
        for data in snapdealBestSellers:
54
        for data in snapdealBestSellers:
56
            if not toScrapMap.has_key(data['_id']):
55
            if not toScrapMap.has_key(data['_id']):
57
                data['dealFlag'] = 0
56
                data['dealFlag'] = 0
58
                data['dealType'] = 0
57
                data['dealType'] = 0
59
                data['dealPoints'] = 0
-
 
60
                data['manualDealThresholdPrice'] = None
-
 
61
                toScrapMap[data['_id']] = data
58
                toScrapMap[data['_id']] = data
62
    dealFlagged = list(get_mongo_connection().Catalog.Deals.find({'source_id':3,'showDeal':1,'totalPoints':{'$gt':-100}}))
59
    dealFlagged = list(get_mongo_connection().Catalog.Deals.find({'source_id':3,'showDeal':1,'totalPoints':{'$gt':-100}}))
63
    for deal in dealFlagged:
60
    for deal in dealFlagged:
64
        if not toScrapMap.has_key(deal['_id']):
61
        if not toScrapMap.has_key(deal['_id']):
65
            data = list(get_mongo_connection().Catalog.MasterData.find({'_id':deal['_id']}))
62
            data = list(get_mongo_connection().Catalog.MasterData.find({'_id':deal['_id']}))
66
            data[0]['dealFlag'] = 0
63
            data[0]['dealFlag'] = 0
67
            data[0]['dealType'] = 0
64
            data[0]['dealType'] = 0
68
            data[0]['dealPoints'] = 0
-
 
69
            data[0]['manualDealThresholdPrice'] = None
-
 
70
            toScrapMap[deal['_id']] = data[0]
65
            toScrapMap[deal['_id']] = data[0]
71
    manualDeals = list(get_mongo_connection().Catalog.ManualDeals.find({'startDate':{'$lte':to_java_date(datetime.now())},'endDate':{'$gte':to_java_date(datetime.now())},'source_id':3}))
66
    manualDeals = list(get_mongo_connection().Catalog.ManualDeals.find({'startDate':{'$lte':to_java_date(datetime.now())},'endDate':{'$gte':to_java_date(datetime.now())},'source_id':3}))
72
    for manualDeal in manualDeals:
67
    for manualDeal in manualDeals:
73
        if not toScrapMap.has_key(manualDeal['sku']):
68
        if not toScrapMap.has_key(manualDeal['sku']):
74
            data = list(get_mongo_connection().Catalog.MasterData.find({'_id':manualDeal['sku']}))
69
            data = list(get_mongo_connection().Catalog.MasterData.find({'_id':manualDeal['sku']}))
75
            if len(data) > 0:
70
            if len(data) > 0:
76
                data[0]['dealFlag'] = 1
71
                data[0]['dealFlag'] = 1
77
                data[0]['dealType'] = manualDeal['dealType']
72
                data[0]['dealType'] = manualDeal['dealType']
78
                data[0]['dealPoints'] = manualDeal['dealPoints']
-
 
79
                data[0]['manualDealThresholdPrice'] = manualDeal['dealThresholdPrice']
-
 
80
                toScrapMap[manualDeal['sku']] = data[0]
73
                toScrapMap[manualDeal['sku']] = data[0]
81
        else:
74
        else:
82
            data = toScrapMap.get(manualDeal['sku'])
75
            data = toScrapMap.get(manualDeal['sku'])
83
            data['dealFlag'] = 1
76
            data['dealFlag'] = 1
84
            data['dealType'] = manualDeal['dealType']
77
            data['dealType'] = manualDeal['dealType']
85
            data['dealPoints'] = manualDeal['dealPoints']
-
 
86
            data['manualDealThresholdPrice'] = manualDeal['dealThresholdPrice']
-
 
-
 
78
    
87
    for val in toScrapMap.values():
79
    for val in toScrapMap.values():
88
        updatePrices(val)
80
        updatePrices(val)
89
#    pool = ThreadPool(cpu_count() *2)
81
#    pool = ThreadPool(cpu_count() *2)
90
#    offset = 0
82
#    offset = 0
91
#    limit =100
83
#    limit =100
Line 96... Line 88...
96
#    pool.join()
88
#    pool.join()
97
#    print "joining threads at %s"%(str(datetime.now()))
89
#    print "joining threads at %s"%(str(datetime.now()))
98
 
90
 
99
 
91
 
100
def updatePrices(data):
92
def updatePrices(data):
101
    if data['_id'] in ignoreItems:
93
    if data.get('ignorePricing') ==1:
102
        print "Ignored items returning for %d"%(data['_id'])
94
        print "Ignored items returning for %d"%(data['_id'])
103
        return
95
        return
104
    if data['source_id']!=3:
96
    if data['source_id']!=3:
105
        return
97
        return
106
    print data['identifier']
98
    print data['identifier']
Line 182... Line 174...
182
 
174
 
183
def populateNegativeDeals():
175
def populateNegativeDeals():
184
    negativeDeals = get_mongo_connection().Catalog.NegativeDeals.find().distinct('sku')
176
    negativeDeals = get_mongo_connection().Catalog.NegativeDeals.find().distinct('sku')
185
    mc.set("negative_deals", negativeDeals, 600)
177
    mc.set("negative_deals", negativeDeals, 600)
186
 
178
 
187
def recomputePoints(item, deal):
179
#def recomputePoints(item, deal):
188
    try:
180
#    try:
-
 
181
#        if item.get('available_price') == deal['available_price']:
-
 
182
#            print "No need to compute points for %d , as price is still same" %(item['_id'])
-
 
183
#            raise
189
        nlcPoints = getNlcPoints(item, deal['minNlc'], deal['maxNlc'], deal['available_price'])
184
#        nlcPoints = getNlcPoints(item, deal['minNlc'], deal['maxNlc'], deal['available_price'])
190
    except:
185
#    except:
191
        traceback.print_exc()
186
#        print traceback.print_exc()
192
        nlcPoints = deal['nlcPoints']
187
#        nlcPoints = deal['nlcPoints']
-
 
188
#    
-
 
189
#    bundleDealPoints = list(get_mongo_connection().Catalog.DealPoints.find({'skuBundleId':item['skuBundleId'],'startDate':{'$lte':to_java_date(datetime.now())},'endDate':{'$gte':to_java_date(datetime.now())}}))
-
 
190
#    if len(bundleDealPoints) > 0:
193
    if item['manualDealThresholdPrice'] >= deal['available_price']:
191
#        item['manualDealThresholdPrice'] = bundleDealPoints[0]['dealThresholdPrice']
194
        dealPoints = item['dealPoints']
192
#        dealPoints = bundleDealPoints[0]['dealPoints']
195
    else:
193
#    else:
196
        dealPoints = 0
194
#        dealPoints = 0
-
 
195
#        item['manualDealThresholdPrice'] = None
-
 
196
#        
197
    get_mongo_connection().Catalog.Deals.update({'_id':deal['_id']},{"$set":{'totalPoints':deal['totalPoints'] - deal['nlcPoints'] + nlcPoints - deal['dealPoints'] +dealPoints , 'nlcPoints': nlcPoints, 'dealPoints': dealPoints, 'manualDealThresholdPrice': item['manualDealThresholdPrice']}})
197
#    get_mongo_connection().Catalog.Deals.update({'_id':deal['_id']},{"$set":{'totalPoints':deal['totalPoints'] - deal['nlcPoints'] + nlcPoints - deal['dealPoints'] +dealPoints , 'nlcPoints': nlcPoints, 'dealPoints': dealPoints, 'manualDealThresholdPrice': item['manualDealThresholdPrice']}})
198
 
198
 
199
    
199
    
200
def recomputeDeal(item):
200
def recomputeDeal(item):
201
    """Lets recompute deal for this bundle"""
201
    """Lets recompute deal for this bundle"""
202
    print "Recomputing for bundleId %d" %(item.get('skuBundleId'))
202
    print "Recomputing for bundleId %d" %(item.get('skuBundleId'))
Line 209... Line 209...
209
    toUpdate = []
209
    toUpdate = []
210
    prepaidBestPrice = float("inf")
210
    prepaidBestPrice = float("inf")
211
    prepaidBestOne = None
211
    prepaidBestOne = None
212
    prepaidBestSellerPoints = 0
212
    prepaidBestSellerPoints = 0
213
    for similarItem in similarItems:
213
    for similarItem in similarItems:
214
        if similarItem['_id'] == item['_id']:
-
 
215
            try:
-
 
216
                recomputePoints(item, similarItem)
-
 
217
            except:
-
 
218
                traceback.print_exc()
-
 
219
        if similarItem['codAvailable'] ==1:
214
        if similarItem['codAvailable'] ==1:
220
            if mc.get("negative_deals") is None:
215
            if mc.get("negative_deals") is None:
221
                populateNegativeDeals()
216
                populateNegativeDeals()
222
            if similarItem['in_stock'] == 0  or similarItem['_id'] in mc.get("negative_deals"):
217
            if similarItem['in_stock'] == 0  or similarItem['_id'] in mc.get("negative_deals"):
223
                get_mongo_connection().Catalog.Deals.update({ '_id' : similarItem['_id'] }, {'$set':{'showDeal':0, 'prepaidDeal':0 }})
218
                get_mongo_connection().Catalog.Deals.update({ '_id' : similarItem['_id'] }, {'$set':{'showDeal':0, 'prepaidDeal':0 }})