| Line 313... |
Line 313... |
| 313 |
existingPurchaseOrder = PurchaseOrder.get_by(id = purchaseOrder.id)
|
313 |
existingPurchaseOrder = PurchaseOrder.get_by(id = purchaseOrder.id)
|
| 314 |
maxRevision = 0
|
314 |
maxRevision = 0
|
| 315 |
existingRevisions = RevisionedPurchaseOrder.query.filter_by(purchaseOrderId = purchaseOrder.id).all()
|
315 |
existingRevisions = RevisionedPurchaseOrder.query.filter_by(purchaseOrderId = purchaseOrder.id).all()
|
| 316 |
if existingRevisions:
|
316 |
if existingRevisions:
|
| 317 |
maxRevision = max([a.revision for a in existingRevisions]) + 1
|
317 |
maxRevision = max([a.revision for a in existingRevisions]) + 1
|
| - |
|
318 |
|
| - |
|
319 |
newPOItems = {}
|
| - |
|
320 |
for t_lineitem in purchaseOrder.lineitems:
|
| - |
|
321 |
newPOItems[t_lineitem.itemId] = t_lineitem
|
| - |
|
322 |
|
| 318 |
for lineitem in existingPurchaseOrder.lineitems:
|
323 |
for lineitem in existingPurchaseOrder.lineitems:
|
| - |
|
324 |
fulfilledQuantity = lineitem.quantity - lineitem.unfulfilledQuantity
|
| - |
|
325 |
if fulfilledQuantity:
|
| - |
|
326 |
if not newPOItems.has_key(lineitem.itemId):
|
| - |
|
327 |
raise PurchaseServiceException(101, 'Cannot remove fulfilled item id: ' + str(lineitem.itemId) + ' from PO')
|
| - |
|
328 |
else:
|
| - |
|
329 |
if newPOItems[lineitem.itemId].quantity < fulfilledQuantity:
|
| - |
|
330 |
raise PurchaseServiceException(101, 'More quantity already fulfilled for item id: ' + str(lineitem.itemId))
|
| - |
|
331 |
else:
|
| - |
|
332 |
newPOItems[lineitem.itemId].unfulfilledQuantity -= fulfilledQuantity
|
| 319 |
revisionedPurchaseOrder = RevisionedPurchaseOrder()
|
333 |
revisionedPurchaseOrder = RevisionedPurchaseOrder()
|
| 320 |
revisionedPurchaseOrder.purchaseOrderId = purchaseOrder.id
|
334 |
revisionedPurchaseOrder.purchaseOrderId = purchaseOrder.id
|
| 321 |
revisionedPurchaseOrder.revision = maxRevision
|
335 |
revisionedPurchaseOrder.revision = maxRevision
|
| 322 |
revisionedPurchaseOrder.itemId = lineitem.itemId
|
336 |
revisionedPurchaseOrder.itemId = lineitem.itemId
|
| 323 |
revisionedPurchaseOrder.unfulfilledQuantity = lineitem.unfulfilledQuantity
|
337 |
revisionedPurchaseOrder.unfulfilledQuantity = lineitem.unfulfilledQuantity
|