Changeset 775 for branches/features/taskProcedureRework/grails-app/services
- Timestamp:
- Feb 3, 2011, 5:12:40 AM (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/features/taskProcedureRework/grails-app/services/TaskProcedureService.groovy
r774 r775 22 22 result.taskProcedureInstance.errors.rejectValue(m.field, m.code) 23 23 result.error = [ code: m.code, args: ["TaskProcedure", params.id] ] 24 // Fetch to prevent lazy initialization error. 25 result.taskProcedureInstance?.linkedTask.primaryAsset 26 result.taskProcedureInstance?.createdBy 24 27 return result 25 28 } … … 63 66 // Populate maintenanceAction errors for display. 64 67 result.taskProcedureInstance.maintenanceActions.each { it.validate() } 65 // Fetch to prevent lazy initialization error.66 result.taskProcedureInstance.linkedTask.primaryAsset67 result.taskProcedureInstance.createdBy68 68 return fail(code:"default.update.failure") 69 69 } … … 75 75 } // end update() 76 76 77 /** 78 * Creates a new taskProcedure with the given params. 79 * @param params The params to use when creating the new taskProcedure. 80 * @returns A map containing result.error (if any error) and result.taskProcedure. 81 */ 82 def save(params) { 83 def result = [:] 84 TaskProcedure.withTransaction { status -> 85 def fail = { Map m -> 86 status.setRollbackOnly() 87 if(result.taskProcedureInstance && m.field) 88 result.taskProcedureInstance.errors.rejectValue(m.field, m.code) 89 result.error = [ code: m.code, args: ["TaskProcedure", params.id] ] 90 // Fetch to prevent lazy initialization error. 91 result.taskProcedureInstance.linkedTask.primaryAsset 92 return result 93 } 94 95 result.taskProcedureInstance = new TaskProcedure(params) 96 97 // Optimistic locking check on linkedTask. 98 if(result.taskProcedureInstance.linkedTask.taskProcedure) 99 return fail(field:"version", code:"default.optimistic.locking.failure") 100 101 result.taskProcedureInstance.createdBy = authService.currentUser 102 result.taskProcedureInstance.lastUpdatedBy = authService.currentUser 103 104 // Gaps in the html index's can be created by adding 2 items and removing the first one. 105 // This creates a gap at the missing index where LazyList will return a null. 106 def nullMaintenanceActions = result.taskProcedureInstance.maintenanceActions.findAll {!it} 107 if (nullMaintenanceActions) { 108 result.taskProcedureInstance.maintenanceActions.removeAll(nullMaintenanceActions) 109 } 110 111 // Also sets: taskInstance.taskProcedure = taskProcedureInstance 112 result.taskProcedureInstance.addToTasks(result.taskProcedureInstance.linkedTask) 113 114 if(result.taskProcedureInstance.hasErrors() || !result.taskProcedureInstance.save()) { 115 // Populate maintenanceAction errors for display. 116 result.taskProcedureInstance.maintenanceActions.each { it.validate() } 117 return fail(code:"default.create.failure") 118 } 119 120 } //end withTransaction 121 122 result.taskProcedureInstance.lastUpdated = new Date() // Required to trigger version increment to 1. 123 124 // success 125 return result 126 } // end save() 127 77 128 } // end class
Note: See TracChangeset
for help on using the changeset viewer.