/** * @see PluginOcsinventoryngOcsClient::getComputersToUpdate() * @param array $cfg_ocs * @param date $max_date * @return array */ public function getComputersToUpdate($cfg_ocs, $max_date) { $query = "SELECT *\n FROM `hardware`\n INNER JOIN `accountinfo` ON (`hardware`.`ID` = `accountinfo`.`HARDWARE_ID`)\n WHERE ((`hardware`.`CHECKSUM` & " . $cfg_ocs["checksum"] . ") > '0'\n OR `hardware`.`LASTDATE` > '{$max_date}') "; // workaround to avoid duplicate when synchro occurs during an inventory // "after" insert in ocsweb.hardware and "before" insert in ocsweb.deleted_equiv $query .= " AND UNIX_TIMESTAMP(`LASTDATE`) < (UNIX_TIMESTAMP(NOW())-180) "; $tag_limit = PluginOcsinventoryngOcsServer::getTagLimit($cfg_ocs); if (!empty($tag_limit)) { $query .= "AND " . $tag_limit; } $query .= " ORDER BY `hardware`.`LASTDATE` ASC\n LIMIT " . intval($cfg_ocs["cron_sync_number"]); $res = $this->db->query($query); $data = array(); if ($res->num_rows > 0) { while ($num = $this->db->fetch_assoc($res)) { $data[] = $num; } } return $data; }