Action          Modification (dates have precision='second')        Task (dates have precision='$day')
------------------------------------------------------------------------------------------------------

Create      ->  recordModification("Created")                       <-  is the date created.

Schedule    ->  recordModification("SetTargetStartDate")            ->  set: Task.targetStartDate

                recordModification("SetTargetCompletionDate")       ->  set: Task.targetCompletionDate

Start       ->  recordModification("ActualStartDate")               <-  is the date started

Complete    ->  recordModification("ActualCompletionDate")          <-  is the date completed   

Reopen    ->  recordModification("ActualCompletionDate")          <-  is the date completed   
                   
Delete      ->  recordModification("Deleted")                       ->  Task.isActive = false
Trash       ->  recordModification("Trashed")                       ->  Task.isActive = false
                 
Restore    ->  recordModification("Restore")                        ->  Task.isActive = true
                
Approve     ->  recordModification("Approve")                       ->  Task.isApproved = true
                
Renege      ->  recordModification("Renege")                        ->  Task.isApproved = false

AddAssignedPerson->  recordModification("AddAssignedPerson", $assignedPerson)

RmAssignedPerson ->  recordModification("RmAssignedPerson", $assignedPerson)

recordModification(String type) {
    Modification.modificationType = ModificationType.findByName(type)
    Modification.date = now
    Modification.person = userName                                     
    Modification.comment = ""  
}
recordModification(String type, String comment) {
    Modification.modificationType = ModificationType.findByName(type)
    Modification.date = now
    Modification.person = userName                                      
    Modification.comment = comment  
}                     


Required Services:
TaskCopy
TaskGenerateSubTask                                      