Ignore:
Timestamp:
Dec 8, 2009, 4:03:29 AM (10 years ago)
Author:
gav
Message:

Complete inventory movement implementation as per ticket #24.
Refactor showTab function in both Task and Inventory (which now has tabs).

File:
1 edited

Legend:

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

    r217 r225  
    1010            result.inventoryMovementInstance = InventoryMovement.lock(params.id)
    1111            if(result.inventoryMovementInstance) {
     12
     13                // Used type must have a task that is not complete or in the trash
     14                if(result.inventoryMovementInstance.inventoryMovementType.id == 1)  {
     15
     16                    // Unlike move, if the task does not exist at all then deletion is still allowed.
     17                    if(result.inventoryMovementInstance.task?.trash) {
     18                        status.setRollbackOnly()
     19                        result.inventoryMovementInstance.errors.rejectValue("task", "task.operationNotPermittedOnTaskInTrash")
     20                        result.error = true
     21                        return result
     22                    }
     23
     24                    if(result.inventoryMovementInstance.task?.taskStatus?.id == 3) {
     25                        status.setRollbackOnly()
     26                        result.inventoryMovementInstance.errors.rejectValue('task', "task.operationNotPermittedOnCompleteTask")
     27                        result.error = true
     28                        return result
     29                    }
     30                }
     31
    1232                def inventoryItem = InventoryItem.lock(result.inventoryMovementInstance.inventoryItem.id)
    13                 result.taskId = result.inventoryMovementInstance.task.id
     33                result.taskId = result.inventoryMovementInstance.task?.id
    1434
    1535                if(!inventoryItem) {
     
    7090            result.inventoryMovementInstance.person = personService.currentUser
    7191
     92            // Used type must have a task that is not complete or in the trash
     93            if(result.inventoryMovementInstance.inventoryMovementType.id == 1)  {
     94
     95                if(!result.inventoryMovementInstance.task) {
     96                    status.setRollbackOnly()
     97                    result.inventoryMovementInstance.errors.rejectValue('task', "task.notFound")
     98                    result.error = true
     99                    return result
     100                }
     101
     102                if(result.inventoryMovementInstance.task.trash) {
     103                    status.setRollbackOnly()
     104                    result.inventoryMovementInstance.errors.rejectValue("task", "task.operationNotPermittedOnTaskInTrash")
     105                    result.error = true
     106                    return result
     107                }
     108
     109                if(result.inventoryMovementInstance.task.taskStatus.id == 3) {
     110                    status.setRollbackOnly()
     111                    result.inventoryMovementInstance.errors.rejectValue('task', "task.operationNotPermittedOnCompleteTask")
     112                    result.error = true
     113                    return result
     114                }
     115            }
     116
    72117            if(result.inventoryMovementInstance.validate()) {
    73118                def inventoryItem = InventoryItem.lock(result.inventoryMovementInstance.inventoryItem.id)
     
    77122                    status.setRollbackOnly()
    78123                    result.inventoryMovementInstance.errors.rejectValue('inventoryItem', "inventoryMovement.inventoryItem.notFound")
    79                     result.error = true
    80                     return result
    81                 }
    82 
    83                 if(result.inventoryMovementInstance.task.taskStatus.id == 3) {
    84                     status.setRollbackOnly()
    85                     result.inventoryMovementInstance.errors.rejectValue('task', "task.operationNotPermittedOnCompleteTask")
    86124                    result.error = true
    87125                    return result
Note: See TracChangeset for help on using the changeset viewer.