/**
  * Copies subtasks from taskFrom to taskTo.
  *
  * @param TemplateTask $taskFrom
  * @param TemplateTask $taskTo
  */
 function copySubTasks(TemplateTask $taskFrom, TemplateTask $taskTo, $as_template = false)
 {
     foreach ($taskFrom->getSubTasks() as $sub) {
         if ($sub->getId() == $taskTo->getId()) {
             continue;
         }
         $new = TemplateTasks::createTaskCopy($sub);
         $new->setParentId($taskTo->getId());
         $new->setMilestoneId($taskTo->getMilestoneId());
         $new->setOrder(TemplateTasks::maxOrder($new->getParentId(), $new->getMilestoneId()));
         $new->save();
         $object_controller = new ObjectController();
         if (count($taskFrom->getMemberIds())) {
             $object_controller->add_to_members($new, $taskFrom->getMemberIds());
         }
         $new->copyCustomPropertiesFrom($sub);
         $new->copyLinkedObjectsFrom($sub);
         TemplateTasks::copySubTasks($sub, $new, $as_template);
     }
 }