getTraceAsString(); } sendError("Unable to load InvoiceNinja API:\n" . $ex->getMessage()); } class Clients { public static function getAll(): array { try { $clients = NinjaClient::all(); } catch (Exception $ex) { if ($SETTINGS['debug']) { echo $ex->getTraceAsString(); } sendError("Unable to get InvoiceNinja client list:\n" . $ex->getMessage()); } $list = []; foreach ($clients as $client) { $list[] = new Client($client->id, false, $client->display_name); } return $list; } public static function getAllAsIDNameArray(): array { $clients = Clients::getAll(); $arr = []; foreach ($clients as $c) { $arr[$c->getID()] = $c->getName(); } return $arr; } public static function getClient($id): Client { return new Client($id, false); } public static function areLocal(): bool { return false; } } } else { // Use internal client table class Clients { public static function getAll(): array { global $database; $clients = $database->select("clients", ["clientid"]); $list = []; foreach ($clients as $client) { $list[] = new Client($client['clientid'], true); } return $list; } public static function getClient($id): Client { global $database; return new Client($id, true); } public static function areLocal(): bool { return true; } } }