{{fscript dueDate := NSDate date. arrayOfOpps := {}. incompleteTasks := objectContext objectsForEntityNamed:'Task' qualifierLocum:'(statusCode < 7)' bindings:nil. projectsForTasks := incompleteTasks projects. globals setFetchedProjects:(projectsForTasks flattenArrayOfArrays) distinct. globals setIncompTasks:incompleteTasks. }}

{{localize 'Incomplete Tasks By Project'}}

{{foreach project fetchedProjects do}}
Project: {{project.name}}
Status: {{fscript (project statusString).}}

{{fscript globals setIncompTasksForProject:nil. incomptasksForProject := {}. allTasksForProject := project tasks. allTasksForProject do:[:task | (task statusCode < 7) ifTrue: [ incomptasksForProject addObject:task. ]. ]. incomptasksForProject := incomptasksForProject sortedArrayUsingDescriptors:{(NSSortDescriptor sortDescriptorWithKey:'dueDate' ascending:true)}. globals setIncompTasksForProject:incomptasksForProject. }} {{foreach task incompTasksForProject do}} {{endforeach do}}
{{localize 'Task Name'}} {{localize 'Due Date'}} {{localize 'Status'}} {{localize 'Owner'}}
{{task.name}} {{fscript (task dueDate) mcShortDate.}} {{fscript (task statusString).}} {{fscript task assignedTo contact derivedFullname.}}

{{endforeach do}}

{{localize 'Generated by %@ on %@', objectContext.user.contact.cachedName, date}}.