array ( * 'X' => 'name', * ) * 'X' should be an increment of 1 * 'name' should be the EXACT name of your function * * Your function should not be passed any parameters * Always return a Boolean. If it does not the Job will not terminate itself * after completion, and the webserver will be forced to time-out that Job instance. * DO NOT USE sugar_cleanup(); in your function flow or includes. this will * break Schedulers. That function is called at the foot of cron.php */ /** * This array provides the Schedulers admin interface with values for its "Job" * dropdown menu. */ /** * Job 0 refreshes all job schedulers at midnight * DEPRECATED */ $job_strings = array( 0 => 'getNbpCurrencies', 1 => 'importBaselinkerInvoices', 2 => 'importBaselinkerCorrectingInvoices', 3 => 'importApiloInvoices' ); function importApiloInvoices() { try { $GLOBALS['log']->bimit('_addJobsHere, importApiloInvoices started'); $GLOBALS['db']->query("USE preDb_0dcc87940d3655fa574b253df04ca1c3;"); $GLOBALS['log']->bimit('_addJobsHere, importApiloInvoices db query done'); require_once('modules/EcmInvoiceOuts/BimIT-eCommerceInvoices/importApiloInvoices.php'); $GLOBALS['log']->bimit('_addJobsHere, importApiloInvoices file loadded'); $GLOBALS['log']->bimit('_addJobsHere, importApiloInvoices importInvoices() fired'); $res = importInvoices(); $GLOBALS['log']->bimit('_addJobsHere, importApiloInvoices finished', $res); return true; } catch (Exception $e) { $GLOBALS['log']->bimit('_addJobsHere, importApiloInvoices error', $e); return false; } } function importBaselinkerInvoices() { try { $GLOBALS['log']->bimit('_addJobsHere, importBaselinkerInvoices started'); $GLOBALS['db']->query("USE preDb_0dcc87940d3655fa574b253df04ca1c3;"); require_once('modules/EcmInvoiceOuts/BimIT-eCommerceInvoices/importBaselinkerInvoices.php'); importFV('7688'); // FV Polska //importFV('15356'); // FV Polska (stare) importFV('53096'); // FV Temu $GLOBALS['log']->bimit('_addJobsHere, importBaselinkerInvoices finished'); return true; } catch (Exception $e) { $GLOBALS['log']->bimit('_addJobsHere, importBaselinkerInvoices error', $e); return false; } } function importBaselinkerCorrectingInvoices() { try { $GLOBALS['db']->query("USE preDb_0dcc87940d3655fa574b253df04ca1c3;"); require_once('modules/EcmInvoiceOuts/BimIT-eCommerceInvoices/importBaselinkerInvoices.php'); //importFVKOR('17314'); // stare importFVKOR('7689'); return true; } catch (Exception $e) { return false; } } function getNbpCurrencies() { try { $db = $GLOBALS['db']; // fix db, but why? $GLOBALS['db']->query("USE preDb_0dcc87940d3655fa574b253df04ca1c3;"); $currencies = $db->query("SELECT id, iso4217 FROM currencies WHERE deleted=0"); while ($c = $db->fetchByAssoc($currencies)) { $nbpData = makeCUrlRequest("https://api.nbp.pl/api/exchangerates/rates/a/" . $c['iso4217'] . "?format=json"); if ($nbpData != null && is_array($nbpData->rates) && count($nbpData->rates) > 0) { $db->query("UPDATE currencies SET conversion_rate=" . $nbpData->rates[0]->mid . ", date_modified = NOW() WHERE id = '" . $c['id'] . "'"); $db->query("INSERT INTO currency_nbp_archive VALUES('" . $nbpData->rates[0]->effectiveDate . "', '" . $c['id'] . "', '" . $c['iso4217'] . "', " . $nbpData->rates[0]->mid . ", '" . $nbpData->rates[0]->no . "')"); } else { return false; } } $db->query("DELETE FROM currency_nbp_archive WHERE date < (NOW() - INTERVAL 100 DAY)"); return true; } catch (Exception $e) { return false; } } function makeCUrlRequest($url) { $curl = curl_init(); curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'GET'); curl_setopt($curl, CURLOPT_VERBOSE, 0); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 0); curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0); curl_setopt($curl, CURLOPT_URL, $url); return json_decode(curl_exec($curl)); }