Esempio n. 1
0
 /**
  * Get the status of the class members, including number in database, scrapped quantity, stored quantity, etc
  * @since Version 3.8.7
  * @return array
  */
 public function getFleetStatus()
 {
     $query = "SELECT u.loco_id AS id, u.loco_num AS number, u.loco_name AS name, u.loco_status_id AS status_id, s.name AS status, u.photo_id, g.* FROM loco_unit AS u LEFT JOIN loco_status AS s ON u.loco_status_id = s.id LEFT JOIN loco_gauge AS g ON g.gauge_id = u.loco_gauge_id WHERE u.class_id = ? ORDER BY s.name";
     $return = array("num" => 0, "status" => array());
     foreach ($this->db->fetchAll($query, $this->id) as $row) {
         $return['num']++;
         if (!isset($return['status'][$row['status_id']])) {
             $return['status'][$row['status_id']] = array("id" => $row['status_id'], "name" => $row['status'], "num" => 0, "units" => array());
         }
         $row['url'] = Utility\LocosUtility::CreateUrl("loco", array($this->slug, $row['number']));
         $return['status'][$row['status_id']]['num']++;
         $return['status'][$row['status_id']]['units'][] = $row;
     }
     foreach ($return['status'] as $id => $row) {
         usort($return['status'][$id]['units'], function ($a, $b) {
             return strnatcmp($a['number'], $b['number']);
         });
     }
     return $return;
 }