Subversion Repositories SmartDukaan

Rev

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

Rev 7672 Rev 8182
Line 302... Line 302...
302
            for itemStockPurchaseParam in itemStockPurchaseParams:
302
            for itemStockPurchaseParam in itemStockPurchaseParams:
303
                inventory_client = InventoryClient().get_client()
303
                inventory_client = InventoryClient().get_client()
304
                oosStatuses = inventory_client.getOosStatusesForXDaysForItem(itemStockPurchaseParam.item_id,5)
304
                oosStatuses = inventory_client.getOosStatusesForXDaysForItem(itemStockPurchaseParam.item_id,5)
305
                salesCount = 0
305
                salesCount = 0
306
                numDaysInStock = 0
306
                numDaysInStock = 0
-
 
307
                rtoCount = 0
307
                avgSales = 0.0
308
                avgSales = 0.0
308
                lastXdaysSale ="" 
309
                lastXdaysSale ="" 
309
                for oosStatus in oosStatuses:
310
                for oosStatus in oosStatuses:
310
                    if oosStatus.is_oos == False:
311
                    if oosStatus.is_oos == False:
311
                        salesCount = salesCount + oosStatus.num_orders
312
                        salesCount = salesCount + oosStatus.num_orders
312
                        numDaysInStock = numDaysInStock + 1
313
                        numDaysInStock = numDaysInStock + 1
313
                        lastXdaysSale = lastXdaysSale + str(oosStatus.num_orders) + "-" 
314
                        lastXdaysSale = lastXdaysSale + str(oosStatus.num_orders) + "-" 
314
                    else:
315
                    else:
315
                        lastXdaysSale = lastXdaysSale + "X-"
316
                        lastXdaysSale = lastXdaysSale + "X-"
-
 
317
                if oosStatus.rto_orders:
-
 
318
                    rtoCount = oosStatus.rto_orders
316
                lastXdaysSale = lastXdaysSale[:-1]
319
                lastXdaysSale = lastXdaysSale[:-1]
317
                if numDaysInStock>0:
320
                if numDaysInStock>0:
318
                    avgSales = float(salesCount)/numDaysInStock
321
                    avgSales = float(salesCount)/numDaysInStock
319
                advancedPOParameters[itemStockPurchaseParam.item_id] = [round(avgSales * itemStockPurchaseParam.numOfDaysStock), round(avgSales,2) , numDaysInStock, itemStockPurchaseParam.minStockLevel, itemStockPurchaseParam.numOfDaysStock, lastXdaysSale]
322
                advancedPOParameters[itemStockPurchaseParam.item_id] = [round(avgSales * itemStockPurchaseParam.numOfDaysStock), round(avgSales,2) , numDaysInStock, itemStockPurchaseParam.minStockLevel, itemStockPurchaseParam.numOfDaysStock, lastXdaysSale, rtoCount]
320
                if itemInventorySnapshot.has_key(itemStockPurchaseParam.item_id):
323
                if itemInventorySnapshot.has_key(itemStockPurchaseParam.item_id):
321
                    itemAvailability = itemInventorySnapshot.get(itemStockPurchaseParam.item_id)
324
                    itemAvailability = itemInventorySnapshot.get(itemStockPurchaseParam.item_id)
322
                    currentAvailability = 0
325
                    currentAvailability = 0
323
                    currentReserved = 0
326
                    currentReserved = 0
324
                    for wId, rQty in itemAvailability.reserved.iteritems():
327
                    for wId, rQty in itemAvailability.reserved.iteritems():
325
                        if wId in ourGoodWarehouseIds:
328
                        if wId in ourGoodWarehouseIds:
326
                            currentReserved = currentReserved + rQty
329
                            currentReserved = currentReserved + rQty
-
 
330
                    if availability[itemStockPurchaseParam.item_id] is None:
-
 
331
                        availability[itemStockPurchaseParam.item_id] = [0]
327
                    if (availability[itemStockPurchaseParam.item_id][0] - currentReserved) < max(advancedPOParameters[itemStockPurchaseParam.item_id][0], advancedPOParameters[itemStockPurchaseParam.item_id][3]): 
332
                    if (availability[itemStockPurchaseParam.item_id][0] - currentReserved) < max(advancedPOParameters[itemStockPurchaseParam.item_id][0], advancedPOParameters[itemStockPurchaseParam.item_id][3]): 
328
                        SKUListForPO.append(itemStockPurchaseParam.item_id)
333
                        SKUListForPO.append(itemStockPurchaseParam.item_id)
329
                else:
334
                else:
330
                    SKUListForPO.append(itemStockPurchaseParam.item_id)
335
                    SKUListForPO.append(itemStockPurchaseParam.item_id)
331
                        
336
                        
Line 334... Line 339...
334
                    continue
339
                    continue
335
                inventory_client = InventoryClient().get_client()
340
                inventory_client = InventoryClient().get_client()
336
                oosStatuses = inventory_client.getOosStatusesForXDaysForItem(key,5)
341
                oosStatuses = inventory_client.getOosStatusesForXDaysForItem(key,5)
337
                salesCount = 0
342
                salesCount = 0
338
                numDaysInStock = 0
343
                numDaysInStock = 0
-
 
344
                rtoCount = 0
339
                avgSales = 0.0
345
                avgSales = 0.0
340
                lastXdaysSale = ""
346
                lastXdaysSale = ""
341
                for oosStatus in oosStatuses:
347
                for oosStatus in oosStatuses:
342
                    if oosStatus.is_oos == False:
348
                    if oosStatus.is_oos == False:
343
                        salesCount = salesCount + oosStatus.num_orders
349
                        salesCount = salesCount + oosStatus.num_orders
344
                        numDaysInStock = numDaysInStock + 1
350
                        numDaysInStock = numDaysInStock + 1
345
                        lastXdaysSale = lastXdaysSale + str(oosStatus.num_orders) + "-" 
351
                        lastXdaysSale = lastXdaysSale + str(oosStatus.num_orders) + "-" 
346
                    else:
352
                    else:
347
                        lastXdaysSale = lastXdaysSale + "X-"
353
                        lastXdaysSale = lastXdaysSale + "X-"
348
                lastXdaysSale = lastXdaysSale[:-1]        
354
                lastXdaysSale = lastXdaysSale[:-1]
-
 
355
                if oosStatus.rto_orders:
-
 
356
                    rtoCount = oosStatus.rto_orders
349
                if numDaysInStock>0:
357
                if numDaysInStock>0:
350
                    avgSales = float(salesCount)/float(numDaysInStock)
358
                    avgSales = float(salesCount)/float(numDaysInStock)
351
                itemStockPurchaseParam = ItemStockPurchaseParams()
359
                itemStockPurchaseParam = ItemStockPurchaseParams()
352
                itemStockPurchaseParam = inventory_client.getItemStockPurchaseParams(key)
360
                itemStockPurchaseParam = inventory_client.getItemStockPurchaseParams(key)
353
                advancedPOParameters[key] = [round(avgSales * itemStockPurchaseParam.numOfDaysStock), round(avgSales,2), numDaysInStock, itemStockPurchaseParam.minStockLevel, itemStockPurchaseParam.numOfDaysStock, lastXdaysSale]
361
                advancedPOParameters[key] = [round(avgSales * itemStockPurchaseParam.numOfDaysStock), round(avgSales,2), numDaysInStock, itemStockPurchaseParam.minStockLevel, itemStockPurchaseParam.numOfDaysStock, lastXdaysSale, rtoCount]
354
                
362
                
355
            cumulativeRequirementsItemIds = list(set(requirements.keys()+SKUListForPO))
363
            cumulativeRequirementsItemIds = list(set(requirements.keys()+SKUListForPO))
356
            netRequirements = {}
364
            netRequirements = {}
357
            for itemId in cumulativeRequirementsItemIds:
365
            for itemId in cumulativeRequirementsItemIds:
358
                requirementsCount = requirements.get(itemId)
366
                requirementsCount = requirements.get(itemId)
Line 410... Line 418...
410
                    t_po_lineitem.avgSales = advancedPOParameters[item.id][1]
418
                    t_po_lineitem.avgSales = advancedPOParameters[item.id][1]
411
                    t_po_lineitem.numberOfDaysInStock = advancedPOParameters[item.id][2] 
419
                    t_po_lineitem.numberOfDaysInStock = advancedPOParameters[item.id][2] 
412
                    t_po_lineitem.minStockLevel = advancedPOParameters[item.id][3]
420
                    t_po_lineitem.minStockLevel = advancedPOParameters[item.id][3]
413
                    t_po_lineitem.numberOfDaysStock = advancedPOParameters[item.id][4]
421
                    t_po_lineitem.numberOfDaysStock = advancedPOParameters[item.id][4]
414
                    t_po_lineitem.lastXdaysSale = advancedPOParameters[item.id][5]
422
                    t_po_lineitem.lastXdaysSale = advancedPOParameters[item.id][5]
-
 
423
                    t_po_lineitem.rtoOrders = advancedPOParameters[item.id][6]
415
                    if previouslyOrderedQty.has_key(item.id):
424
                    if previouslyOrderedQty.has_key(item.id):
416
                        t_po_lineitem.previouslyOrderedQty = previouslyOrderedQty[item.id]
425
                        t_po_lineitem.previouslyOrderedQty = previouslyOrderedQty[item.id]
417
                    else:
426
                    else:
418
                        t_po_lineitem.previouslyOrderedQty = 0
427
                        t_po_lineitem.previouslyOrderedQty = 0
419
                    if codRequirements.has_key(item.id):
428
                    if codRequirements.has_key(item.id):