/** * Starts synchronization process of the database. * @param bool $skipTimeStamp Disables time stamp validation. * @return string */ public function SynchronizeDB($skipTimeStamp = false) { if (WebServiceVirgo::WS()) { try { Errors::LogSynchroStep('VirgoApi - SynchronizeDB() - SYNCHRONIZATION START...'); $date = $this->LoadParam(VirgoAPI::PARAM_SYNCHRONIZATION_TIME, time()); if (time() - $date > Config::$DataSynchronizationInterval || $skipTimeStamp) { $this->SaveParam(VirgoAPI::PARAM_SYNCHRONIZATION_TIME, time()); $cwd = getcwd(); chdir(VIRGO_API_DIR); WebServiceVirgo::WS()->LoginEx(); //wyslanie odslon ofert WebServiceVirgo::WS()->NoteOffersViews(Offers::GetOffersViews()); $log = ""; $count = WebServiceVirgo::WS()->GetOffers($log); Errors::LogSynchroStep('VirgoApi - SynchronizeDB() - step 1'); $count2 = WebServiceVirgo::WS()->GetInvestments(); Errors::LogSynchroStep('VirgoApi - SynchronizeDB() - step 2'); //pobranie listy aktualnych ofert //weryfikacja ofert czy istnieja jesli nie to usuwa z bazy $xmlOffersLoaded = $this->GetOffersList(true); if ($xmlOffersLoaded !== true) { return 'VirgoAPI:SynchronizeDB: XML Error - VirgoAPI::GetOffersList(true)'; } Errors::LogSynchroStep('VirgoApi - SynchronizeDB() - step 3'); $missingIds = $xmlOffersLoaded ? Offers::VerifyOffers() : array(); Errors::LogSynchroStep('VirgoApi - SynchronizeDB() - step 4'); if (count($missingIds) > 0) { if (!file_exists("logs")) { mkdir("logs"); } $d = date("Y_m_d_H_i_s"); $logFileHandle = fopen("logs/" . $d . "_log.txt", "w"); fwrite($logFileHandle, $log); fclose($logFileHandle); copy("tmp.xml", "logs/" . $d . "_tmp.xml"); WebServiceVirgo::WS()->SetMissingOffers($missingIds); } Errors::LogSynchroStep('VirgoApi - SynchronizeDB() - step 5'); if (Config::$UsePropertiesDiskCache) { $this->ClearPropertiesCache(); } WebServiceVirgo::WS()->Logout(); chdir($cwd); return "Ofs: {$count}, Invs: {$count2}"; } else { return "-"; } } catch (Exception $ex) { Errors::LogError("VirgoAPI:SynchronizeDB", $ex->getMessage()); return "ERROR"; } Errors::LogSynchroStep('VirgoApi - SynchronizeDB() - SYNCHRONIZATION DONE!'); } else { return 'Error: WebService not available'; } }