Ejemplo n.º 1
0
 public static function fetchByProject(Connection $conn, $id, Project $project)
 {
     $data = $conn->fetchAssoc('SELECT r.*, ' . ' s1.`id` AS `s1_id`, s1.`name` AS `s1_name`, s1.`label` AS `s1_label`, s1.`isDefault` AS `s1_isDefault`, s1.`areaNum` AS `s1_areaNum`, ' . ' s2.`id` AS `s2_id`, s2.`name` AS `s2_name`, s2.`label` AS `s2_label`, s2.`isDefault` AS `s2_isDefault`, s2.`areaNum` AS `s2_areaNum` ' . 'FROM `' . MilestoneTables::MILESTONE_STATUS_RULE_TBL . '` r ' . 'INNER JOIN `' . CoreTables::AREA_STATUS_TBL . '` s1 ON r.`newStatusId` = s1.`id` ' . 'INNER JOIN `' . CoreTables::AREA_STATUS_TBL . '` s2 ON r.`prevStatusId` = s2.`id` ' . 'WHERE r.`id` = :id AND r.`projectId` = :projectId', [':id' => $id, ':projectId' => $project->getId()]);
     if (empty($data)) {
         return false;
     }
     $item = self::fromArray($data);
     $item->project = $project;
     $item->newStatus = AreaStatus::fromArray($data, 's1');
     $item->prevStatus = AreaStatus::fromArray($data, 's2');
     $item->newStatus->setProject($project);
     $item->prevStatus->setProject($project);
     return $item;
 }