Subversion Repositories SmartDukaan

Rev

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

Rev 16180 Rev 16504
Line 70... Line 70...
70
        for d in saholicCatalogIds:
70
        for d in saholicCatalogIds:
71
            if d['source_id']!=4:
71
            if d['source_id']!=4:
72
                continue
72
                continue
73
            d['dealFlag'] = 0
73
            d['dealFlag'] = 0
74
            d['dealType'] = 0
74
            d['dealType'] = 0
75
            d['dealPoints'] = 0
-
 
76
            d['manualDealThresholdPrice'] = None
-
 
77
            toScrapMap[d['_id']] = d
75
            toScrapMap[d['_id']] = d
78
            dealsCatalogIds.append(long(d['identifier'].strip()))
76
            dealsCatalogIds.append(long(d['identifier'].strip()))
79
    dealFlagged = list(get_mongo_connection().Catalog.Deals.find({'source_id':4,'showDeal':1,'totalPoints':{'$gt':-100}}))
77
    dealFlagged = list(get_mongo_connection().Catalog.Deals.find({'source_id':4,'showDeal':1,'totalPoints':{'$gt':-100}}))
80
    for deal in dealFlagged:
78
    for deal in dealFlagged:
81
        if not toScrapMap.has_key(deal['_id']):
79
        if not toScrapMap.has_key(deal['_id']):
82
            data = list(get_mongo_connection().Catalog.MasterData.find({'_id':deal['_id']}))
80
            data = list(get_mongo_connection().Catalog.MasterData.find({'_id':deal['_id']}))
83
            data[0]['dealFlag'] = 0
81
            data[0]['dealFlag'] = 0
84
            data[0]['dealType'] = 0
82
            data[0]['dealType'] = 0
85
            data[0]['dealPoints'] = 0
-
 
86
            data[0]['manualDealThresholdPrice'] = None
-
 
87
            toScrapMap[deal['_id']] = data[0]
83
            toScrapMap[deal['_id']] = data[0]
88
            if long(data[0]['identifier'].strip()) not in dealsCatalogIds: 
84
            if long(data[0]['identifier'].strip()) not in dealsCatalogIds: 
89
                dealsCatalogIds.append(long(data[0]['identifier'].strip()))
85
                dealsCatalogIds.append(long(data[0]['identifier'].strip()))
90
    manualDeals = list(get_mongo_connection().Catalog.ManualDeals.find({'startDate':{'$lte':to_java_date(datetime.now())},'endDate':{'$gte':to_java_date(datetime.now())},'source_id':4}))
86
    manualDeals = list(get_mongo_connection().Catalog.ManualDeals.find({'startDate':{'$lte':to_java_date(datetime.now())},'endDate':{'$gte':to_java_date(datetime.now())},'source_id':4}))
91
    for manualDeal in manualDeals:
87
    for manualDeal in manualDeals:
92
        if not toScrapMap.has_key(manualDeal['sku']):
88
        if not toScrapMap.has_key(manualDeal['sku']):
93
            data = list(get_mongo_connection().Catalog.MasterData.find({'_id':manualDeal['sku']}))
89
            data = list(get_mongo_connection().Catalog.MasterData.find({'_id':manualDeal['sku']}))
94
            if len(data) > 0:
90
            if len(data) > 0:
95
                data[0]['dealFlag'] = 1
91
                data[0]['dealFlag'] = 1
96
                data[0]['dealType'] = manualDeal['dealType']
92
                data[0]['dealType'] = manualDeal['dealType']
97
                data[0]['dealPoints'] = manualDeal['dealPoints']
-
 
98
                data[0]['manualDealThresholdPrice'] = manualDeal['dealThresholdPrice']
-
 
99
                toScrapMap[manualDeal['sku']] = data[0]
93
                toScrapMap[manualDeal['sku']] = data[0]
100
                if long(data[0]['identifier'].strip()) not in dealsCatalogIds: 
94
                if long(data[0]['identifier'].strip()) not in dealsCatalogIds: 
101
                    dealsCatalogIds.append(long(data[0]['identifier'].strip()))
95
                    dealsCatalogIds.append(long(data[0]['identifier'].strip()))
102
        else:
96
        else:
103
            data = toScrapMap.get(manualDeal['sku'])
97
            data = toScrapMap.get(manualDeal['sku'])
104
            data['dealFlag'] = 1
98
            data['dealFlag'] = 1
105
            data['dealType'] = manualDeal['dealType']
99
            data['dealType'] = manualDeal['dealType']
106
            data['dealPoints'] = manualDeal['dealPoints']
-
 
107
            data['manualDealThresholdPrice'] = manualDeal['dealThresholdPrice']
-
 
108
    
100
    
109
    items = Item.query.filter(Item.catalog_item_id.in_(dealsCatalogIds)).all()
101
    items = Item.query.filter(Item.catalog_item_id.in_(dealsCatalogIds)).all()
110
    for item in items:
102
    for item in items:
111
        temp = []
103
        temp = []
112
        if not itemCatalogMap.has_key(item.catalog_item_id):
104
        if not itemCatalogMap.has_key(item.catalog_item_id):
Line 164... Line 156...
164
 
156
 
165
def populateNegativeDeals():
157
def populateNegativeDeals():
166
    negativeDeals = get_mongo_connection().Catalog.NegativeDeals.find().distinct('sku')
158
    negativeDeals = get_mongo_connection().Catalog.NegativeDeals.find().distinct('sku')
167
    mc.set("negative_deals", negativeDeals, 600)
159
    mc.set("negative_deals", negativeDeals, 600)
168
    
160
    
169
def recomputePoints(item, deal):
161
#def recomputePoints(item, deal):
170
    try:
162
#    try:
171
        nlcPoints = getNlcPoints(item, deal['minNlc'], deal['maxNlc'], deal['available_price'])
163
#        if item.get('available_price') == deal['available_price']:
-
 
164
#            print "No need to compute points for %d , as price is still same" %(item['_id'])
-
 
165
#            raise
172
    except:
166
#    except:
173
        traceback.print_exc()
167
#        traceback.print_exc()
174
        nlcPoints = deal['nlcPoints']
168
#        nlcPoints = deal['nlcPoints']
-
 
169
#    
-
 
170
#    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())}}))
-
 
171
#    if len(bundleDealPoints) > 0:
175
    if item['manualDealThresholdPrice'] >= deal['available_price']:
172
#        item['manualDealThresholdPrice'] = bundleDealPoints[0]['dealThresholdPrice']
176
        dealPoints = item['dealPoints']
173
#        dealPoints = bundleDealPoints[0]['dealPoints']
177
    else:
174
#    else:
178
        dealPoints = 0
175
#        dealPoints = 0
-
 
176
#        item['manualDealThresholdPrice'] = None
-
 
177
#    
179
    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']}})
178
#    
180
 
179
#    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']}})
181
    
180
    
182
def recomputeDeal(item):
181
def recomputeDeal(item):
183
    """Lets recompute deal for this bundle"""
182
    """Lets recompute deal for this bundle"""
184
    print "Recomputing for bundleId %d" %(item.get('skuBundleId'))
183
    print "Recomputing for bundleId %d" %(item.get('skuBundleId'))
185
    skuBundleId = item['skuBundleId']
184
    skuBundleId = item['skuBundleId']
Line 191... Line 190...
191
    toUpdate = []
190
    toUpdate = []
192
    prepaidBestPrice = float("inf")
191
    prepaidBestPrice = float("inf")
193
    prepaidBestOne = None
192
    prepaidBestOne = None
194
    prepaidBestSellerPoints = 0
193
    prepaidBestSellerPoints = 0
195
    for similarItem in similarItems:
194
    for similarItem in similarItems:
196
        if similarItem['_id'] == item['_id']:
-
 
197
            try:
-
 
198
                recomputePoints(item, similarItem)
-
 
199
            except:
-
 
200
                traceback.print_exc()
-
 
201
        if similarItem['codAvailable'] ==1:
195
        if similarItem['codAvailable'] ==1:
202
            if mc.get("negative_deals") is None:
196
            if mc.get("negative_deals") is None:
203
                populateNegativeDeals()
197
                populateNegativeDeals()
204
            if similarItem['in_stock'] == 0  or similarItem['_id'] in mc.get("negative_deals"):
198
            if similarItem['in_stock'] == 0  or similarItem['_id'] in mc.get("negative_deals"):
205
                get_mongo_connection().Catalog.Deals.update({ '_id' : similarItem['_id'] }, {'$set':{'showDeal':0, 'prepaidDeal':0 }})
199
                get_mongo_connection().Catalog.Deals.update({ '_id' : similarItem['_id'] }, {'$set':{'showDeal':0, 'prepaidDeal':0 }})