static function CloseChats() { $result = DBManager::Execute(false, "SELECT * FROM `" . DB_PREFIX . DATABASE_CHAT_ARCHIVE . "` WHERE `chat_type`=1 AND `closed`=0 AND `transcript_sent`=0;"); while ($row = DBManager::FetchArray($result)) { $results = DBManager::Execute(false, "SELECT * FROM `" . DB_PREFIX . DATABASE_VISITOR_CHATS . "` WHERE `chat_id`='" . DBManager::RealEscape($row["chat_id"]) . "' AND (`exit`>0 OR `last_active`<" . (time() - Server::$Configuration->File["timeout_track"]) . ");"); if ($results && ($rows = DBManager::FetchArray($results))) { $botchat = !empty($row["internal_id"]) && Server::$Operators[$row["internal_id"]]->IsBot; $chat = new VisitorChat($rows); $chat->LoadMembers(); $startResult = 0; $endResult = 0; if ($botchat) { $chat->CloseChat(); $lastOp = $row["internal_id"]; $waitingtime = 1; $startResult = 1; } else { $lastOp = $chat->GetLastOperator(); $waitingtime = $chat->GetTotalWaitingTime($startResult, $endResult); } $chatBrowser = new VisitorBrowser($chat->BrowserId, $chat->UserId, false); $chatBrowser->LoadUserData(); Chat::SaveToArchive($row["chat_id"], $chatBrowser->UserData->Fullname, $rows["visitor_id"], $lastOp, $rows["request_group"], $chatBrowser->UserData->Email, $chatBrowser->UserData->Company, $chatBrowser->UserData->Phone, $row["host"], $row["ip"], $chatBrowser->UserData->Text, empty(Server::$Configuration->File["gl_sctb"]) && $botchat, $waitingtime, $startResult, $endResult); } } }