Example #1
0
 public static function fetchByActivator(Connection $conn, Project $project, $activator, Entity $entity)
 {
     $data = $conn->fetchAssoc('SELECT r.*, m.`id` AS `milestone_id`, m.`name` AS `milestone_name`, m.`description` AS `milestone_description`, m.`displayOrder` AS `milestone_displayOrder`, ' . 'm.`type` AS `milestone_type`, m.`entityType` AS `milestone_entityType`, m.`deadline` AS `milestone_deadline` ' . 'FROM `' . MilestoneTables::MILESTONE_RULE_TBL . '` r ' . 'INNER JOIN `' . MilestoneTables::MILESTONE_TBL . '` m ON m.`id` = r.`milestoneId` ' . 'WHERE r.`activator` = :activator AND r.`projectId` = :projectId AND m.`entityType` = :entityType', [':activator' => $activator, ':projectId' => $project->getId(), ':entityType' => $entity->getType()]);
     if (empty($data)) {
         return false;
     }
     $item = self::fromArray($data);
     $item->project = $project;
     $item->milestone = Milestone::fromArray($data, 'milestone');
     $item->milestone->setProject($project);
     return $item;
 }
Example #2
0
 public static function populateEntities(Connection $conn, Entity $newEntity, Project $project)
 {
     $conn->insert(MilestoneTables::MILESTONE_PROGRESS_TBL, ['entityId' => $newEntity->getId(), 'completedNum' => 0]);
     $milestones = $conn->fetchAll('SELECT `id` FROM `' . MilestoneTables::MILESTONE_TBL . '` WHERE `projectId` = :projectId AND `entityType` = :entityType', [':projectId' => $project->getId(), ':entityType' => $newEntity->getType()]);
     if (sizeof($milestones) > 0) {
         $stmt = $conn->prepare('INSERT INTO `' . MilestoneTables::MILESTONE_STATUS_TBL . '` (`entityId`, `milestoneId`, `progress`) VALUES(:entityId, :milestoneId, 0)');
         foreach ($milestones as $milestone) {
             $stmt->bindValue(':entityId', $newEntity->getId());
             $stmt->bindValue(':milestoneId', $milestone['id']);
             $stmt->execute();
         }
     }
 }
 private function isAllowedForArea(Entity $entity, MembershipEntityInterface $who, $editable = false)
 {
     if ($entity->getType() == 'Area') {
         if (!$editable || $this->settings->get(MilestoneSettings::AREA_CAN_UPDATE_OWN_PROGRESS)->getValue()) {
             return $who->getEntity()->getId() == $entity->getId();
         }
     }
     return false;
 }