Subversion Repositories SmartDukaan

Rev

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

Rev 16190 Rev 16505
Line 125... Line 125...
125
            except Exception as e:
125
            except Exception as e:
126
                traceback.print_exc()
126
                traceback.print_exc()
127
                continue
127
                continue
128
            product = list(get_mongo_connection().Catalog.MasterData.find({'source_id':5,'identifier':scin}))
128
            product = list(get_mongo_connection().Catalog.MasterData.find({'source_id':5,'identifier':scin}))
129
            if len(product) > 0:
129
            if len(product) > 0:
-
 
130
                if product[0].get('ignorePricing') ==1:
-
 
131
                    continue
130
                if productInfo['inStock'] ==1:
132
                if productInfo['inStock'] ==1:
131
                    get_mongo_connection().Catalog.MasterData.update({'_id':product[0]['_id']},{"$set":{'rank':rank, 'available_price':productInfo['price'], \
133
                    get_mongo_connection().Catalog.MasterData.update({'_id':product[0]['_id']},{"$set":{'rank':rank, 'available_price':productInfo['price'], \
132
                                                                                                            'in_stock':productInfo['inStock'], 'codAvailable':productInfo['isCod'], \
134
                                                                                                            'in_stock':productInfo['inStock'], 'codAvailable':productInfo['isCod'], \
133
                                                                                                            'coupon':productInfo['coupon'], 'updatedOn':to_java_date(datetime.now()),'priceUpdatedOn':to_java_date(datetime.now())}})
135
                                                                                                            'coupon':productInfo['coupon'], 'updatedOn':to_java_date(datetime.now()),'priceUpdatedOn':to_java_date(datetime.now())}})
134
                    get_mongo_connection().Catalog.Deals.update({'_id':product[0]['_id']}, {'$set' : {'rank':rank,'available_price':productInfo['price'] , 'in_stock':productInfo['inStock'],'codAvailable':productInfo['isCod']}})
136
                    get_mongo_connection().Catalog.Deals.update({'_id':product[0]['_id']}, {'$set' : {'rank':rank,'available_price':productInfo['price'] , 'in_stock':productInfo['inStock'],'codAvailable':productInfo['isCod']}})
Line 163... Line 165...
163
 
165
 
164
def populateNegativeDeals():
166
def populateNegativeDeals():
165
    negativeDeals = get_mongo_connection().Catalog.NegativeDeals.find().distinct('sku')
167
    negativeDeals = get_mongo_connection().Catalog.NegativeDeals.find().distinct('sku')
166
    mc.set("negative_deals", negativeDeals, 600)
168
    mc.set("negative_deals", negativeDeals, 600)
167
 
169
 
168
def recomputePoints(item, deal):
170
#def recomputePoints(item, deal):
169
    try:
171
#    try:
-
 
172
#        if item.get('available_price') == deal['available_price']:
-
 
173
#            print "No need to compute points for %d , as price is still same" %(item['_id'])
-
 
174
#            raise
170
        nlcPoints = getNlcPoints(item, deal['minNlc'], deal['maxNlc'], deal['available_price'])
175
#        nlcPoints = getNlcPoints(item, deal['minNlc'], deal['maxNlc'], deal['available_price'])
171
    except:
176
#    except:
172
        traceback.print_exc()
177
#        print traceback.print_exc()
173
        nlcPoints = deal['nlcPoints']
178
#        nlcPoints = deal['nlcPoints']
-
 
179
#        
-
 
180
#    
-
 
181
#    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())}}))
-
 
182
#    if len(bundleDealPoints) > 0:
174
    if item['manualDealThresholdPrice'] >= deal['available_price']:
183
#        item['manualDealThresholdPrice'] = bundleDealPoints[0]['dealThresholdPrice']
175
        dealPoints = item['dealPoints']
184
#        dealPoints = bundleDealPoints[0]['dealPoints']
176
    else:
185
#    else:
177
        dealPoints = 0
186
#        dealPoints = 0
-
 
187
#        item['manualDealThresholdPrice'] = None    
-
 
188
#    
178
    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']}})
189
#    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']}})
179
 
190
 
180
    
191
    
181
def recomputeDeal(item):
192
def recomputeDeal(item):
182
    """Lets recompute deal for this bundle"""
193
    """Lets recompute deal for this bundle"""
183
    print "Recomputing for bundleId %d" %(item.get('skuBundleId'))
194
    print "Recomputing for bundleId %d" %(item.get('skuBundleId'))
184
    skuBundleId = item['skuBundleId']
195
    skuBundleId = item['skuBundleId']
185
    item['dealFlag'] = 0
196
    item['dealFlag'] = 0
186
    item['dealType'] = 0
197
    item['dealType'] = 0
187
    item['dealPoints'] = 0
-
 
188
    item['manualDealThresholdPrice'] = None
-
 
189
    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']}))
198
    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']}))
190
    if len(manualDeals) > 0:
199
    if len(manualDeals) > 0:
191
        item['dealFlag'] = 1
200
        item['dealFlag'] = 1
192
        item['dealType'] =manualDeals[0]['dealType']
201
        item['dealType'] =manualDeals[0]['dealType']
193
        item['dealPoints'] = manualDeals[0]['dealPoints']
-
 
194
        item['manualDealThresholdPrice'] = manualDeals[0]['dealThresholdPrice']
-
 
195
    similarItems = list(get_mongo_connection().Catalog.Deals.find({'skuBundleId':skuBundleId}).sort([('available_price',pymongo.ASCENDING)]))
202
    similarItems = list(get_mongo_connection().Catalog.Deals.find({'skuBundleId':skuBundleId}).sort([('available_price',pymongo.ASCENDING)]))
196
    bestPrice = float("inf")
203
    bestPrice = float("inf")
197
    bestOne = None
204
    bestOne = None
198
    bestSellerPoints = 0
205
    bestSellerPoints = 0
199
    toUpdate = []
206
    toUpdate = []
200
    prepaidBestPrice = float("inf")
207
    prepaidBestPrice = float("inf")
201
    prepaidBestOne = None
208
    prepaidBestOne = None
202
    prepaidBestSellerPoints = 0
209
    prepaidBestSellerPoints = 0
203
    for similarItem in similarItems:
210
    for similarItem in similarItems:
204
        if similarItem['_id'] == item['_id']:
-
 
205
            try:
-
 
206
                recomputePoints(item, similarItem)
-
 
207
            except:
-
 
208
                traceback.print_exc()
-
 
209
        if similarItem['codAvailable'] ==1:
211
        if similarItem['codAvailable'] ==1:
210
            if mc.get("negative_deals") is None:
212
            if mc.get("negative_deals") is None:
211
                populateNegativeDeals()
213
                populateNegativeDeals()
212
            if similarItem['in_stock'] == 0  or similarItem['_id'] in mc.get("negative_deals"):
214
            if similarItem['in_stock'] == 0  or similarItem['_id'] in mc.get("negative_deals"):
213
                get_mongo_connection().Catalog.Deals.update({ '_id' : similarItem['_id'] }, {'$set':{'showDeal':0, 'prepaidDeal':0 }})
215
                get_mongo_connection().Catalog.Deals.update({ '_id' : similarItem['_id'] }, {'$set':{'showDeal':0, 'prepaidDeal':0 }})