**/ class ExchangeRate extends Vn\Lib\Method { function run ($db) { $db->selectDb ('vn2008'); // Indica la URL del archivo $xml = new SimpleXMLElement ( 'http://www.ecb.europa.eu/stats/eurofxref/eurofxref-hist-90d.xml', 0, TRUE); $date = $db->getValue ("SELECT MAX(date) fecha FROM reference_rate"); $maxDate = $date ? DateTime::createFromFormat ('Y-m-d', $date) : NULL; foreach ($xml->Cube[0]->Cube as $cube) { $xmlDate = new DateTime ($cube['time']); // Si existen datos más recientes de la máxima fecha los añade if ($maxDate < $xmlDate) foreach ($cube->Cube as $subCube) if ($subCube['currency'] == 'USD') { $params = [ 'date' => $xmlDate, 'rate' => $subCube['rate'] ]; $db->query ( 'REPLACE INTO reference_rate (moneda_id, date, rate) VALUES (2, #date, #rate)', $params ); $db->query ( 'REPLACE INTO reference_rate (moneda_id, date, rate) VALUES (2, TIMESTAMPADD(DAY, 1, #date), #rate)', $params ); } } $db->queryFromFile (__DIR__.'/exrate-add'); } }