Index: trunk/grails-app/controllers/EntryDetailedController.groovy
===================================================================
--- trunk/grails-app/controllers/EntryDetailedController.groovy	(revision 871)
+++ trunk/grails-app/controllers/EntryDetailedController.groovy	(revision 873)
@@ -113,21 +113,17 @@
         def taskInstance = Task.read(params.taskId)
 
-        if(!taskInstance) {
-            params.errorMessage = g.message(code:"default.not.found", args:['Task',params.taskId])
-            render(contentType:"text/json", status: 403, template: "/shared/messages")
-            return
-        }
-
-        // Check for Complete task.
-        if(taskInstance.taskStatus.id == 3) {
-            params.errorMessage = g.message(code:"task.operationNotPermittedOnCompleteTask")
-            render(contentType:"text/json", status: 403, template: "/shared/messages")
-            return
-        }
-
-        // Success.
         def entryInstance = new Entry()
         entryInstance.task = taskInstance
         entryInstance.entryType = EntryType.read(params.entryTypeId)
+
+        // Check if we should create this entry.
+        def checkResult = taskService.checkCreateEntry(entryInstance)
+        if(checkResult.error) {
+            params.errorMessage = g.message(code: checkResult.error.code)
+            render(contentType:"text/json", status: 403, template: "/shared/messages")
+            return
+        }
+
+        // Success.
         def model = ['entryInstance': entryInstance]
 
