| 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):
|