/** * 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); } }