| Line 252... |
Line 252... |
| 252 |
availability = {}
|
252 |
availability = {}
|
| 253 |
|
253 |
|
| 254 |
ourGoodWarehouseIds = [w.id for w in inventory_client.getWarehouses(WarehouseType.OURS, InventoryType.GOOD, 0, None, warehouseId)]
|
254 |
ourGoodWarehouseIds = [w.id for w in inventory_client.getWarehouses(WarehouseType.OURS, InventoryType.GOOD, 0, None, warehouseId)]
|
| 255 |
itemInventorySnapshot = inventory_client.getInventorySnapshot(0)
|
255 |
itemInventorySnapshot = inventory_client.getInventorySnapshot(0)
|
| 256 |
for itemId, itemInventory in itemInventorySnapshot.iteritems():
|
256 |
for itemId, itemInventory in itemInventorySnapshot.iteritems():
|
| 257 |
item = self.__get_item_from_master(itemId)
|
257 |
'''item = self.__get_item_from_master(itemId)'''
|
| 258 |
for warehouseId, quantity in itemInventory.availability.iteritems():
|
258 |
for warehouseId, quantity in itemInventory.availability.iteritems():
|
| 259 |
if warehouseId in ourGoodWarehouseIds:
|
259 |
if warehouseId in ourGoodWarehouseIds:
|
| 260 |
if availability.has_key(item.id):
|
260 |
if availability.has_key(itemId):
|
| 261 |
availability[item.id] = [availability[item.id][0] + quantity, item]
|
261 |
availability[itemId] = [availability[itemId][0] + quantity]
|
| 262 |
else:
|
262 |
else:
|
| 263 |
availability[item.id] = [quantity, item]
|
263 |
availability[itemId] = [quantity]
|
| 264 |
|
264 |
|
| 265 |
previouslyOrderedQty = {}
|
265 |
previouslyOrderedQty = {}
|
| 266 |
unfulfilledPurchaseOrders = PurchaseOrder.query.filter(or_(PurchaseOrder.status == POStatus.PARTIALLY_FULFILLED, PurchaseOrder.status == POStatus.READY)).filter(PurchaseOrder.type == POType.REAL).all()
|
266 |
unfulfilledPurchaseOrders = PurchaseOrder.query.filter(or_(PurchaseOrder.status == POStatus.PARTIALLY_FULFILLED, PurchaseOrder.status == POStatus.READY)).filter(PurchaseOrder.type == POType.REAL).all()
|
| 267 |
for purchaseOrder in unfulfilledPurchaseOrders:
|
267 |
for purchaseOrder in unfulfilledPurchaseOrders:
|
| 268 |
for lineitem in purchaseOrder.lineitems:
|
268 |
for lineitem in purchaseOrder.lineitems:
|
| Line 270... |
Line 270... |
| 270 |
previouslyOrderedQty[lineitem.itemId] = previouslyOrderedQty[lineitem.itemId] + lineitem.unfulfilledQuantity
|
270 |
previouslyOrderedQty[lineitem.itemId] = previouslyOrderedQty[lineitem.itemId] + lineitem.unfulfilledQuantity
|
| 271 |
else:
|
271 |
else:
|
| 272 |
previouslyOrderedQty[lineitem.itemId] = lineitem.unfulfilledQuantity
|
272 |
previouslyOrderedQty[lineitem.itemId] = lineitem.unfulfilledQuantity
|
| 273 |
|
273 |
|
| 274 |
if availability.has_key(lineitem.itemId):
|
274 |
if availability.has_key(lineitem.itemId):
|
| 275 |
availability[lineitem.itemId] = [availability[lineitem.itemId][0] + lineitem.unfulfilledQuantity, availability[lineitem.itemId][1]]
|
275 |
availability[lineitem.itemId] = [availability[lineitem.itemId][0] + lineitem.unfulfilledQuantity]
|
| 276 |
else:
|
276 |
else:
|
| 277 |
item = self.__get_item_from_master(lineitem.itemId)
|
277 |
'''item = self.__get_item_from_master(lineitem.itemId)'''
|
| 278 |
availability[item.id] = [lineitem.unfulfilledQuantity, item]
|
278 |
availability[item.id] = [lineitem.unfulfilledQuantity]
|
| 279 |
|
279 |
|
| 280 |
codRequirements = {}
|
280 |
codRequirements = {}
|
| 281 |
requirements = {}
|
281 |
requirements = {}
|
| 282 |
for order in pending_orders:
|
282 |
for order in pending_orders:
|
| 283 |
if order.purchaseOrderId:
|
283 |
if order.purchaseOrderId:
|
| Line 357... |
Line 357... |
| 357 |
requirementsCount = requirements.get(itemId)
|
357 |
requirementsCount = requirements.get(itemId)
|
| 358 |
if requirementsCount is None:
|
358 |
if requirementsCount is None:
|
| 359 |
requirementsCount = 0.0
|
359 |
requirementsCount = 0.0
|
| 360 |
if availability.has_key(itemId):
|
360 |
if availability.has_key(itemId):
|
| 361 |
availabilityCount = availability.get(itemId)[0]
|
361 |
availabilityCount = availability.get(itemId)[0]
|
| 362 |
item = availability.get(itemId)[1]
|
362 |
item = self.__get_item_from_master(itemId)
|
| 363 |
if requirementsCount > availabilityCount or itemId in SKUListForPO:
|
363 |
if requirementsCount > availabilityCount or itemId in SKUListForPO:
|
| 364 |
if item.preferredVendor is None:
|
364 |
if item.preferredVendor is None:
|
| 365 |
raise PurchaseServiceException(101, 'Preferred Vendor missing for ' + " ".join([str(item.brand), str(item.modelName), str(item.modelNumber), str(item.color)]))
|
365 |
raise PurchaseServiceException(101, 'Preferred Vendor missing for ' + " ".join([str(item.brand), str(item.modelName), str(item.modelNumber), str(item.color)]))
|
| 366 |
if (netRequirements.has_key(item.preferredVendor)):
|
366 |
if (netRequirements.has_key(item.preferredVendor)):
|
| 367 |
netRequirements[item.preferredVendor].append([item, requirementsCount - availabilityCount])
|
367 |
netRequirements[item.preferredVendor].append([item, requirementsCount - availabilityCount])
|
| Line 426... |
Line 426... |
| 426 |
raise PurchaseServiceException(101, 'Transfer price missing for ' + vendor.name + ' and ' + " ".join([item.brand, item.modelName, item.modelNumber, item.color]))
|
426 |
raise PurchaseServiceException(101, 'Transfer price missing for ' + vendor.name + ' and ' + " ".join([item.brand, item.modelName, item.modelNumber, item.color]))
|
| 427 |
t_po_lineitem.unitPrice = item_pricing.transferPrice
|
427 |
t_po_lineitem.unitPrice = item_pricing.transferPrice
|
| 428 |
t_purchase_order.lineitems.append(t_po_lineitem)
|
428 |
t_purchase_order.lineitems.append(t_po_lineitem)
|
| 429 |
purchaseOrders.append(t_purchase_order)
|
429 |
purchaseOrders.append(t_purchase_order)
|
| 430 |
return purchaseOrders
|
430 |
return purchaseOrders
|
| - |
|
431 |
except Exception as e:
|
| - |
|
432 |
print e
|
| 431 |
finally:
|
433 |
finally:
|
| 432 |
self.close_session()
|
434 |
self.close_session()
|
| 433 |
|
435 |
|
| 434 |
def getSuppliers(self,):
|
436 |
def getSuppliers(self,):
|
| 435 |
"""
|
437 |
"""
|