| Line 15... |
Line 15... |
| 15 |
RevisionedPurchaseOrder
|
15 |
RevisionedPurchaseOrder
|
| 16 |
from shop2020.purchase.main.model.Supplier import Supplier
|
16 |
from shop2020.purchase.main.model.Supplier import Supplier
|
| 17 |
from shop2020.purchase.main.model.PurchaseOrder import PurchaseOrder
|
17 |
from shop2020.purchase.main.model.PurchaseOrder import PurchaseOrder
|
| 18 |
from shop2020.thriftpy.generic.ttypes import ExceptionType
|
18 |
from shop2020.thriftpy.generic.ttypes import ExceptionType
|
| 19 |
from shop2020.thriftpy.model.v1.inventory.ttypes import WarehouseType, \
|
19 |
from shop2020.thriftpy.model.v1.inventory.ttypes import WarehouseType, \
|
| 20 |
InventoryType
|
20 |
InventoryType, ItemStockPurchaseParams
|
| 21 |
from shop2020.thriftpy.model.v1.order.ttypes import OrderStatus
|
21 |
from shop2020.thriftpy.model.v1.order.ttypes import OrderStatus
|
| 22 |
from shop2020.thriftpy.purchase.ttypes import PurchaseServiceException, POStatus, \
|
22 |
from shop2020.thriftpy.purchase.ttypes import PurchaseServiceException, POStatus, \
|
| 23 |
PurchaseOrder as TPurchaseOrder, LineItem as TLineItem, POType,\
|
23 |
PurchaseOrder as TPurchaseOrder, LineItem as TLineItem, POType,\
|
| 24 |
PurchaseReturnType
|
24 |
PurchaseReturnType
|
| 25 |
from shop2020.utils.Utils import to_py_date
|
25 |
from shop2020.utils.Utils import to_py_date
|
| Line 292... |
Line 292... |
| 292 |
for key in requirements:
|
292 |
for key in requirements:
|
| 293 |
inventory_client = InventoryClient().get_client()
|
293 |
inventory_client = InventoryClient().get_client()
|
| 294 |
oosStatuses = inventory_client.getOosStatusesForXDaysForItem(key,5)
|
294 |
oosStatuses = inventory_client.getOosStatusesForXDaysForItem(key,5)
|
| 295 |
salesCount = 0
|
295 |
salesCount = 0
|
| 296 |
numDaysInStock = 0
|
296 |
numDaysInStock = 0
|
| - |
|
297 |
avgSales = 0
|
| 297 |
for oosStatus in oosStatuses:
|
298 |
for oosStatus in oosStatuses:
|
| 298 |
if oosStatus.status == False:
|
299 |
if oosStatus.is_oos == False:
|
| 299 |
salesCount = salesCount + oosStatus.num_orders
|
300 |
salesCount = salesCount + oosStatus.num_orders
|
| 300 |
numDaysInStock = numDaysInStock + 1
|
301 |
numDaysInStock = numDaysInStock + 1
|
| - |
|
302 |
if numDaysInStock>0:
|
| 301 |
avgSales = salesCount/numDaysInStock
|
303 |
avgSales = salesCount/numDaysInStock
|
| 302 |
if avgSales>1:
|
304 |
itemStockPurchaseParam = ItemStockPurchaseParams()
|
| 303 |
itemStockPurchaseParam = inventory_client.getItemStockPurchaseParams(key)
|
305 |
itemStockPurchaseParam = inventory_client.getItemStockPurchaseParams(key)
|
| 304 |
advancedPOParameters[key] = [avgSales * itemStockPurchaseParam.numOfDaysStock, avgSales, numDaysInStock, itemStockPurchaseParam.minStockLevel, itemStockPurchaseParam.numOfDaysStock]
|
306 |
advancedPOParameters[key] = [avgSales * itemStockPurchaseParam.numOfDaysStock, avgSales, numDaysInStock, itemStockPurchaseParam.minStockLevel, itemStockPurchaseParam.numOfDaysStock]
|
| 305 |
|
307 |
|
| 306 |
netRequirements = {}
|
308 |
netRequirements = {}
|
| 307 |
for itemId in requirements.keys():
|
309 |
for itemId in requirements.keys():
|
| 308 |
requirementsCount = requirements.get(itemId)
|
310 |
requirementsCount = requirements.get(itemId)
|
| Line 343... |
Line 345... |
| 343 |
t_po_lineitem.modelName = item.modelName
|
345 |
t_po_lineitem.modelName = item.modelName
|
| 344 |
t_po_lineitem.color = item.color
|
346 |
t_po_lineitem.color = item.color
|
| 345 |
t_po_lineitem.itemId = item.id
|
347 |
t_po_lineitem.itemId = item.id
|
| 346 |
t_po_lineitem.quantity = quantity
|
348 |
t_po_lineitem.quantity = quantity
|
| 347 |
|
349 |
|
| - |
|
350 |
t_po_lineitem.availableQuantity = 0
|
| - |
|
351 |
if availability.has_key(item.id):
|
| 348 |
t_po_lineitem.availableQuantity = availability[item.id][0]
|
352 |
t_po_lineitem.availableQuantity = availability[item.id][0]
|
| 349 |
t_po_lineitem.reservedQuantity = requirements[lineitem.item_id]
|
353 |
t_po_lineitem.reservedQuantity = requirements[lineitem.item_id]
|
| 350 |
t_po_lineitem.suggestedQuantity = advancedPOParameters[item.id][0]
|
354 |
t_po_lineitem.suggestedQuantity = advancedPOParameters[item.id][0]
|
| 351 |
t_po_lineitem.avgSales = advancedPOParameters[item.id][1]
|
355 |
t_po_lineitem.avgSales = advancedPOParameters[item.id][1]
|
| 352 |
t_po_lineitem.numberOfDaysInStock = advancedPOParameters[item.id][2]
|
356 |
t_po_lineitem.numberOfDaysInStock = advancedPOParameters[item.id][2]
|
| 353 |
t_po_lineitem.minStockLevel = advancedPOParameters[item.id][3]
|
357 |
t_po_lineitem.minStockLevel = advancedPOParameters[item.id][3]
|
| 354 |
t_po_lineitem.numberOfDaysStock = advancedPOParameters[item.id][2]
|
358 |
t_po_lineitem.numberOfDaysStock = advancedPOParameters[item.id][4]
|
| 355 |
if codRequirements.has_key(item.id):
|
359 |
if codRequirements.has_key(item.id):
|
| 356 |
t_po_lineitem.codCount = min(codRequirements[item.id], quantity)
|
360 |
t_po_lineitem.codCount = min(codRequirements[item.id], quantity)
|
| 357 |
try:
|
361 |
try:
|
| 358 |
item_pricing = inventory_client.getItemPricing(item.id, vendorId)
|
362 |
item_pricing = inventory_client.getItemPricing(item.id, vendorId)
|
| 359 |
except Exception as e:
|
363 |
except Exception as e:
|