Ignore:
Timestamp:
Feb 23, 2010, 10:19:44 PM (10 years ago)
Author:
gav
Message:

Fix a bug in inventory movement when no task present.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/grails-app/services/InventoryMovementService.groovy

    r291 r406  
    3030                }
    3131
    32                 def inventoryItem = InventoryItem.lock(result.inventoryMovementInstance.inventoryItem.id)
     32                result.inventoryItemInstance = InventoryItem.lock(result.inventoryMovementInstance.inventoryItem.id)
    3333                result.taskId = result.inventoryMovementInstance.task?.id
    3434
    35                 if(!inventoryItem) {
     35                if(!result.inventoryItemInstance) {
    3636                        status.setRollbackOnly()
    3737                        result.inventoryMovementInstance.errors.rejectValue('inventoryItem', "inventoryMovement.inventoryItem.notFound")
     
    4040                }
    4141
    42                 if(result.inventoryMovementInstance.task.taskStatus.id == 3) {
    43                     status.setRollbackOnly()
    44                     result.inventoryMovementInstance.errors.rejectValue('task', "task.operationNotPermittedOnCompleteTask")
    45                     result.error = true
    46                     return result
    47                 }
    48 
    4942                // Reverse the movement of inventory.
    5043                if(!result.inventoryMovementInstance.inventoryMovementType.incrementsInventory) {
    51                     inventoryItem.unitsInStock += result.inventoryMovementInstance.quantity
     44                    result.inventoryItemInstance.unitsInStock += result.inventoryMovementInstance.quantity
    5245                }
    5346                else {
    54                     if(inventoryItem.unitsInStock >= result.inventoryMovementInstance.quantity) {
    55                         inventoryItem.unitsInStock -= result.inventoryMovementInstance.quantity
     47                    if(result.inventoryItemInstance.unitsInStock >= result.inventoryMovementInstance.quantity) {
     48                        result.inventoryItemInstance.unitsInStock -= result.inventoryMovementInstance.quantity
    5649                    }
    5750                    else {
     
    6356                }
    6457
    65                 if(inventoryItem.save() ) {
     58                if(result.inventoryItemInstance.save() ) {
    6659                    // All went well if we get to this point.
    6760                    result.inventoryMovementInstance.delete()
Note: See TracChangeset for help on using the changeset viewer.