Subversion Repositories SmartDukaan

Rev

Rev 22259 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 22259 Rev 23356
Line 67... Line 67...
67
def addItemIdInfo():
67
def addItemIdInfo():
68
    global bundleMap
68
    global bundleMap
69
    global itemPricingMap
69
    global itemPricingMap
70
    try:
70
    try:
71
        CatalogDataService.initialize(db_hostname=options.hostname,setup=False)
71
        CatalogDataService.initialize(db_hostname=options.hostname,setup=False)
72
        item_id_tags = session.query(Tag_Listing).all()
72
        item_id_tags = session.query(Tag_Listing).filter(Tag_Listing.active==True).all()
73
        item_id_tags_map = {}
73
        item_id_tags_map = {}
74
        for item_id_tag in item_id_tags:
74
        for item_id_tag in item_id_tags:
75
            if not item_id_tags_map.has_key(item_id_tag.item_id):
75
            if not item_id_tags_map.has_key(item_id_tag.item_id):
76
                item_id_tags_map[item_id_tag.item_id] = []
76
                item_id_tags_map[item_id_tag.item_id] = []
77
            item_id_tags_map.get(item_id_tag.item_id).append(item_id_tag.tag_id)
77
            item_id_tags_map.get(item_id_tag.item_id).append(item_id_tag.tag_id)
Line 114... Line 114...
114
    finally:
114
    finally:
115
        session.close()
115
        session.close()
116
 
116
 
117
def addInfoToMemCache():
117
def addInfoToMemCache():
118
    for k, v in bundleMap.iteritems():
118
    for k, v in bundleMap.iteritems():
-
 
119
        itemList = []
119
        for item in v:
120
        for item in v:
120
            availability = inventoryMap.get(item.get('item_id'))
121
            availability = inventoryMap.get(item.get('item_id'))
121
            if availability is None:
122
            if availability is None or availability == 0:
122
                availability = 0
123
                continue
123
            item['availability'] = availability
124
            item['availability'] = availability
124
            if availability < maxQuantity:
125
            if availability < maxQuantity:
125
                temp_maxQuantity = availability
126
                temp_maxQuantity = availability
126
            else:
127
            else:
127
                temp_maxQuantity = maxQuantity
128
                temp_maxQuantity = maxQuantity
Line 131... Line 132...
131
                item['maxQuantity'] = min(availability,item.get('maxQuantity'))
132
                item['maxQuantity'] = min(availability,item.get('maxQuantity'))
132
            if item['minBuyQuantity'] > availability:
133
            if item['minBuyQuantity'] > availability:
133
                item['minBuyQuantity'] = availability
134
                item['minBuyQuantity'] = availability
134
            checkBulkPrices(item)
135
            checkBulkPrices(item)
135
            item['bulkPricing'] = sorted(item['bulkPricing'], key=lambda k: k['quantity'],reverse=False)
136
            item['bulkPricing'] = sorted(item['bulkPricing'], key=lambda k: k['quantity'],reverse=False)
-
 
137
            itemList.append(item)
136
            
138
        if len(itemList) > 0:    
137
        temp = sorted(v, key = lambda x: (x['availability']),reverse=True)
139
            temp = sorted(itemList, key = lambda x: (x['availability']),reverse=True)
138
        mc = get_memcache_connection(host=options.mongoHost)
140
            mc = get_memcache_connection(host=options.mongoHost)
139
        mc.set(str("item_availability_"+str(k)), temp, 60*60)
141
            mc.set(str("item_availability_"+str(k)), temp, 60*60)
-
 
142
        else:
-
 
143
            mc = get_memcache_connection(host=options.mongoHost)
-
 
144
            mc.delete(str("item_availability_"+str(k)))
140
 
145
 
141
def checkBulkPrices(item):
146
def checkBulkPrices(item):
142
    adjusted = False
147
    adjusted = False
143
    """Lets check minBuyQty exist in bulkPricing"""
148
    """Lets check minBuyQty exist in bulkPricing"""
144
    minBuyQty = item['minBuyQuantity']
149
    minBuyQty = item['minBuyQuantity']
Line 207... Line 212...
207
        for itemInventory in allInventory:
212
        for itemInventory in allInventory:
208
            inventoryMap[itemInventory.itemId] = itemInventory.totalAvailability
213
            inventoryMap[itemInventory.itemId] = itemInventory.totalAvailability
209
    finally:
214
    finally:
210
        session.close()
215
        session.close()
211
 
216
 
-
 
217
def flagFofoMissingItems():
212
 
218
    try:
-
 
219
        CatalogDataService.initialize(db_hostname=options.hostname,setup=False)
-
 
220
        item_id_tags = session.query(Tag_Listing).filter(Tag_Listing.active==True).all()
-
 
221
        for item_id_tag in item_id_tags:
-
 
222
            if item_id_tag.item_id not in flaggedItems:
-
 
223
                flaggedItems.append(item_id_tag.item_id)
-
 
224
    finally:
-
 
225
        session.close()
213
if __name__ == '__main__':
226
if __name__ == '__main__':
214
    populateSaholicBundles()
227
    populateSaholicBundles()
215
    addItemIdInfo()
228
    addItemIdInfo()
216
    addBulkPricingInfo()
229
    addBulkPricingInfo()
217
    #Gets tagListing
230
    #Gets tagListing
218
    
231
    
219
    fetchItemAvailablity()
232
    fetchItemAvailablity()
220
    flagNoAvailableItems()
233
    flagNoAvailableItems()
-
 
234
    flagFofoMissingItems()
221
    if len(flaggedItems) > 0:
235
    if len(flaggedItems) > 0:
222
        print "Flagged items ",flaggedItems
236
        print "Flagged items ",flaggedItems
223
        get_inventory_client().updateItemAvailabilityForItemIds(flaggedItems)
237
        get_inventory_client().updateItemAvailabilityForItemIds(flaggedItems)
224
        fetchItemAvailablity()
238
        fetchItemAvailablity()
225
    addInfoToMemCache()
239
    addInfoToMemCache()